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 607DA498D4 for ; Fri, 22 Mar 2024 20:42:24 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 961A868D5B5; Fri, 22 Mar 2024 22:42:22 +0200 (EET) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2073.outbound.protection.outlook.com [40.92.73.73]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BF6C468D583 for ; Fri, 22 Mar 2024 22:42:15 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KUuD+NSCUZ/7jM/HlSpq1Grerl6j84Jy/c/t+5lddRq1oKEwfaT56GXwIHiuG8b24JSyV8+DrN5FQCHAOeLS43UzRS0ZXn/d7bYWTlBjxe7Y81o8364nJJa5PeyuWatf0OG9OvhfFk/zkTTmHGRLT3W7raICedoKbWxEk5/sXJTziTW+EEbCxUgMaRRcc2RTeWl81zQ/7oBwKx0+mcRsK5b92o5Sl+NkLJqg9WtJb4PS+2lRc3Xt+UJ1JZSII5g03SyspKLypLm27BOAmNHwH1fILeUllC3rf5n6cSATG5ilRimyBdWUa89UW7E1+X1T73PCojO+U/MmXH4NN9VuiA== 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=upnC+usAEpLLUtRi8ucf6W+97RZGrwbokWFx8ozu22c=; b=GJepBNnM/KIpvXjiE29osQdSzP6snBlI+6at9jOTDx9zaJVhP46vVLDhegNpjrIyjJ6ZzydDPcIxu00tOWdQK7DN8E6MB67B4FKfyRLkhM7Sxz7a5d0bP/0YUjopuDw8/ZUnS7cV5tbMh8UYnnCyDpl/fOWOpA5JEsNjh0MkkSsDUUpzRfzr0Oe6K7PouFdJsgvbnfS/+W1603xhjWOp60RGIwzETsgbyN6J3z1B8LMyx+AT2iBd6nYQVqAqc81ih7NiQDSYmojane9MP403D/r1rHwGXWu+H2zpViu1Z1d4mpJpspVFVB6YxjBP1W6JI5QvwMqBoS6TdzMwHB6k+Q== 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=upnC+usAEpLLUtRi8ucf6W+97RZGrwbokWFx8ozu22c=; b=kRBibaE9ajXVeSZWW1akCzeMvevkRx2b2pEErp8o5vTW9BLP44EUmNrCHuF99++OzvPwZrBPkPmCwBU/Rh5YJ3bLJYou8Br8TvC0daGDcMmD8ZqwuEauoMhjXeQifeMJTXNZVTI8LEmyHmpbZbm/FVzXvMpiZpQ6UX4nrfdXCyqC/p56mgNQR65iZUYhDlILwDeUKuP04eK4LRpuS34X5ubMFshGQ/j+cHMrwm1EsoIDWhYSSYbHqpN6PjVgORIoMfmm5djRLB134sNrbWyY6gypjmtd9+es+JUILzoBaTYul44UFOyxKk/oNYK6xMhn9gFZ2pWZFS+Djj13NikAjQ== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PRAP250MB0614.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:294::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.30; Fri, 22 Mar 2024 20:42:13 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7386.025; Fri, 22 Mar 2024 20:42:13 +0000 Message-ID: Date: Fri, 22 Mar 2024 21:42:11 +0100 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20240322202841.31730-1-anton@khirnov.net> <20240322202841.31730-8-anton@khirnov.net> From: Andreas Rheinhardt In-Reply-To: <20240322202841.31730-8-anton@khirnov.net> X-TMN: [SpdFxQI3R0T3aVoC4DMK7K11jt1BU1vLVoi2wYJubco=] X-ClientProxiedBy: ZR0P278CA0109.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:20::6) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <17e59a15-1604-4151-9527-73a787ee527c@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PRAP250MB0614:EE_ X-MS-Office365-Filtering-Correlation-Id: 4baf199d-bd64-4722-abf9-08dc4ab08da6 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jCyQ91PqSHCBADdaZc2Gd7x2FHS9AZ48OjoTN8ViAfRzCfvo9QbiFE+Jr46+w9m9gBjvUdB6ynMdSC9OiXp7WY4uBL03Dom89N//Xb8NorYbOe10ifpjwgBNM4AI7OKEU8Bt984yUV7dGAVhWxinyh3iCvqXRhTMOItuDHZB2Zb9taSxLM5ZRv6c3TrvG6HRMUaPQXE7vFYmHi2tm8x9H5MThXajaBNRWlT9It2hM3VJLsSrkhgkFNJN4p2hpDwJjImj6VCuK/vrwS9hAFFClyto6Y8CNx4oXFSZ5VB2noCn3vYamvzWznCS/1TrmEJ+1REX7knt9WDkeNzbiB7U8LQjbk+90vgpRyBLKpOguRt+Q5camfyTJM7PQCGuGuBlPRCqDxYlXd1+/4wtEl/AbR0dPYatlYeCJFuvGVKBX4VrYHtxpL9GbZJy2aVuIHVnDM3eSARgel2DCiVx07trEmw5b0EztRkRZbLMkKApDSlFnHBcSenbC6gGCPO0k4nQplyC+Ev8TY+OWB/DfyATxi+Rer2GPn18C55ikjqPC+5ufU+wMDyKNO+BwDlFBGsj X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eVN4RzA4MHRKenFQeFlYSFNLdEIwZENDRjRtcE5uNGg3L2tyWXhGekxNRVV3?= =?utf-8?B?MU4rcFY2RFJIQjFpbFZVSVVKNXByRzlSTHdFbzc5VVN4a3VhRDdWQVNxdm82?= =?utf-8?B?WHVjb0M3cUNLS2NzMnl4bHREcHgydytzMnFmY2FhVWlIdmlMVC9CSlNOLzBL?= =?utf-8?B?UEFUWDVmTXNQcHlxU2VORWxrclk4SjNqekdlcTQ4UTRLQ3N1Q05vMXlFY2RO?= =?utf-8?B?VmZQTjJjd3BZaWpvTk9MVS9PV2xsTnQzeWgyOHJsSzRCaXFrTnkyY1dkOE56?= =?utf-8?B?cVJVcFVvWDZZbXZ3bXBZRHZZTzAyNy9scUNUc2txQ1JxL3k5bTZtNzF0WHc2?= =?utf-8?B?UHZVUkhKM3RnYk5nR01PZ01JVk5RK2laSHlBVTdwVm43N2xxbThFdWNXY3NC?= =?utf-8?B?SE1Ka2pMRmNhRklpS0hleHc4OTRFTlRmNTNDVWRybi9zUHU4SFFzVHdoWGNT?= =?utf-8?B?R0NaZk9JQmVWTlVldWxpY0FhTjZTTXh3ZFdtSWVoNG9FeWFPbUpSVnNOcHp1?= =?utf-8?B?VzZlNzhOZFhQa3FTdHpXbXBwaWsvUGFaRm15Y0ptVnA0NDNYeHVzaE5kZjRK?= =?utf-8?B?bERIQmtZK3VQbzFwRGY5VSsxUWwyQlVIS3Nta0lYUFpUVTVsZ1VWZnVKS1RM?= =?utf-8?B?WkpjTG00RysxbngzVFRrTWdWN001YjVFTzV2VExSZXMzR252MStWQjl0M0pa?= =?utf-8?B?TWxPTjBhT29iczZQUlJQVWlXcWZLK1hvTGtyY21FcXVQZFlRdlpsdkl3QXVI?= =?utf-8?B?Wm9TMmFQZzQybmR1UW9sMWNmdFBHRC9rMUI5TjRFZVhMc2VVb2RKMkxzT2hm?= =?utf-8?B?cW1VZlFYMFF0SGhNdjAxYUlLYThkTjlZZmp1TTdVUldoRFFlMUpRZEJNcCtR?= =?utf-8?B?NzhHcHA1Vk9XVlR4enZOMDN2RysvRTNnWDQ2cXI2aGNiYmVWWnpmYnJLTENL?= =?utf-8?B?alZVRTR6YWtPQ2ZWeWFQOTN3NFp5ZTVtREt4TlhsZW53cE1BNEpYK29YRlhp?= =?utf-8?B?OHBrT25QdkNFY2lELzFJS0tHNXdWdzJ1djBVM0lzVUkwd1FvTmFFMGZEc3l6?= =?utf-8?B?QUhyWGV2RjZ3Mk5GWnFlNHRKQnpEZEttbjRERHhtYk40dGd5TU1PMU1rQ1Zh?= =?utf-8?B?VTArK1MwYjhDbzhFQUtIRjhucHdwMk5JY0xReG0zQWpZeDNGWXpKanlEejA5?= =?utf-8?B?TWM0ZzFmeFBQNVRwa3kxTDg2NERlUWdSSnVacTV0MHA3RE9vdjNPSU5vRnVs?= =?utf-8?B?Y3hOdnFjVUVaSk5CbE1LUXVwcG5hTUtMODJlMnVoVkZCZWhjaTQvYjlBQ0Fv?= =?utf-8?B?SldLUFRickl1RUVPQ1dNc0xIVnR1dmM1eTNwZ1hNd1RCU2N6b3A2c25BQ2di?= =?utf-8?B?QkV3dm5NWThaWUNDank1M2pnWnQ1cnZDejVlTnZVb1Jtc09RcktLNWVCMUpk?= =?utf-8?B?L2Z2UDk0cDdSbFl4ZlVLaTVYYjlJdzA0RFROMm1kZyt1bzlsSEhpL2hjRjRn?= =?utf-8?B?VFkva2xWMmFram9qd296djl3WU1ET2NISlhOUEdMK2RVR0FPeWVGMThhaGdG?= =?utf-8?B?MWN0OU9UeVFYUFRsUFRqdWZMT0RzWlZUUWM2RGwwd0dEN3NpVjJSelJHNndY?= =?utf-8?B?N3RPNWwrWW5qeWV6Z0xxWGlQMkNCQVdvL0IrZVpYNkdNK3JUNS9yTWFRc3hJ?= =?utf-8?B?czFiKzBXci8rR1BzUnNqVnphVWRla0xUejY3VkhhMFRPcXE5RmFlY1JnPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4baf199d-bd64-4722-abf9-08dc4ab08da6 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2024 20:42:13.3408 (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: PRAP250MB0614 Subject: Re: [FFmpeg-devel] [PATCH 08/12] lavc/frame_thread_encoder: avoid assigning a whole AVCodecContext 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: Anton Khirnov: > It is highly unsafe, as AVCodecContext contains many allocated fields. > Copying information via AVCodecParameters and with av_opt_copy() should > handle everything needed by thread workers. > --- > libavcodec/frame_thread_encoder.c | 26 ++++++++++++++++++++------ > 1 file changed, 20 insertions(+), 6 deletions(-) > > diff --git a/libavcodec/frame_thread_encoder.c b/libavcodec/frame_thread_encoder.c > index cda5158117..744062b776 100644 > --- a/libavcodec/frame_thread_encoder.c > +++ b/libavcodec/frame_thread_encoder.c > @@ -28,6 +28,7 @@ > #include "libavutil/thread.h" > #include "avcodec.h" > #include "avcodec_internal.h" > +#include "codec_par.h" > #include "encode.h" > #include "internal.h" > #include "pthread_internal.h" > @@ -121,6 +122,7 @@ av_cold int ff_frame_thread_encoder_init(AVCodecContext *avctx) > int i=0; > ThreadContext *c; > AVCodecContext *thread_avctx = NULL; > + AVCodecParameters *par = NULL; > int ret; > > if( !(avctx->thread_type & FF_THREAD_FRAME) > @@ -194,18 +196,27 @@ av_cold int ff_frame_thread_encoder_init(AVCodecContext *avctx) > } > } > > + par = avcodec_parameters_alloc(); > + if (!par) { > + ret = AVERROR(ENOMEM); > + goto fail; > + } > + > + ret = avcodec_parameters_from_context(par, avctx); > + if (ret < 0) > + goto fail; > + > for(i=0; ithread_count ; i++){ > - void *tmpv; > thread_avctx = avcodec_alloc_context3(avctx->codec); > if (!thread_avctx) { > ret = AVERROR(ENOMEM); > goto fail; > } > - tmpv = thread_avctx->priv_data; > - *thread_avctx = *avctx; > - thread_avctx->priv_data = tmpv; > - thread_avctx->internal = NULL; > - thread_avctx->hw_frames_ctx = NULL; > + > + ret = avcodec_parameters_to_context(thread_avctx, par); > + if (ret < 0) > + goto fail; > + > ret = av_opt_copy(thread_avctx, avctx); > if (ret < 0) > goto fail; > @@ -227,10 +238,13 @@ av_cold int ff_frame_thread_encoder_init(AVCodecContext *avctx) > } > } > > + avcodec_parameters_free(&par); > + > avctx->active_thread_type = FF_THREAD_FRAME; > > return 0; > fail: > + avcodec_parameters_free(&par); > ff_codec_close(thread_avctx); > av_freep(&thread_avctx); > avctx->thread_count = i; IIRC the mjpeg encoders use intra_matrix and this will now no longer be copied to the worker threads. - 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".