From patchwork Thu Jun 30 22:29:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 36561 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b27:b0:88:1bbf:7fd2 with SMTP id l39csp620455pzh; Thu, 30 Jun 2022 15:30:45 -0700 (PDT) X-Google-Smtp-Source: AGRyM1u3c1hOpCPEbemxR456R5OsCBvNtP+UPlgwGa4TEUqYDsfB7UqqinE43Bud8hRt9k31/k32 X-Received: by 2002:a17:907:16a2:b0:726:abbc:69bf with SMTP id hc34-20020a17090716a200b00726abbc69bfmr10901078ejc.363.1656628244870; Thu, 30 Jun 2022 15:30:44 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id bq16-20020a170906d0d000b00708423d4250si9184040ejb.228.2022.06.30.15.30.44; Thu, 30 Jun 2022 15:30:44 -0700 (PDT) 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=ZfASjjRW; 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 DBADF68B75C; Fri, 1 Jul 2022 01:30:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2046.outbound.protection.outlook.com [40.92.91.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8279668B75C for ; Fri, 1 Jul 2022 01:30:32 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f4PTynvZnUOVwV9BcfmY7a4zL8YE4d30JywHQP0T1u8DQ1XtLk9sYr51LjOz8Yw1/we6RF4HX5RuYbUFt/VQVkfynuf21qBLyi6lauhYxXQxGHkrNz+hLhmy4Qt9QNH4qHkL1mtoRA/HN5nxniNA4+n3hjWIYVqFqg7n4mqAlbYe2TeiVHliD4f/MU5W2YaBUts8gBQr4J8UfcG3GSiYQv8sPH3G9/tyq3ehKtN4OIwY8f5BIybxNG/54kEr7n/xxQVw4jqOMI1ezcyLBeEQM3PjiA00RBnmnbCSbRbHQjAScCbNmT50rr3T5ktu77q3C4FwA7L+sY+tqJ3Uys2yhA== 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=PL8Zh1WNrJWkZSNNg3cSlaLlqaNfa7jH+oSZyQBPh1k=; b=PdvN14holxkf7FLWOzY6P4XAhGiIG27jTHHg9uHhwfhZsLxbo6QrjIsVj8ptQmMj+9TQjSAuoQ6VegmsZXvJW12TRgV1juwCB4eXfVPbE6I/uEr7hve/AcCvAluUNgyX2sMTipMvwVVSUhGP82OtETXdId8l5/8nRid6qP/lY3xo5sk5wKP1h1URcgcT14ogds8tQWmkFtJO0grv6FESFazd41f6ibmFZjcbzWQInIVO9Lz97NSjV09IhliR1NJXWcA6/o16HAFx+oChh1wRNXebIsIUZeM98S9egRI1utrTt5vmKh2BsNlgYZ7VwuKGNcu1wZir4fFZXPi7fTMzwQ== 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=PL8Zh1WNrJWkZSNNg3cSlaLlqaNfa7jH+oSZyQBPh1k=; b=ZfASjjRWE4zcjYM7meTGaDbkEwgggLWqDtz5y9uiq0qiopmA84ffWWqLEJ5Yas/cn4sA7HSmyaTG4ic1g4Ut6K2zZfyRCiRfJFaMc4u2pDdNAlWPAajLKMOm+YeF6agOEKLE0VmAPNXX4Oh9WuF8gWpSLvd7qhIDugGKptDz5E5NqqNYM1U0FcgZFQrgF9lVWThLFjdjUplImrJnk8ff9SS/1HGYFdh58oiwj7y4fwgDRSJYA9Cbu31HO8G+zx059fFaz3e9zcRDyrosGQ+xA/Hes8UiP4dd4UcShVU69Ud1vCkRARYwUgY+MFtI2uNSFP/vub5Lti+wq9SYas+gLQ== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB3PR0102MB3546.eurprd01.prod.exchangelabs.com (2603:10a6:8:d::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Thu, 30 Jun 2022 22:30:31 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5373.018; Thu, 30 Jun 2022 22:30:31 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 1 Jul 2022 00:29:35 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [lAPfEj6l5zAIkLrAOXY2YtAZCOlI8eRG] X-ClientProxiedBy: FR0P281CA0099.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a9::17) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220630222949.1758625-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0ee0dbf2-c510-4d65-b43e-08da5ae823f3 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSAA+E0K/sYrHNnfsWcYQJjdd/B0Jkax1nBlI6ePTwF0vapESwIxI7AP7vy1yr+CshD5Mso6DVBoICPCuE9sga5eudS+ptsKN4Q8mZjptJ+LcWJHl1tIoQx1XM+FZZsuaUCxERwf3+SxETDV0ttst4bjTF9/s1ksvMh04RvPuXrkHszaZBxrFGk/dfd8kMq7h9hkjhEFTWiguz9d1RWQ66P706yAs3k7rQjLxgILBeqEhyt/3wduXEQwaS89g32/3SWP72aozQY5Zj4AuDK4OJ1Ohov1NgK+jZoxVlqUgI5JShQX96Ch5WOSqJNQCfir0L9OUI5HXfdXTB2iYFciIn9Y2p7avBmLpgdyJSlTe7XcNVAPDHzlN6psQqLMj8hGHj1qB5B+X2BawO6DTc6ePmqxbdbIR+3Fn3wEgFEqxaq0wG1scsQVZVvSsQUvAsRamipsu5ID7escXqQTRQGdDqgR0+LKWnTiY7YVenaKrlwS77oDPE8BkXdZP4LyozOIQo65q8SCRCSRZTZLGo/9bpJMezVIZY/jjmqbfFMPVrJnGOicOTO6SPlToLONIka/kC91XbxgioUgpDNDABeX7gXTe4mapq6Bx5aKnSSoo5/IdIh4vZuGpH1Hvhhab0+bWc9ReUetfbeaaae3tSH//TqlrS25FhblInMlj+6VSxFLo0zPAizuTKweCZzMnEi1HVDyfGXjcPxtnp5mp6LDXYcqdzGpu+hYVs7rr3PXjDj5ADwsiF+Q4iMnTop1Tqe1Vs= X-MS-TrafficTypeDiagnostic: DB3PR0102MB3546:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ojc66UA7pQA+R4aISBgbN63sSWVh91f9k7qK6+u+VANPkU6WxJgxVrZ9d0UKwDNWyY+a29HzilWv4R5oQRBTyS0JY6VscIDbkJxmpT4adTaVS43me3rtfEj1yrAoc+PMomJe7vH/zyj67Udg+CrR79U7khfmvMhP94lFOlAZM5zYd/yjAHCftnnLMFhCMdM6KfScmEAH/slg2H4UukPP6xmoWxVTrP/wR/KsRqwWYIXXJx0FhSl7LJR5H1nU1g1rQg9HIHrr3btPxJqHDZAak/Bte1oQdKbkUO7CKsUYni62DZ3hV3gNpl5kaDUHLlOrhK8rBRBorboYyqhxM4bPESsGZsp+4FHP3gPKH+Bv+JnOKVSh4pdKL7t3beScfutHjBNQN+NQdwbHlrQ4JJ5Dxrx2gIjiuvw238acFTeccBCLRF4Ip1kys6xKhZcM6p2418EJoE5Zlqj5of//hPOaS2FrSwdDcUCLGQVByM9X0tFF0Hb5Q8/pwmSluErtRhq8ka0gRAxLr8NCsmsdSGQQbVEorI0bm5ErmX6yg+rE2ohZxP6kktQgsF3gXJBAxJD+5p2ujgwUZxHsguicOy9YGowFIMT6Nll6NDG49nKyevhsZ1yPIDp2640c1fsAWvJKRXXWTNoBn71W9q1VUM97q0vV5vrTJROuwDWT4i9ZlYsTS4xEP4ZCcn33JmciQIZo/8VGwQYXKj6h2Xb6za4hYg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wxcF96wMMSt/Wom72ZbPV7TwPoKUB82jvvsRevZ6AsAUAi7IDaE3BpzacmvGqL0No18Xd38YuMgLHFn9bkZm9K8Y2OV6414b8nM24YeuiJLy+Ag27zYdn33II1EvYfjW80VA2gnlY7wGyb4SPLZHVCBtJTZgefZ9kBGy24hM/CXewc1cI1ABxv1WiuefZ7clM+Ms6HZLjRC1XojPVWPXf8LCeoko2XcPTY7UOISWcfQYgfMNz+JXSSQ0gYGiM0ZijhRv4/44LuSjsCw4261y4QDRhB2zNYBUO7Lw0qGW+R/7iri1Go2O8n1+soMKliH/Uynh6xi+pYrtEbO5xdU97i8HRvrQQEqtvQmeb8xnjuOp3/VFURHH7U8NAp/mpc3SfhBAj3GasQWWJfHlMYHyeBb0f392MSdO9U6wtGRAic8WXRmFrU2ph0SaQ4ed8hCfnLdIxDL9aWaS+GzqthkvQFpeL481p829se0BdZF3WvwhyLlgxXyPh+5d8/BjEw1FMNr1y/Zy5zys5sw4Kry5KR+7A+A2HLj0TnTzAOfOSXZsg9EQeD2gDql7vqxWPFXqNeQtRmvFK7Oc3kciNHt5XjH54GM2pGheWzSRtQAivvhz3hfedU0LxP1PpiphxnKBL1W71ohtntslplYnkDlt/HsTj/9zeDDMT92d/fUSJwodI/getdrUli0NE8BXSsS4UopbTA1UT23giSsBJQ4J7m9Ywj/VpYkyt/m4PcQ3e2nxCWDDWhQhFdYkFEoW2IRBYnsXqY1euwJWWfRzrZ/3vOqI9vOKVllGioVQPic1cSTbpWsamOdVyx//FkvoNNG33O0bd3zAYdumhc4KUN5yfYsllNGYr934DXirtD+8NA1UQAZpjhlCCnfvDrh30a8NCVA+xzl5JZr0Hz2+l6D/tGp4PXgtrB4zn0/K9Le+cebp7mhOjJnKHoUbhKNovTZ7h2elBThFrd3kFlMvA6yASvTZo13cw8uK1aGmi9l2tMqPdLHdhQOnNt75sCXI9nyrnVJmRsmOWZlyqFr6mfmxbt0riyCW0gdsjcM8KCfTku5/SDGKZDVe5bUc+iB+dBp7cH6OmaS+OuWwtUcRLRcwpWfIcXbDChwPjMXDWIS1wh0MYYam8U70nBR/XRdGahKSxonSHAm5z09mAjqGajfH0mdgUcHDMeKk+mf461VltWD5AS7AiYSm9mr6Vwwn/rEgjEbsQN59PeWyQx2o4SUXhfNVxyQrHUJOYQ4ce5fLhrgQoc/CyYVd3inZFJXEyaLhFk0AG2ZGP9r8s8F6RSb4d127XZK9w1srzNUQPNJCrU0= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ee0dbf2-c510-4d65-b43e-08da5ae823f3 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2022 22:30:31.2026 (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: DB3PR0102MB3546 Subject: [FFmpeg-devel] [PATCH 04/18] avcodec/hevcdec: Add pointers to logctx and parent ctx to HEVCLocalCtx 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: mKViGnW1eYHQ It is safe for a slice thread to read the main context and therefore it is safe to add a pointer to const HEVCContext (namely the parent context) to each HEVCLocalContext. It is also safe (and actually redundant) to add a pointer to a logcontext to HEVCLocalContext. Doing so allows to pass the HEVCLocalContext as context in the parts of the code that is run slice-threaded when slice-threading is in use (currently these parts of the code use ordinary HEVCContext*). This way one is not tempted to modify the main context from the slice contexts. Signed-off-by: Andreas Rheinhardt --- One could btw also cache the pointers to the current SPS and PPS; doing so would make several accesses to the parent context superfluous. libavcodec/hevcdec.c | 4 ++++ libavcodec/hevcdec.h | 3 +++ 2 files changed, 7 insertions(+) diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index 5ad02742ba..111da42836 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -2661,6 +2661,8 @@ static int hls_slice_data_wpp(HEVCContext *s, const H2645NAL *nal) res = AVERROR(ENOMEM); goto error; } + s->HEVClcList[i]->logctx = s->avctx; + s->HEVClcList[i]->parent = s->sList[i]; } offset = (lc->gb.index >> 3); @@ -3646,6 +3648,8 @@ static av_cold int hevc_init_context(AVCodecContext *avctx) s->sList = av_mallocz(sizeof(HEVCContext*) * s->threads_number); if (!s->HEVClc || !s->HEVClcList || !s->sList) return AVERROR(ENOMEM); + s->HEVClc->parent = s; + s->HEVClc->logctx = avctx; s->HEVClcList[0] = s->HEVClc; s->sList[0] = s; diff --git a/libavcodec/hevcdec.h b/libavcodec/hevcdec.h index ff2199aa5a..a4cea2284d 100644 --- a/libavcodec/hevcdec.h +++ b/libavcodec/hevcdec.h @@ -428,6 +428,9 @@ typedef struct HEVCLocalContext { uint8_t first_qp_group; + void *logctx; + const struct HEVCContext *parent; + GetBitContext gb; CABACContext cc;