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 ACC5244BFA for ; Mon, 13 Mar 2023 04:46:19 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B4EB268BBCD; Mon, 13 Mar 2023 06:46:16 +0200 (EET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2011.outbound.protection.outlook.com [40.92.74.11]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 02CFC68AB19 for ; Mon, 13 Mar 2023 06:46:10 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OtEaCytrSKpFErUJBFoQdwzcC9TEn5HRMVGiX+EQYciAg9z5IQUMJEc6I/9R22ib55EjSv2kbZiAvtnL7x7DuB5kAdGh8NFQmvqGfAy2weE35aZwi9z2ESbIa7XNrQB3DYJWuiRXXf7UNM8FqdNzwX+q6GKw+yUm5c6yzOwKAK6ilnkKJzZ2AOxwG8PbRuTE4xMSv3GyI9ZYoZbhfbcWincmBFqAjW5UCqOeEqinfIEeW3T53pEbWVX0suJeQNnOe4ZuhGPeo2PpG6znZuGVGic8uWDw3doYqrArqxSPR8IR97jwK3pMYDsZDrRe73aVcjBa37he1GTBvIw01FMqIw== 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=HShRQ86TRe7OaDnUFCQBHgd9YwTpa0gvnjdMtERWOYw=; b=KPEZ5UXffwVGGp1cLE9C3oKZh9rhopzfgcuLUkNbM5sErDcax3ez6Gc873oKdf0c9MC/TRvmng8YfwycavV8/aqs1QhB7lXjkwbj3L6NEFYgkfG8XCux42/Qi1Neh2uHJjfUNlX8IKyDRUT3xXatrnwyGER76jPHwI+4SokPE6BqdpX0QfbFgOH2uw9K3z4T/343MtxaAaEP1+z0bizkbF+FY7s75lFytVoj5vaEC0ly2xTJP8+AB/v+Z2xwNYmXnc7AfQU2xCGNxxMMnL4C1dQ8QZsZI1aYbxfJvCRL+vTaBHwokHwuvOj3Fc3+7Xs+h7dDzExlMcyuJKiek4rmlw== 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=HShRQ86TRe7OaDnUFCQBHgd9YwTpa0gvnjdMtERWOYw=; b=Zxxs2Da3oNawacK1gjnCuGMPuJU78uSTOyqrsDSamzvlE763l7wzBvFtUeQJ3Aqy8Si5k6d1UKTLUio0l/FjY2Z3tSPY0ZlDpGTV/HsLn9fBoRQ8egtxpLC3RWU3c82QcvPKATWW51bqR9sOxIzUC1Uew5HX9zsUQ4CRHoZyP0QU8A2sRVsoMhJ9TQpKWfpft8qMNl63pTVzvcvyNY8T6tQEJzhMsJMtH7I7q1+XrlstyaLyP3uzTF7+xYIvsBDMFCCUDfI0vIgDafCjsZCMWY5Ecuw+O+r1vlVJzFSHJLS8bO5jHQcYjrUyIN/rwMfzjaoji8FEW0Zhg6x4Yij9Mw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS8P250MB0815.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:571::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.24; Mon, 13 Mar 2023 04:46:09 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::73a:bd4b:26f3:cc2b]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::73a:bd4b:26f3:cc2b%3]) with mapi id 15.20.6178.015; Mon, 13 Mar 2023 04:46:09 +0000 Message-ID: Date: Mon, 13 Mar 2023 05:46:45 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <1677176098.0668886000.bos3u4y6@frv55.fwdcdn.com> From: Andreas Rheinhardt In-Reply-To: X-TMN: [c+WJLBwz2dSlGSW2peBfMV4FlOUvpbJga8d6IbrSNZc=] X-ClientProxiedBy: FR3P281CA0090.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1f::6) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS8P250MB0815:EE_ X-MS-Office365-Filtering-Correlation-Id: 8af3e7a8-67f0-4a7c-e43a-08db237ddd17 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QnHzt1H++rwh3dXWvsqJAfyaxJmRjiHWlFrQUcWxoINOUevo6R4+QmT0LQM8MvPD3yuOhzm//7C7Didqbrxr4lSD+FGvA+4xPXF4kllbBzH/4Rw5+5V4GHBHqn/Mw294k7a0rac1i3MwTII5Ksyc+7ypkD7lUh5izK5py3509KoG1hfg7Ukn8gNbSuzonmE3PnSzudPNJydn23iULSYkjCfjpOS6eAGmc8HCinTOO7vF6De4MR6KJ3JP6Y1HrrMN9J0l+3aJLICLJCOt2opQTAJFkccMSFhElMHHMn61efQzQNHvMaraaG8fOTadzMMTfAcp87buYvHfaKtP4vBrn6VIQNRk6+CczDZWc4iNcatnyZddJ5iLo66ISWeoHM7uVi76QYn0vogmwOqzo4D3MBxhI+ij4lpfbzV6HfTAOfLJPTHotES74XbHcbIh+ONf+LD5y0cXjvlfQJI/qpe5D6mp+O1QpwhSW8dZGgw5vhRaxavgSy5VSvS0QeJ2lmdx4YrqTI+yjGS4gkeWU3XK2dfmEl2LPv7oN2KWHwWT5/7xSrpqBZ7GiF/SKnLuIBrq4S5ZP8XNoO1ZQLULt8B2KDnRnlweqy4gAhZO8hjQok0/cfzebQ7g7ZAiQzAPrmk2IeqcSenBj3phwg7/R5nh7A== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?N2dubWNjUEhHS25uRXR6TWJzUmtXZjJRbVk2SUF6U3FNbFRPQnJwVE5lNXIv?= =?utf-8?B?bCtiRnd0UGw4QnN4UVJEMk85dkVGUDJQVHRsVWF4ZSt5UFRPRE9RRU1jd0ZV?= =?utf-8?B?cmNZZG13Y3V3T3dGRlJqSFBPK0pYM1FnMVJvVHlwSHZSOGdRVHJ1VTExS1JE?= =?utf-8?B?eFg1YjBHaTRGa001VHFpNDRRK2dTQU9LZ2dJNzdwNjJSWFNLdlVkOVFsU045?= =?utf-8?B?enlJeVovZ1NhNS90R0xibnVOd0ZkQURqV2orRGhTd2llYTA0blA3QnlsVnFK?= =?utf-8?B?MlZFaTNJN0huZFlVWDZzdGN4U0djRCtubGZQcWtNcWJGcG1JaytsTE9xMGM4?= =?utf-8?B?LzBZNkU4MXZjSUV5dGJtSFhxb0ZjWFFmYWQ4Y1dlMCsyYmlBWXZ2TUZmc3gy?= =?utf-8?B?Sk9ma05Qamp3YlhQaDBVT1lYd0NNWllQVXZmTnlxODBWTzRPUGVaWkpZaVND?= =?utf-8?B?WCtkdUpSazZpL09YUjNqYURGenVwOTRHR08yQ3JjTW9qTmJxenNLcDF3T1Jr?= =?utf-8?B?R1RRTHk0Um5ZNzlMMGtLekw2Q2ppZnVuMWoxOUJJQ1FpazdZVDVrR05ybUc0?= =?utf-8?B?a21yRTNSZXp4MnB4VVg3WVROWWd0ZU5waVAvbEhpeUUvNmZKaVNvY0RCUG8z?= =?utf-8?B?aitmalY3SzdUL2l2U2hLcG1CK05iS0d0QU15a0c2N3Q5WHNFTkFqWFNjSzMv?= =?utf-8?B?UVV1MXBkcUVCUU4rekxueW9XYXMvOFNXRWlBc2RUS0NPVVBRMzd6ZlVkalFy?= =?utf-8?B?d1ZiOEhOcjhhRkNBd1RpVUhFSU41TURUY2lEYXc2TUdXRGJhUWVENUIvblVw?= =?utf-8?B?OGJ6U0ZjNHdzOWMvb0sreDJuMTFjaTl4QUdFYW5Ba3Y2R0x3QkdqaXc0bVF1?= =?utf-8?B?TlAyd0ZTdXp3SEtIZzFJVkh1YlBTMjBiZllZVVc1N2M2aDhPOUxyM25zVjJZ?= =?utf-8?B?VDdrMG1taDE1WkZDVVkyQmxzZ2p4S05FVVl3QmcwNmZhUDNSKzFUOGZSTE5R?= =?utf-8?B?MWhZVTYxMXN2R1RMLzYrcjQ1TnpkVHlIc0dYQXZiK1VOb00zNmI4eS9OTElX?= =?utf-8?B?b3VsOVZhNmZJZlNzNlA1cDRlUEdDVldQQ2hhM0xMZmJNSXZnS2l0eFEyZG41?= =?utf-8?B?Yk1DVlVKQ3R3bEZhU1Z4Q2dlaENyb0lTUFEwbTV3MHdmQklxazRNOTd0RVRE?= =?utf-8?B?QjBWb3l5YW8vV3M0YWs5YUJFWXBiazhhMXZubjIvaTdCSkNTV3NjeVpsUGxi?= =?utf-8?B?NGljWHpNUzdMTHBNayt1TzNJRmFNVFc3Z2JMSDlIbUdiWkRsb0pVamtVYnBV?= =?utf-8?B?Yk9PUlFTazZMWXZLalFLclhiS3hpeEZCa2NFaFlWdi81K09RS0NDSHB5YXdO?= =?utf-8?B?NWVXQURIcEE1MVZTMGRmSURWN2JpdXJlZnUvOGVXNmF2cVFxQmpmQ2hZNXA3?= =?utf-8?B?bDlNYUpZb0NrYUFpandQM3A1YXNuYW9ZZ1BlTmdEbkxFd21HdEljVnordFpE?= =?utf-8?B?TU5YTWl1R3ZSQU5Za0VGK3crVEZycElHK2l1Z1o5K1djUWVOcUZselJJT2Fk?= =?utf-8?B?ZHRvV0oxVFAyYm5YYm5KR3ZWbXlUdThhd2RaSGlONUZMbWx6NVg3Yit2b1Fh?= =?utf-8?B?cUhNSXlpZDdHNXUxaEpnSVM2Qldwb0pUbUdMaGpRM05oWGFRMktrMDkzd2Fm?= =?utf-8?B?YVdSR2wrckJ3T3Z1QzJMNjFyRExaS2N2ZWFMczJCcUl1anNxNi8wUmFabk84?= =?utf-8?Q?wcXNAX4KifBD+LguVM=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8af3e7a8-67f0-4a7c-e43a-08db237ddd17 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2023 04:46:09.2146 (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: AS8P250MB0815 Subject: Re: [FFmpeg-devel] How to use threads inside custom encoder 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: Ronald S. Bultje: > Hi, > > On Thu, Feb 23, 2023 at 1:28 PM Alex <3.14pi@ukr.net> wrote: > >> Hi! >> I write custom encoder codec and want to use threads to speed up encoding >> process. I know what ffmpeg have frame level threads and slices threads, >> but in my case best option is to use frame level threads >> with FF_CODEC_ENCODE_CB() function. >> But I have couple of questions: >> >> 1) Then I add AV_CODEC_CAP_FRAME_THREADS flag to capabilities of my >> encoder then ffmpeg call init function of my encoder for each spawned >> threads (for example 9 times because I have 8 core cpu ). How to prevent >> this and call init function only once? (I need to reuse encoder context.) >> > > In frame threading, each "frame instance" has its own context. They can be > synchronized and use dependent data. See how other codecs do this, e.g. > h264 decoder (the concept is identical between encoder & decoder). You can, > for example, use avcodec->internal->is_copy for this. See > update_thread_context() for synchronization between threads. > This is absolutely wrong: The frame-threaded-encode API is very simple and is only intended for encoders with only intra packets. There is no way to indicate progress to threads encoding later packets. It is different from the decode API. - 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".