From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 61D034AB2D for ; Wed, 12 Jun 2024 13:53:11 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 12E8C68D9B2; Wed, 12 Jun 2024 16:52:24 +0300 (EEST) Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02olkn2033.outbound.protection.outlook.com [40.92.50.33]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CCADA68D91F for ; Wed, 12 Jun 2024 16:52:16 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kpya0cK3FtKCnqbxJiTGRMohgdT7I0ajDi/7Akg3AajCxpXxZ7PndFi+jx800GubbOhS/IW85nLuy9gmm1XSXikPC4UF55SLKVoG6fRomBpFE1n62xOoiJXQPAetGViZmnE25XD9RxLpUTZO4zfm3cU/fAmt0QQx7pdgE7luukxV6128gFrfOtqXxhPgfDWBn/BypX1y9yzjlN5zQCbxZKLYg4RAkW3voCSFaMSR3/aAqYR0F0vjmkEzGFcD5QImeA97RL1XNYAfTWjRSfWZ15hDDqOxLvmhe0enQiTINViPGdvI8sM0pmLi696PzQCvCQoiCjo7T78Cgktl4T6qqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LBSMte7MYbJetVLUJ7iivMJ8q/T66jOgA5MMP1/crTg=; b=V1ZXNEtvnJHCgQp0Y/AGf/SEJ2P7qzXiSfepePr1kyLN5klD4RHHtz2hP3est7L72VIDmyiNYcUxhdQCdwhIKQNgdC0Ft7YwmYosxZuurSmL61rUgTPbHw/UB5GkIKgX61uvoBwhOy2GEzJXjtkwfcyRizYOCmzUjGFdwiPZadw3PdsT/GjnnD1cYHs5UYgOGOkPhsoXzlLGOA2P4pRbP1v5nfwAPpaTiMYbmfYd4GwrFShCyKLhD99zbFTZViFUHEe+ai3TGGcsDSA83gP/InwhFJeVkPLk/PgwCTzY3ns7i8ovI/V1k2B+ojUvp54GOu2RXV4oHMZP3XMwXr2dsQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LBSMte7MYbJetVLUJ7iivMJ8q/T66jOgA5MMP1/crTg=; b=oDSoCuoV6fFmSzDeXYyrd5C11PLEcXkYvFwXfBFmBtrbRqgl+pFoHmRaG7mQIwRtiIOVzzVTe+oBp1LrB25zykA55JCv1FrjBRS9B3yYQsb2qqSath+iJJvO9PIhUl1Y3wgUIQuweHHeOSkUEN2f5Ld9MKgJxVq1V+zn/GJ41we3oJaLD3LT+J1D05NP8PWbqmQMlcU8gN38wkSwUCky1H2Wxc3WI3MsBgp8l2i/gBDsY8PXATdnJ7jYHjGi08SGm1kvM2/TqHdcCNgG8mFJQ+dNf2SodIQRITkauEve5YPeFgdhoml00SmGxUho9EqPFnA3aDlCkbhuH7VppAsgjQ== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS1P250MB0479.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:4a4::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.36; Wed, 12 Jun 2024 13:52:11 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614%3]) with mapi id 15.20.7633.036; Wed, 12 Jun 2024 13:52:11 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jun 2024 15:48:19 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [sjASI2W7OPKCintIM72H0NSiO7JorIY+fOP2NdxyrWc=] X-ClientProxiedBy: ZR0P278CA0189.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:44::6) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240612134853.2102377-22-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS1P250MB0479:EE_ X-MS-Office365-Filtering-Correlation-Id: 1bc8320d-0735-49fd-a5f6-08dc8ae6dbe3 X-Microsoft-Antispam: BCL:0; ARA:14566002|461199020|440099020|3412199017|1710799020; X-Microsoft-Antispam-Message-Info: ItFUOplF75MH3U/mgmSlJ7XadQ/IpLgweG/oib2DiZdnxhgR4Hg2WqcDqi8cxptZbLR4khzMsz6FAjUNyRX+yUL8d/56BVPzM5xzPx9cPSb5dkqAEW6C49k1OFMmYYud/R2XGaL1W7pd/GYYzkbI74JGAH3hcfHU7bF9fNeFOC3uUtWhC7CFgAdvTQlOPV5+mZ13VBdA8gGnqXOoyqScwZmEt8R803+1PADRaFK7HMwgv5Il8pDbPIFs0JXLeXFvFhFxdPFs4dhjt/aLVF0bmo453Ttunnw/ocfmxwLYwRb9NDrYv5dmeWzkvFMXSmLgQAwd+adeLvJSyiOWRlTDW737CN/ZVrJo5kuAfNOuUcw97KXAiStRHVR20OiCGtkMmfDKR1FephxneARYo2tEwpUKcNi+7QB4bpfTXh5rEjH7pMzKdpGmIUKKZkDDcpeWK68t6Fqd81Bo82kxwbGiQpTzwl1EdN0J18f3ogZFn6WLA3s5u2rAyX4SGOHHxsvaBlkXZn2QRXY1V6InzNesdN/vEsumSo2aXaY+atnWPcuNMinoelYTMUfp4TO2LivUVy6pae1jX8Hn/epypfSwQnhedu+7Okno0KbkL42EFiU= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+WYznGKo7d3tzY/k92FXvSSgOVhWOPQkVUNVFtiNC8ixBy9t4JO78OCUC5nu?= =?us-ascii?Q?U7tChN5eoUNv3tWV70Sj4eVebxgcrH29Ey/pbtL1Mw2VzNDCjpR0vZP8sp4k?= =?us-ascii?Q?KtSMC2ADH87w5zrK6XPhZcs+dsYyBpZ4iflHIdyVlVAFcHLH4wZzAKGUfDxv?= =?us-ascii?Q?l2wbIjAaUC85t7j9o6TH5eAXgT8QPlrL08wtMO5w42AQahPwqTiWdAV+DIXl?= =?us-ascii?Q?ZZQh5jp0yW/aEo6azjnOelR1+MjSlBTe0B0JnwUVgw5Y91PlfZfZ0Tyb/Zlv?= =?us-ascii?Q?OGaB1PI1W3WhxX1smfU/fWpuzf+wZ/FvqLF2+bi4HOCSkl3bHI3320reaDru?= =?us-ascii?Q?DS7Ev4s8LTXpM3KuA8BgAurfbDXr54SG/wgSvY5T51XMkUkRNrSo/JQ/vswZ?= =?us-ascii?Q?loWFqQe29GQrFd937A/esIbZR+HM3zNpkquT8g6vEEypSW2wLlrD5C22BoqS?= =?us-ascii?Q?eEnwqjHemwn+szTBkPxm7UokirFxmwpI0H0KZXruAJyvCsUig06uYbVqFgVV?= =?us-ascii?Q?5fvR475YrDRfbXWkqSc+N+Mz2/OzWLrcjtNmCt+/9VHEWsfTZW+nSiWVI2Wj?= =?us-ascii?Q?EwiiGZjeZBb9QYSxXPWbvhQMg82pl+VBoCLkRLvTZ5xShYgOMYX/iTavlL4j?= =?us-ascii?Q?Q/3zHITEofIWH7zkxj0oEugwLsjX9pnsDEsqQbDYKnz6yVjwCkJrPO0xf9XM?= =?us-ascii?Q?xwV5cmo+w98g4FwrenmZIPc58W8/8kYOTBCZYTxYdjAG/XojE0SrzfN6Kriw?= =?us-ascii?Q?aAcaXlEDony7hKVzz7tsiikstAowvDk91OgovlVp5M1IkZzfdYgypnas6DQv?= =?us-ascii?Q?gmT25v5kzfE5y3b5d7+igo3gz8mbbEx5bG2LqTLApHAXkDVtr3+3a9cqb23X?= =?us-ascii?Q?kMQ/0UyaVnDDL2tWf/e3ie7a1UvlCG7gKJY/qKG9r3AvKiDr3/ocwZKH8Dpe?= =?us-ascii?Q?twikYGGv0UEbiMQ3Yc4uXKmWF8lm6NjIcuB9LTB+pkgQfpdj55n7VHcOz92O?= =?us-ascii?Q?msVacJAgpMYgccndP7yjfXY+uwC7Z4RD24V5AkZQNi4OXm/al6AUkV8b7jGM?= =?us-ascii?Q?gdwJ7lWN8DX1P3RmP4eJ8BYPd1lwrXxvM5IjkO3PR8Ij3zeUIUCskgtUoHwv?= =?us-ascii?Q?gwpilZ+DPSu07LNFSZ+tKHCzs3WCqY5RvfSBXVrCPzNKxMIqTV9EPOF3Qc3X?= =?us-ascii?Q?nkBxwO8j6F7Ocavgck+TmeM1lsUFlPz0LnDbTQuThPS+nxb/f13TwmbeZ8H5?= =?us-ascii?Q?4PcIQSzPFHtxY+JFpr8ollbACnRW4rG5osZ0SnLd9A=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1bc8320d-0735-49fd-a5f6-08dc8ae6dbe3 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2024 13:52:11.7512 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1P250MB0479 Subject: [FFmpeg-devel] [PATCH 23/57] avcodec/me_cmp, mpegvideo: Move frame_skip_cmp to MpegEncContext X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: MECmpContext has several arrays of function pointers that are not set by ff_me_cmp_init(), but that are set by users to one of the other arrays via ff_set_cmp(). One of these other users is mpegvideo_enc; it is the only user of MECmpContext.frame_skip_cmp and it only uses one of these function pointers at all. This commit therefore moves this function pointer to MpegEncContext; and removes the array from MECmpContext. Signed-off-by: Andreas Rheinhardt --- libavcodec/me_cmp.h | 1 - libavcodec/mpegvideo.h | 1 + libavcodec/mpegvideo_enc.c | 10 ++++++---- tests/checkasm/motion.c | 1 - 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/libavcodec/me_cmp.h b/libavcodec/me_cmp.h index 67e3816829..4f964ca188 100644 --- a/libavcodec/me_cmp.h +++ b/libavcodec/me_cmp.h @@ -71,7 +71,6 @@ typedef struct MECmpContext { me_cmp_func dct264_sad[6]; me_cmp_func ildct_cmp[6]; // only width 16 used - me_cmp_func frame_skip_cmp[6]; // only width 8 used me_cmp_func pix_abs[2][4]; me_cmp_func median_sad[6]; diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index 60dcf65288..df46433a82 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -542,6 +542,7 @@ typedef struct MpegEncContext { int frame_skip_factor; int frame_skip_exp; int frame_skip_cmp; + me_cmp_func frame_skip_cmp_fn; int scenechange_threshold; int noise_reduction; diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 5b8d877935..6ec8fa2e0b 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -308,12 +308,17 @@ av_cold void ff_dct_encode_init(MpegEncContext *s) static av_cold int me_cmp_init(MpegEncContext *s, AVCodecContext *avctx) { + me_cmp_func me_cmp[6]; int ret; ff_me_cmp_init(&s->mecc, avctx); ret = ff_me_init(&s->me, avctx, &s->mecc); if (ret < 0) return ret; + ret = ff_set_cmp(&s->mecc, me_cmp, s->frame_skip_cmp); + if (ret < 0) + return ret; + s->frame_skip_cmp_fn = me_cmp[1]; return 0; } @@ -931,9 +936,6 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx) if (!s->mecc.ildct_cmp[0] || !s->mecc.ildct_cmp[4]) return AVERROR(EINVAL); } - ret = ff_set_cmp(&s->mecc, s->mecc.frame_skip_cmp, s->frame_skip_cmp); - if (ret < 0) - return AVERROR(EINVAL); if (CONFIG_H263_ENCODER && s->out_format == FMT_H263) { ff_h263_encode_init(s); @@ -1311,7 +1313,7 @@ static int skip_check(MpegEncContext *s, const MPVPicture *p, const MPVPicture * int off = p->shared ? 0 : 16; const uint8_t *dptr = p->f->data[plane] + 8 * (x + y * stride) + off; const uint8_t *rptr = ref->f->data[plane] + 8 * (x + y * stride); - int v = s->mecc.frame_skip_cmp[1](s, dptr, rptr, stride, 8); + int v = s->frame_skip_cmp_fn(s, dptr, rptr, stride, 8); switch (FFABS(s->frame_skip_exp)) { case 0: score = FFMAX(score, v); break; diff --git a/tests/checkasm/motion.c b/tests/checkasm/motion.c index 2bf49afc77..8f9915c63a 100644 --- a/tests/checkasm/motion.c +++ b/tests/checkasm/motion.c @@ -95,7 +95,6 @@ static void test_motion(const char *name, me_cmp_func test_func) XX(vsse) \ XX(nsse) \ XX(ildct_cmp) \ - XX(frame_skip_cmp) \ XX(median_sad) // tests for functions not yet implemented -- 2.40.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".