From patchwork Mon Feb 7 00:37:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 34150 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2c4e:0:0:0:0 with SMTP id x14csp5351788iov; Sun, 6 Feb 2022 16:38:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJyuqNvYCDA8wW9ypHR8MXC/Fh503IYFyha8idCzzWK6gtee9DEQveSv+KLR4tq41psZle9/ X-Received: by 2002:a05:6402:40c1:: with SMTP id z1mr10941025edb.23.1644194289346; Sun, 06 Feb 2022 16:38:09 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hs12si6715843ejc.232.2022.02.06.16.38.08; Sun, 06 Feb 2022 16:38:09 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=nxoIrfoL; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 697C768B1CA; Mon, 7 Feb 2022 02:38:04 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-oln040092072030.outbound.protection.outlook.com [40.92.72.30]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9767E68B12D for ; Mon, 7 Feb 2022 02:37:57 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ebVt6wk7OmLoxgXKmTqJvZ1xIfkRpuY7MCjQzCtsvxP1ryQ5RKCW2bjXGtnfvTGrY2+5s5kLRgDJVTgF3fULxo2bAuheAkuA0BRg5Xn/ppvd4Njb2TjOJK3rohKXUHV/jxY57ButGrma88BHgoE3Olcgtoor05UOl/4bik7c4IxWVfclZh2ioIC0TJvRM+Q9cvTpEVtgyGcE6uuXc9xZUPpbQ040OzMiXzpM7mONv3+IkKrZQgsKq+EbuG1o3AFmY253C3rjZtzzPdBjCMct4iPdqUWTQi0PnXyBq3m5Tdm+wqRaOzrSjrMou7r1YtL84+mnks7b095t5LZFrrQmkA== 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=57BOQRsq2sx+ZCRdnIwqSrC6n/yyJenzPFLY5EGTaAo=; b=eAdJptHwKykzqVTsi/CIR3S3KV289SDV111niXI+fJuAZySJ02wMqAUpKiA5WHPE+BpgaVgzBJD2qUDlivSeGEZc7jXA0ZuNV30PHDmr7HrXW5Cl7kZIk8w4BOQ1Fpcq5Zf0jM+7Nkg2ZL6wdV0a5TgufompCML5sXMdPRtW8p3uAxoNdOgZT6FCw14ui12jEw1cUdWsxBZI0lnCMOl97VYYij3nN25EMXzUZImnIGdHwJVI18TGbO/VRd6qT4es4wPNNFcOlQgHwlUQSdS68ke2pjxTZEEM11l7EgRnn12CIK3dIfCRGHBluu+2bW0u9eZ+n3fLESo9nK/07reUVQ== 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=57BOQRsq2sx+ZCRdnIwqSrC6n/yyJenzPFLY5EGTaAo=; b=nxoIrfoLDPG5iQZB4OHM+DWjdp3uPAOwtI9oYCTE9ql07ydhBsTBg/XOiZEZK/5LCPr6C3JpQx+hGtzCyXpvf5edLI+u0XHY1Bw4AA2yx5k3JR7+rEhjkCl6sM1Es8HBamHsRpk/8gASoxlQGlovQZDP88pnzKJhvdn/BxpuGiv4GvOaPvRmIM6dFVHUIAWy7BOdpQnB1c/PaMkJDL9bJLThNnh78W4xhUIq+Zsx7FpW/dHCFFUVmAmpU1VKF8KwX4DnroB/CQ2JjdhnnOtJpB8tMZXWXBT6+qfOIic93KwezasSoZfo2AQ5uGzUIlO4TDq8aT/OpNNRU8+vzyjKtw== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM0PR03MB3746.eurprd03.prod.outlook.com (2603:10a6:208:43::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.18; Mon, 7 Feb 2022 00:37:55 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22%6]) with mapi id 15.20.4951.018; Mon, 7 Feb 2022 00:37:55 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 7 Feb 2022 01:37:43 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 X-TMN: [R+MXqubW6tVefvuLnnyDknnzkXXx8kPz] X-ClientProxiedBy: AS9PR06CA0292.eurprd06.prod.outlook.com (2603:10a6:20b:45a::23) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220207003748.635071-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a66f44df-08ab-4b3e-8aad-08d9e9d21501 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSDApSgY9IItRoaJ3UYzLbj06aKBXvQqLN1fVpcQqcqske9SPsxq7xh00NWKDXj+IZZzrLr7Y4Iase3ps9n7AUxrBqP8mMTKCPgV9QWFWABQWfwJb1pawkAdreSVMhYJ61Y6hHWNJNdJIH1EOz2vQA8uGWenewtPN0xYO2Pvum2pHZUSLzt50ku+VuPBSToaGp7DReQQGyKjnv+zaaPzTlfpCTGGAUYmvA8PKxjhR9GFhnAq9xsC5hAvO7MRGZQ1KAqmzU/CGfsgXcdcI/+kXVhYg/NeM5jbg0JdI1B07/oVeYemO7mSnUqM0Z4+zSyGJf2Xtih/qJ3XURs8xRwCQTeMUxeLMeyQxUbXvLgML5UzTBLAL1vDpNer9m+2r726TSRtRQ6p2WAXYkDxhHBkTmH634YlEmKTUIiYjZOOIxRBC1IAOjfV7/dlSk+jIoAcCpGlu3rvYmFpGdzxUeOvSAfKVN99o35itGxMoXbu3sEUGK4zlM/InITA58nVYXRMv9M0kbUTiDMNZCf57l3T6FcukWSEZct2EnwWJPqlqy+eSMklQ4goSOrMF7FMfJEV/F2xwoO60ljqBWNTKnA6sdNiAgCBTw/eEWX81Ypk5zPh+LJ65wXTi1GclsFa65OMqbCGIdEls4Nsq6WWw5CKDtz+aU1L0jruKOOtGj4jO6+88OWg/Gn+O6UnFdLkVgRYzVofTquVEZVKLktKs+MGsOB9ZwX+Iz5R62YBCTuq30tsgVw5xzX4R2gAjSvEEBGtgQ= X-MS-TrafficTypeDiagnostic: AM0PR03MB3746:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nNNeJS+DZoH+zcQ+RJb7/U5nPihnYyhbK+xCEY8iI9lTY6XvPPcc6LTw9+KBATaV6jQS6Qc3CTaL4fsVsilczAamY8NM0rLQT0ejros0t9ABBjWJ0gXnY+fY8Z0fDQghzEsd8TOKgGGc1ew6Z3ECQxLkHEIJxCHv+A1JkWEhBl0adAp+ssj7gqNpZe37AT6rnzxd5py9BzEKidgsJOnXSd/h/y1lOGwGJWX3kJ09bW0lU9x0ZEl7jzB/448/7ad2HmnceCKnFqWUuf+b8/mpSowOLRAGnYuuLdJ1meT+0UDiJx3RzJ5PHj4k3spFLmt5JGFWFRsX0z6xhkpnIXQQVN5QF1jWmNEF92QzZTs27mOEWig0a5/J6f66GAvJcg5fqwra/S7qfwVSR5FnbcV2xf4aV41gUYoVhQMwdkxAtUqDvMVT+khCXvvXQ8E9HEmvaMYMTpqTvNRXgveQlX28Cbr7WrjD+t/rFp/h7jZqT0ZLE8aFyjqnlipn3J2IVUehnWo5zaO8QvEds8aB6SJ6HVGtMJxmC5sVGAz+cUuycmT2xQV1psG82GzuM325ORrOj+KU8Bx4eAsmdigbxngN6w== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 69FZ9864kAZ/9dWqEbBPjf3cDBmgT1NKP9YGQSjLNiQjCFjxzONRrVKnAr7rmCUHmBnuoij5v7KT44J3DZLESnZJLJsg9buZyNh2MRSMYCeLCa01CI1MFgIVK4fEQwpQD698RizbtF+MwWf+sKyBlNmN+5Kp4y66RSl6Me+jAtS9A1HL/5NgoGrlytN94gyHC9eBa98FxM6U6B61ZNAPm1imTGlW2kKxpFGMQ95esoQjfAnHMTYjEEcrDGwtG24WadQ32VlCB0e+GojcoeXnSzEIFAjSoR7uir4QXSx5Fql4uOLTVHUbDDtLmTM8K/GTknjEdL6PZ29OQUsml2PFswFJTjOn7NaYbDmif4eVS+0j8QA7MyA/HwXpboBQy0j5nlj5Ra+Ingei6l6tTcaHx1SDssXyzvPKS/pLgdrMOeLl/1vGN6yRWDu0Xe7fbUPnKA6jXekp3J10es5vRgoE43SjDP3bLcMo2ZluBTuozL1sBCQpv02yrcWzzbGiuqGxwHC4ckIZiOZKq3a8slmVhZJWORQodfpTvRerhm0PLfy1+9GE/85GZ1eb8dEY+Z6d86XYYRLyGpWjEMe4WaMYBSr7UOyYc1Gfe3HcACT32rKX62sXMaMpT1PPs92djAFSWAieWfwTh2TfucHI1sqNNq1hoji0sNOSVBGo8s0l8PQLo/bRDbYIStccJ28LRpzJ/k67gAsCK4trqMD1xvlWMsGETQ9scauviA6iKht3kdSfKP/hasGtqaAgi4NX/Vn3ra8V+ain6R5euUmepnn/kXEupYd4Hq0AykEInHXYBU8pq3skvYjmo7uYRiKsbOX8gqjVVakUBphqd/BMdEc0Gg5BhJGWbB2gQXv6Z14zpDGE7UhRfR9wNSJdm6FrhCDSNIzUuCvl/WNu67mi9gb6zgZQD1nT+IPD0/Jx4o9rJbbXWty2YXqvlaIZgSwwWe42fZR2ciFKrXHKmETeBY7A9w== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a66f44df-08ab-4b3e-8aad-08d9e9d21501 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Feb 2022 00:37:55.8056 (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: AM0PR03MB3746 Subject: [FFmpeg-devel] [PATCH 1/6] avcodec/pthread_frame: Don't prematurily presume frame-threading 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: ZQCp2cyXK2nt Several of our decoders support both frame- as well as slice-threading; in case of the latter avctx->internal->thread_ctx points to a SliceThreadContext, not to a frame-thread PerThreadContext. So only treat avctx->internal->thread_ctx as the latter after having checked that frame-threading is active. Signed-off-by: Andreas Rheinhardt --- libavcodec/pthread_frame.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c index 85a6bc98c1..43e097ff06 100644 --- a/libavcodec/pthread_frame.c +++ b/libavcodec/pthread_frame.c @@ -949,7 +949,7 @@ FF_ENABLE_DEPRECATION_WARNINGS static int thread_get_buffer_internal(AVCodecContext *avctx, ThreadFrame *f, int flags) { - PerThreadContext *p = avctx->internal->thread_ctx; + PerThreadContext *p; int err; f->owner[0] = f->owner[1] = avctx; @@ -957,6 +957,7 @@ static int thread_get_buffer_internal(AVCodecContext *avctx, ThreadFrame *f, int if (!(avctx->active_thread_type & FF_THREAD_FRAME)) return ff_get_buffer(avctx, f->f, flags); + p = avctx->internal->thread_ctx; FF_DISABLE_DEPRECATION_WARNINGS if (atomic_load(&p->state) != STATE_SETTING_UP && (avctx->codec->update_thread_context @@ -1020,10 +1021,12 @@ FF_DISABLE_DEPRECATION_WARNINGS enum AVPixelFormat ff_thread_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt) { enum AVPixelFormat res; - PerThreadContext *p = avctx->internal->thread_ctx; + PerThreadContext *p; if (!(avctx->active_thread_type & FF_THREAD_FRAME) || avctx->thread_safe_callbacks || avctx->get_format == avcodec_default_get_format) return ff_get_format(avctx, fmt); + + p = avctx->internal->thread_ctx; if (atomic_load(&p->state) != STATE_SETTING_UP) { av_log(avctx, AV_LOG_ERROR, "get_format() cannot be called after ff_thread_finish_setup()\n"); return -1; @@ -1057,7 +1060,7 @@ void ff_thread_release_buffer(AVCodecContext *avctx, ThreadFrame *f) { #if FF_API_THREAD_SAFE_CALLBACKS FF_DISABLE_DEPRECATION_WARNINGS - PerThreadContext *p = avctx->internal->thread_ctx; + PerThreadContext *p; FrameThreadContext *fctx; AVFrame *dst; int ret = 0; @@ -1084,6 +1087,7 @@ FF_ENABLE_DEPRECATION_WARNINGS return; } + p = avctx->internal->thread_ctx; fctx = p->parent; pthread_mutex_lock(&fctx->buffer_mutex);