From patchwork Tue Feb 1 13:06:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 34028 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2c4e:0:0:0:0 with SMTP id x14csp611719iov; Tue, 1 Feb 2022 05:21:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJyk0a7VSACN8osq5Ki9vSMtwN4oAoxgv/mGbhdDhydMjzebnd4sN2IspLcHG+ft7IKt3xQZ X-Received: by 2002:a17:907:1c8d:: with SMTP id nb13mr20393959ejc.150.1643721698368; Tue, 01 Feb 2022 05:21:38 -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 b6si10139963ejb.527.2022.02.01.05.21.34; Tue, 01 Feb 2022 05:21:38 -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=kcMNjije; 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 DF1AE68B43E; Tue, 1 Feb 2022 15:09:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2045.outbound.protection.outlook.com [40.92.91.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3A57368B3C6 for ; Tue, 1 Feb 2022 15:08:47 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eSRdSA0vQOherycpr/DeJXT62nHJ36G23Cchp8z1u9ohNlfXMjlNkJ6ZX+XsYBLzqxtvnRuwMS7jsCjsJ9h3js6OXwMpi/wU4MXMmigAvjV1omt9wvW1WDDllQqiXm6IEnRfZcieQPfHdskf2ZM8RdwKvdInfuQe54t6stcfSbwg0h0LodFcSrTTZCgkUdRBu2a89Csr9Vc2yvFQqE+2QieJW13mf8IZFQvmQU1e1o85DONPv/1XqgNOe4w1ChRbOQoZik4m08/euSCgNga7vHZPLE+bVxtXr16qOBe2m6fKpQShCisuZI+txbBxUK08MX4TOObagj90fMET1H7xXg== 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=sJ4xb0rp/Fcjj+I28foot4JESrD/iMVy3ItgAnRW3RI=; b=istiJZpu35uyiG9NGJ5gXRfDee0gZ5iuS0ci7KWEYkwqiPy8dKTuX60kv0c2iWVGETp7gHwvugGmckTraXTmddobDGDBX/HQ3rqyWBx/pRlvXRRqZTCypO02MuKssPb0mtVnLpyOdXejN87atFKk0uz+kL6l61Z2KYCvRE/05fyGFQwLUW8NTpFXEaPQHfIAbtet8k0itn946BcX5m+5dUxyONGbpeUEdutj+hjK7L5NR3DjK2pzd7wLaMTVpcwNvbws1kpZSBA9xsduw9QHFoATGPOhi0+UvKxgra86mI+rhG0bDik3uQ/dsWWxIY5mTd+KgFom3QOYAskR3sDWxg== 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=sJ4xb0rp/Fcjj+I28foot4JESrD/iMVy3ItgAnRW3RI=; b=kcMNjijeH4OwvQQ/Wv9JEi6t9jKGaPI9NmSwK7N6Ziv3M+nXoVY2LLyQ7+/u80QCE1+Ha3IQy1+Xc1ZRgVr3UMU/0B1dcEnSBw+a9CSQ3VPgi/Lfx+Y6QpGLq+YJLvAGmsqBAgt2cxCCAQrw72mU+VYQYK/2UKanmZzEluDXeGXTOp1mL/VOnU1YBOxMJwh3fUx71Fz/pcgxvmJcXTSJxXf+2/i6eGLGr8BU7iKwYupIUjOnvemAP89bCCi4TOTaqLt+EU/Y4fqqlIGgvXRERs88HS6Hq11gkPeng1QXakGsrliZHnIhWPIbeciUSQW3HVjX3KezuphTy5BXH6HCDg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM9PR03MB7962.eurprd03.prod.outlook.com (2603:10a6:20b:439::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.22; Tue, 1 Feb 2022 13:08:46 +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.011; Tue, 1 Feb 2022 13:08:46 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 1 Feb 2022 14:06:56 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [5yEmtcyEzl5RIXthKjalLVgeWDMxTaE5] X-ClientProxiedBy: AM6P195CA0092.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:86::33) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220201130706.1420875-58-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: eeecb7b3-7062-46bc-ed19-08d9e583faec X-MS-TrafficTypeDiagnostic: AM9PR03MB7962:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: niwZdgxgwIOJTfCi9Zic2+kN0APKEEG1ZFU9vJWsrEgiwdI8V8RjBuNDCbZYAAKE3YLhot1unClJSGRr5eRIAEW5lnQEhYilQlp4nvVb8Qn+Y1/w9upLdD+aN7tU2LFGwXB6im/2Nxjbpqw8uC3WfyFxiwrMErxTR01FebNEQOTsgsAZfh3WWnn0q4xWQe50iIADRnfkwwr25+BvJ0Z3k8imHP9T7ts2/VJqlbndYvHlPmejnNNKEp5URT8VmS6+QIAaH8pKttVMs96q6VvF+QLLQAr/43hPDcvIIqLgusUhtdT86D6EvNsEm+G1NwaX4CgCZhlCrk9BadHR78TtBleFOd9myIGkN9GirQtEGhl0QxKbNbvVABprMuq3RlhUKRxEjF4TzLem4BLvMlL8vwd6iuL3gM0JMi2KRggci3/BMj6td9hTqCYdbIjulyGJrIXhwzUFI91hJi1CCAaftRgRtBlvsa62MeGKUYFzc/9OYq1fmh5dh/OzaSU+Nxi7iNDdNoKUuvDoRVGbI7vygFuXlX9osvWRkWSVzHjBJJg/kkuJzQjNwlrqinOv+9b/ X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: uoyhMvQ8opZyJBclbUXD8+GVQrheeFUP80gYJ/SdyiKKxdWYShrJ6OpAZroBIh5MZz3HkcOT8KOoLMXQSCBmmAiqnRflVjZDye+7R5i7PC75EsgTwyFSuOwQWlvqDT+qF8srhr5Bxwcq61IzsZMtEisTdrQ6uQ/IEyYFgCfniiduesnPNDWgnko/xtFaTcO3WZ44A9FQwBKrHz/W7jaIBVWv4Y2a1gaVkGPD1WtcycT9tClGj9Kp5d2pGMLK/LEf5AthtXEMYQ+rQW992tGEW8u5nSySV3328KpIChOc5+geQLASlmoDzHcePO+2aI6S+H52JOABftNtG95UTQZepUfyUwEbEPevv7b1BJHn0A1/HeAyiBQ6Arv8DTg7WxLHOpD6aOdVyNVSEqwasd7YRgWhCz0lyZ2DDFymdx5gghN2qCO4L59MCkMzMjtF7eZTtu5IqgBGuZ8Xtf6eczCQWlUdY9E8yBwtcknVN9xL+zbtgR6QYlm9eotiRMXXkysNtxiHvO62kyiAMne3B1pS+1HUt+EcE4LPZQ6wtvom37HR6mb8PbZog1/1EHgisLWpg7wx6sbgm/deQUfG74rE4j+7cDbm1Z3MHfkBsZayRUH9IKHr3a5qECHT/Q8U3LGuRbE40PCQtd4qdAC1KDLILbAplXWPw1czikpbQ3x0cSbsc0yLzeOAOCw/hI2QWC21pcxWi25yVvmvWGNBpkV9bFv9UUa7LlaC5QQYOHlDJtahUp+1p61rjSTO786WRZ1lQJQm/N1ElXNx4Xt1QMLR/NS0Sp3qPIAPnn+m38S2Efztnqjc0lV+uMESRno7D8u00tAm3ePbKHlzV1Y60JBmbNTXYkO2/+oDWeb27NAa/TQt0uAt/a1iIyReERCdENSFH8jKRuwu+o6ZHCwN/QxlwCAvi3y1ts9LWQsRmgsvkvK9e3mP503h5enLgiRiP46zb4CJrM2e+nsofDvRnhHbBA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: eeecb7b3-7062-46bc-ed19-08d9e583faec X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2022 13:08:46.3880 (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: AM9PR03MB7962 Subject: [FFmpeg-devel] [PATCH v2 59/69] avcodec/mpegvideo: Add ptr to main MPVMainContext to slice contexts 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: 8bHNfEoRbAGz It is a pointer to const to allow the slice threads to inspect values without modifying them. Signed-off-by: Andreas Rheinhardt --- I am unsure whether this should be a pointer to const void or a pointer to const MPVMainContext. libavcodec/mpegvideo.c | 3 +++ libavcodec/mpegvideo.h | 2 ++ libavcodec/mpegvideo_dec.c | 2 ++ 3 files changed, 7 insertions(+) diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index 220f1c39f0..4b22eb746a 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -396,6 +396,8 @@ int ff_mpv_init_duplicate_contexts(MPVMainContext *m) MPVContext *const s = &m->s; int nb_slices = s->slice_context_count, ret; + s->parent_ctx = m; + /* We initialize the copies before the original so that * fields allocated in init_duplicate_context are NULL after * copying. This prevents double-frees upon allocation error. */ @@ -524,6 +526,7 @@ void ff_mpv_common_defaults(MPVMainContext *m) s->b_code = 1; s->slice_context_count = 1; + s->parent_ctx = m; } int ff_mpv_init_context_frame(MPVMainContext *m) diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index 9005dcb58a..1c44e9be2f 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -76,6 +76,8 @@ typedef struct MPVContext { * offsets used in ASM. */ struct AVCodecContext *avctx; + /* A pointer to this context's parent MPVMainContext. */ + const struct MPVMainContext *parent_ctx; /* The following pointer is intended for codecs sharing code * between decoder and encoder and in need of a common context to do so. */ void *private_ctx; diff --git a/libavcodec/mpegvideo_dec.c b/libavcodec/mpegvideo_dec.c index f202db33e9..fd97e6ac1a 100644 --- a/libavcodec/mpegvideo_dec.c +++ b/libavcodec/mpegvideo_dec.c @@ -72,6 +72,7 @@ int ff_mpeg_update_thread_context(AVCodecContext *dst, memcpy(s, s1, sizeof(*s)); s->avctx = dst; + s->parent_ctx = m; s->private_ctx = private_ctx; s->bitstream_buffer = NULL; s->bitstream_buffer_size = s->allocated_bitstream_buffer_size = 0; @@ -83,6 +84,7 @@ int ff_mpeg_update_thread_context(AVCodecContext *dst, if ((err = ff_mpv_common_init(m)) < 0) { memset(s, 0, sizeof(*s)); s->avctx = dst; + s->parent_ctx = m; s->private_ctx = private_ctx; return err; }