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 B631A40DE5 for ; Fri, 31 Dec 2021 10:03:39 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9FE3268AF71; Fri, 31 Dec 2021 12:03:36 +0200 (EET) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-oln040092071026.outbound.protection.outlook.com [40.92.71.26]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BC5C368807F for ; Fri, 31 Dec 2021 12:03:29 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LwSh6sO807oo7y02tKGdtibOsErNRS1iO31KR60AlK0Lre0i2BruRU7TdAMGl3JQbbQXXN3Ft8eO2KE12hG52cRD4dJXv5QumBH2VqhqiaNhiBXq13yWG1hbLLrN4G89+B8cufGJe+4u5xlcMDYSiBJjkCnrhCrrZzyUsWDetLLhCtBcW/DmxNiM0b4r7+D1yK6r3uWiPr7zkZ4rRrqXi0/ClH8rVAYVyRUyqqiDhUPpMchc6wxvKSar0kRErbWieSDe3QZXBqu9ZUlMgJU2xyqH2QHEy0BuEhXQOqwsb1oMZphpkwEJYSnedad0+86fbqxwHELRg9HiOBVOepnCKg== 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=iumIX/cuCA6AaNRifQyKfZL+OobdBcruwtrrVz2sZzg=; b=FhPAuteAwL0Feu4XaS0cRhCWpzcQfe89EvFBry+wyAQ/ODft5/F2W8sO5QgS3ZjN1JHXCXMSitFUX8Fds0e/aXqwNkAv6cy+SBQXWASOPiWBH3JsJ/D+Qx17oxv20ylIfDSszEoFs2jGLFGROvQVKrO6hOL2YixaI0M0v4A0DB7rl5OyA75Eok4uejsi/3dYX8dMywIOWRxsn4LaljVVO8sKJ16PoKiiZ6fHL+s5sBKaom3CN0JVr92ytVfQFqFU7tFgbHyQbgg0QXdMy2PcmkVnl29gTAjYlRqXwxpSHlkYhVksOvpeYC9EFmuI/ObJch+btM0RrM4tqEIAj33HPw== 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=iumIX/cuCA6AaNRifQyKfZL+OobdBcruwtrrVz2sZzg=; b=Z2PloauuaWqmuQW2rQQhMdKPUMBO3LXfiJwYqHjK5wlmPVOqls7YAg0gYpfLvmqbzLRueNNr+JBCV5QYhGlCnXAoAs/vTMxJGFiBI0G/v56JbY+Ug4scXcfOYMqhM+O4cD3aLybryh+ozO1GU9vo031KXSdO8rUtayu/rteTHgIdeLtvkeGRcE0vhoGQjwY3kawougoRuLczqggvIhcJFKI9wZ9M4hnaWErCHp0MBB257noS7jcjSko6+351C4tiRGEin8Urh7OMZtFxlYQ1yg5YgmAC6Rj2FZ9W1gGolkxUE0UtpZwsxS3VKPmApSGxYRpQrjWVznUbZ6syoZyjpg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB4888.eurprd03.prod.outlook.com (2603:10a6:20b:84::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Fri, 31 Dec 2021 10:03:28 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%6]) with mapi id 15.20.4844.014; Fri, 31 Dec 2021 10:03:28 +0000 Message-ID: Date: Fri, 31 Dec 2021 11:03:27 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: From: Andreas Rheinhardt In-Reply-To: X-TMN: [0MIXLIYBGWhdxNlILOXECgrVdYAZTGDl] X-ClientProxiedBy: AM9P193CA0025.EURP193.PROD.OUTLOOK.COM (2603:10a6:20b:21e::30) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 042b3697-7219-4c46-4f9a-08d9cc44caa7 X-MS-TrafficTypeDiagnostic: AM6PR03MB4888:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cLIV13Tfm66etQjtL6u9GC6cjekVWRGWMfAElD6rYkQB2fNs+Tk12vsBCQdIcIM8kxFd8ZwzXO3CfrXlm9xj5hse1yFnKZ6FmdVLAyKb2OefIZB7RK5xQJGF+pnHqzsSSjicfk9rxJY7DS6bRK9mnBrA5s0Kn9FW/6CB1lJYQe9wVCrHirwYwy2OkISVDe48aK6p9O4WHCa17CeiffdU9vbrFJXhLDNrTYJ8Il9uOoaqqlc0c1jQULGBIJqFo07z4zsKuVUYfa4m4C8WzZBlUEWS17sBveKRydJ+67dA3Ayn5xCZ2YhVPZwDSH6PSq2oBn9bNBrD76Z8ncOwPDE/1uy3S8RP7/FvzPj/NCxQuoGJ/L4blidW0dSuB7UNOK7akSZPaBB4q64FLDEELQnTC2tKWO6xRw30K7KQXO5iahchPh1UKBOBn84jO6WeUxXWDkKaTtnSUsO1TuPgAFFtNmkdNOvuxjGdPEziQR6HUAV0Vb3lgzriItoG76W/wWZ/fd+DDFv77xmz6o6FWzFHHv6nPoAjAQoMCG0I36pzRqpPb9g4Rhn4dCXP95UdiuTIsbEPBPZ2M2+V7BwGp4aCXw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TWR4cFRRNGR1RVFoRmtMbnJlbHBOS1gySURBSkZmdEUyWEZpRTVVelIvUWRJ?= =?utf-8?B?UnF3clFLVnAwTDQ1T1RjQkFZemxIOTF1YnNhTlMzbzM3TjNTNWJ2ekN2ZlJs?= =?utf-8?B?YWpOOW5hUkxLaTdXd3FWemtHNE15WnVrYkQ4K2FhdmQzM3JteHE2Y3I5bDA0?= =?utf-8?B?eUJ1QkpieHd0MzRzRFhyL1VNSmF5SDdma24xVVdLL1NPTGdsVWl5NjVWTEJC?= =?utf-8?B?YlRXcVMzMjBVZXZQT0hzV0lYd2dnOHpFdExFWjR3SHVEcFJ2cy9GdlFpMUFi?= =?utf-8?B?cEpyQ0lJZjdaN1FQQ3lhSGdaRFlnNWhOM09wd0hua3RwSkJZK2ZLZ3I4VTNZ?= =?utf-8?B?bENRYXlkbUFOSy9QQW41UnR1SFVqQjNsbVdVOGI5dzBDaTV4cTBlWGMzM2tZ?= =?utf-8?B?ci84UDNTSCtwVkFHQUZBMUxKNmJLa1FxU0hneG1LWVliY2pWci9kbjFxaTYx?= =?utf-8?B?SHU2dG5YQUFVSzFFQ1lISU5ZcFVlZytTVmdUWDBUZjFkeGt1RWNUVXUyelhW?= =?utf-8?B?Wm1hejVjdXMvQUhnbkhYR3huTDlWOHV0QU4ySmR4dkx4K0hDNk9mY3o4ZVZ2?= =?utf-8?B?OE94SlRaTEg3emt5S29uMHhKK0VCSDBTU1B1Lzd2YTVoZkd4VWEzOGZacVlL?= =?utf-8?B?M0ExcnZVYXRZazE5Q3FIcG9xR00zVFc2YVR3RDBXYmlnS05kS2JFNEY4Mzdi?= =?utf-8?B?UXYxWnFJMUxxZmZaMXJIY1lobWdwck9lTlMvOUZ4SkdaOFZCaTBFeXY4OFZ5?= =?utf-8?B?K0I3Y21GNk9MNENqTS9PODZwME5UaUNPamJadTFWUDlCMEhWejc1aTczMDYv?= =?utf-8?B?WUsyWVlJVGlmTGkzOW5TbXBHclNpamxINEZtczBvTXRMbHJVb2xDQjFOL1FU?= =?utf-8?B?amE3bTc4WjhqZXBGQ09YZUp3dTJQQkhUdW8zbmZpUGE4Q3R6NFlZQWxLMnNO?= =?utf-8?B?RTJtRGx6dFgydjluSElqMFlhYUFVQVZVaFRieG1tWWFOODQ3d0wzcXAwWE02?= =?utf-8?B?NFA5ZmRQT0w0MTNsams1Q2Z1VkNHL3FBWW5vRit4SXlVR2UrTzYyS2tSVnZN?= =?utf-8?B?a09kUFVEcXNEQjNJTkhSOThmZzRWYVJHNmk2ZGh1YXpIK1dDV2ZYZWxqSHF6?= =?utf-8?B?ZHh6WC9YbWRKMFZxRG53bUhrRENSdm5uZmVCYXRZSEU2MklMeUh5LzduWkI3?= =?utf-8?B?VkFoRmI3cnk1MFpzRmpORWV4eUlZdTRUOUVINXRrNnJGOStYeVNWVzdXWDlm?= =?utf-8?B?ZGEvSlI5MXB1QkYwUFE1QTVINUlaMkliK2cvVmkyazVHdnUwZz09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 042b3697-7219-4c46-4f9a-08d9cc44caa7 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Dec 2021 10:03:28.1641 (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: AM6PR03MB4888 Subject: Re: [FFmpeg-devel] [PATCH 01/14] avcodec/mjpegenc: Use custom close function directly 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 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: Andreas Rheinhardt: > Currently, ff_mpv_encode_end() is the close function of > the two MJPEG-based encoders; it calls ff_mjpeg_encode_close() > for them which adds a check to the generic code. > This commit reverses the order of this relationship: > The MJPEG encoders directly use a custom close function > which in turn calls ff_mpv_encode_end(). This avoids the branch > in ff_mpv_encode_end() and makes the generic code more generic. > > Signed-off-by: Andreas Rheinhardt > --- > libavcodec/mjpegenc.c | 9 ++++++--- > libavcodec/mjpegenc.h | 1 - > libavcodec/mpegvideo_enc.c | 3 --- > 3 files changed, 6 insertions(+), 7 deletions(-) > > diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c > index 0ade66bc5f..5bd25b4f3b 100644 > --- a/libavcodec/mjpegenc.c > +++ b/libavcodec/mjpegenc.c > @@ -320,12 +320,15 @@ av_cold int ff_mjpeg_encode_init(MpegEncContext *s) > return 0; > } > > -av_cold void ff_mjpeg_encode_close(MpegEncContext *s) > +static av_cold int mjpeg_encode_close(AVCodecContext *avctx) > { > + MpegEncContext *const s = avctx->priv_data; > if (s->mjpeg_ctx) { > av_freep(&s->mjpeg_ctx->huff_buffer); > av_freep(&s->mjpeg_ctx); > } > + ff_mpv_encode_end(avctx); > + return 0; > } > > /** > @@ -618,7 +621,7 @@ const AVCodec ff_mjpeg_encoder = { > .priv_data_size = sizeof(MpegEncContext), > .init = ff_mpv_encode_init, > .encode2 = ff_mpv_encode_picture, > - .close = ff_mpv_encode_end, > + .close = mjpeg_encode_close, > .capabilities = AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS, > .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, > .pix_fmts = (const enum AVPixelFormat[]) { > @@ -647,7 +650,7 @@ const AVCodec ff_amv_encoder = { > .priv_data_size = sizeof(MpegEncContext), > .init = ff_mpv_encode_init, > .encode2 = amv_encode_picture, > - .close = ff_mpv_encode_end, > + .close = mjpeg_encode_close, > .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, > .pix_fmts = (const enum AVPixelFormat[]) { > AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_NONE > diff --git a/libavcodec/mjpegenc.h b/libavcodec/mjpegenc.h > index 2e92511276..bc9b017e7a 100644 > --- a/libavcodec/mjpegenc.h > +++ b/libavcodec/mjpegenc.h > @@ -105,7 +105,6 @@ static inline void put_marker(PutBitContext *p, enum JpegMarker code) > } > > int ff_mjpeg_encode_init(MpegEncContext *s); > -void ff_mjpeg_encode_close(MpegEncContext *s); > void ff_mjpeg_encode_mb(MpegEncContext *s, int16_t block[12][64]); > int ff_mjpeg_encode_stuffing(MpegEncContext *s); > > diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c > index 128d1a327c..d2520368e1 100644 > --- a/libavcodec/mpegvideo_enc.c > +++ b/libavcodec/mpegvideo_enc.c > @@ -970,9 +970,6 @@ av_cold int ff_mpv_encode_end(AVCodecContext *avctx) > ff_rate_control_uninit(s); > > ff_mpv_common_end(s); > - if ((CONFIG_MJPEG_ENCODER || CONFIG_AMV_ENCODER) && > - s->out_format == FMT_MJPEG) > - ff_mjpeg_encode_close(s); > > for (i = 0; i < FF_ARRAY_ELEMS(s->tmp_frames); i++) > av_frame_free(&s->tmp_frames[i]); > Will apply this patchset tonight unless there are objections. - Andreas _______________________________________________ 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".