From patchwork Tue May 28 02:49:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 49309 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:612c:142:b0:460:55fa:d5ed with SMTP id h2csp141381vqi; Mon, 27 May 2024 19:50:07 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCW1JiNGos0mhB31Q+QLzwdjkcGOL9r/WCSvrQZOxyaML6pSjlJBA8N8tx8JqC+aL/9P7Y2miPM+RDgVyUGTcNej+oGc2sgBacxgVw== X-Google-Smtp-Source: AGHT+IGzVCzO1tIyZeRsDT7K5h7f9oi04qoiFeZajRBMydMMXu3eooP2RSavg9+m70R+3/+DVCB+ X-Received: by 2002:a19:5f07:0:b0:51f:3cb3:48a4 with SMTP id 2adb3069b0e04-529646e3b70mr6099432e87.1.1716864607064; Mon, 27 May 2024 19:50:07 -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 2adb3069b0e04-5296ea7401esi2674086e87.172.2024.05.27.19.50.06; Mon, 27 May 2024 19:50:07 -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=PLEeAB6o; 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 1A55B68D557; Tue, 28 May 2024 05:49:44 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2070.outbound.protection.outlook.com [40.92.64.70]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 77E8C68D420 for ; Tue, 28 May 2024 05:49:41 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nYoUc0djBQ2O4zNWPNBn5Ox2QylNcB0OJ35Fy/Y0OGnLghm5QW63bOuImQkEENR/yStkjDDMMsKKM3F4ooBZAjls5zsiSFp49PQAqzi3vKDhla2LWRmvyZ5mc0IRpU8WsEQJ/Vgntem2LtQUsLudWVU5Y3bY+CjFfeiXgr0tnhIeJobdjyopO+t2UY62bLxqfB5rvqpJF4H/Z8dq9KjZJB7NXyEsgz6bN5rw7z5VzdsPx4XpoWlkBLbM3srPOj7XoPhe6beTMeSDv7AyxZpVnizQiFXHTyDeq4NCxyWKjW9yvX5lRzhx+G/GDDLEE1heglskEbu4xKW+gtFe04XI7w== 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=d+ejOo1x/b88NliRTvOjrDSKviei1DThy+WPoE3ZvBg=; b=B4aUhkjbHKB8MnMDuj+0zQnn+1fn4qm297BIhFdgkHOb452fMSo0wfuOIGLS0wzOvKQ2VVdB7TblLxtH+T+fdJ/uNBu5eTJGhsYYD0wN3l3EeKuqH8gYPCoKVfmED/hmJ7SqktqHFHbpN3xAz9ZavNSWfQeS8mEir6BqraQ/+WmppfPdfwDydejjTwC1LLF7qzhqo/k4nhR3zJEuirQE8+PWFcMC0T52HPg6N7lM/9pj2Ymea1w6pqQZv2AMkCRelcnJsr60B8E3iUpX2uI49HERpMXvD2LeIt0/DsNk8WrSOVn0Vt6vASKjHRqcY4ltHCMH7NjlCt1TDtU38AmCDw== 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=d+ejOo1x/b88NliRTvOjrDSKviei1DThy+WPoE3ZvBg=; b=PLEeAB6oTAwtTJS5EhvkM5Y/SBw3HsDXaf/xXUCxtMspcSwgWValB+J0/ryTF6zmKOsL73i/eoTImfCjkbxi3S2bwXfZ2rJ2uox3mBaDsiOgKbFX95QGQSVVCX9gZMTXvgwqGuTZcmETXE0RdHzhD4TddQKSpbO1QvZLVBYjUaHTug7i3dE0hf8u093Z1AUgSPeP3SYJLLD794AVxOYZF7gvUbxCaMNVTZ3xL+LWW6sAqCF75H0UPDNJNGmfBJ7AVpYEoEo4lo/aq+SkQI8JllAuh7L9fmhfnY6hXNDdu2XFlde43SO2+wru0fP5sk5Tbj8S5AgvnffMvw090Kytew== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0183.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:326::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.30; Tue, 28 May 2024 02:49:26 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9%4]) with mapi id 15.20.7611.025; Tue, 28 May 2024 02:49:26 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 28 May 2024 04:49:11 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [ZTQrPLKwj5M0V+ApCuZC6+0U/bJfQ6oRG7GpmFk5/sw=] X-ClientProxiedBy: ZR0P278CA0161.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::19) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240528024912.3310372-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0183:EE_ X-MS-Office365-Filtering-Correlation-Id: 4331847c-70c3-4c06-92a5-08dc7ec0c9c5 X-Microsoft-Antispam: BCL:0; ARA:14566002|461199019|440099019|3412199016|1710799017; X-Microsoft-Antispam-Message-Info: Ulgvbuib1Tl0uN3WmaQg+1X8ZMFwGRZAyZQP4So7jPl7Q/XhTBGQw2wiS7Q9U1787phBo2X4xA5XYUm+a9LzEdGYh/fu14b4dFLjdFWkFGg8GVqEHCbOPwwPnqeS5MVcJOjIkU1iHyfK8501CHS3mrYaqA2v+bTz/6v/AyjPh2dYngRFJw4jdZ42C0d7iVB3GHxl3cwKRpAk3WygumjFDaPX9u7o4u0VfWQiTEJxY47R+hIjPCSqKtBo2/STGaS1Xduyb8Rnr8Uh1H6wZwRjKmIpx/4dHm41ayH6dyzKQdmexqo/aESb5cc7Px35iAN+S2oo18/5fO8qrJTVm17Hk/RSdAriN+lestnEoTsqNoqj47YPEYubEc1rhoEcPPldH/nuiqItSW4HXVUGh1rY8d1uUQpnh93UPNZkk7dmvo5HZM+V6WIp3OxZ9s8PMd6ETOww9dewToa5/wCs1sGvxJHn3rNehGXu2k1qhNeVU7Mlp71IoC0ayegNyVkjEKHXx8cRYcNvIl7YfdGM+xDRynx0VhVbsdHRBtFg+GmRiAp0BQHAxL4BPo+ih+Yx74HSgkvltYPhpGFR5eBo6SbgDgnFJTG+TYANWsO/W0o9gx40PRSbyzZW6XbeP4+Z2y2T X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vYLBHim8m9xdGYBjEFq2DPjvfQseBvhDZ1IyoaNhRcr9aKdgO8VQ+2/AXgCrC4+s2Jpi8/WztIr6NLgdPNDjSK4ypSeF74HpKk/r+x9Zl/yetEwkhhQIrfo0JoQbeauZAw791evfqyTPE177nzNexaIYdes3yU7lWECiNvAC4J8ylyjH2914w3pGCX6oW1YO3gCtZxmQYdzV0vJUL3voyij96uDAecg3c6wCHg/eIXP5T2F4uUWnLmLiTF1VD9nMcyybORDstfPpnoaLsgpfogUOZJGfesXUFmNyD25bdFWNJmoqaBhy9rgfJ1tLi7zhOS+JEO4ukZbvH0UI/4cfYvHHE5opKibEJzzVBzabWAOf+/pVNfNPYgdFqPu/nQK3WkcWvn1tQZfLUvh+/vuCl4yC2Avyn2QCbLq++/Q7iCKG6/WdVXQ7xC6Y6XrX04Q5i4WiVKs5Df2O0A/KVeKMo8cGOPNblGN0RAjhUBVN98MkhdESgl564F8pvBikiNjB2JMAlorbDpTccf/zNkwvkA3yN24h6XN0BTx8wyr+GdQT+xCRdDYax/3dsaWEySl04TYFTaYA0lGGX8vm3h8xz1APEc1rqD7roG+1WQtMXtf21p+D7XxFWhgoewAV2HWoyUTEGm4Uz32/0Jlp/p1ox3TCr7JkPHPnK6Q2ul0bbSytVBRaiufPDiYBzhNBCRb7u0LvAYqDFnb8Ikjzjeio4cz2SUOkHGdVaxegHkWwDA5HE2uGDM3qXZmcE1cfbaQSR+CQJlhNkrKoGIUdcJerLh6GgjVnLlUGEeNQC9j5HU2Ib3dWpgVQT2BayY9pQdfU7ina9NX6sucWWgzF2Ng0F6U2/P3fXOt7dA1QNxEnhqsD55J9ZOwRwvPiYFja4K5CR/sAdGeCELw3Xf0X5fW6gzPF9qnAus7hzErqqT9laMgKQ1x23tegRRxAiAV2pxpfb870VksDfoHvEPK9mZg6Exv5zRmvd9AEYD5FXFKqN+HSNMSZt+1yd/DanXm4Pxl1ZBMO0EYXVlkD3owwD3nf6SRIwYi/17c31B/qLAyHUrxDZ5WwMpiJlqhy8rixGCxGMzQzTN+K9vmiw7vKwqLUT4po5rbPNK4hmP6FMqylmvoSwkuntZt/+PPtbddMj1LyoXM0Pjp3JmUFwYgKGA7NGfwiNxhvDYnp2jXjRANpPu2z4yFDcZlSVIFG4HCpmrOjdMJqqMK5oiHRMLapTd80AOUjl4gaOeyXTVRUCvohUdO24Vj9n3N8sEgV7cE+gELsRn12YoVBJK4W3tDgE9G1XA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4331847c-70c3-4c06-92a5-08dc7ec0c9c5 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2024 02:49:26.5185 (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: AM8P250MB0183 Subject: [FFmpeg-devel] [PATCH 6/7] avcodec/vc2enc: Move transient PutBitContext from ctx to stack 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: ZbhmjuY4JBjA Signed-off-by: Andreas Rheinhardt --- libavcodec/vc2enc.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/libavcodec/vc2enc.c b/libavcodec/vc2enc.c index 8b9641916a..e72c15e6f2 100644 --- a/libavcodec/vc2enc.c +++ b/libavcodec/vc2enc.c @@ -105,9 +105,11 @@ typedef struct Plane { } Plane; typedef struct SliceArgs { - PutBitContext pb; - int cache[DIRAC_MAX_QUANT_INDEX]; const struct VC2EncContext *ctx; + union { + int cache[DIRAC_MAX_QUANT_INDEX]; + uint8_t *buf; + }; int x; int y; int quant_idx; @@ -724,9 +726,9 @@ static int calc_slice_sizes(VC2EncContext *s) /* VC-2 13.5.3 - hq_slice */ static int encode_hq_slice(AVCodecContext *avctx, void *arg) { - SliceArgs *slice_dat = arg; + const SliceArgs *slice_dat = arg; const VC2EncContext *s = slice_dat->ctx; - PutBitContext *pb = &slice_dat->pb; + PutBitContext pb0, *const pb = &pb0; const int slice_x = slice_dat->x; const int slice_y = slice_dat->y; const int quant_idx = slice_dat->quant_idx; @@ -735,8 +737,9 @@ static int encode_hq_slice(AVCodecContext *avctx, void *arg) int p, level, orientation; /* The reference decoder ignores it, and its typical length is 0 */ - memset(put_bits_ptr(pb), 0, s->prefix_bytes); - skip_put_bytes(pb, s->prefix_bytes); + memset(slice_dat->buf, 0, s->prefix_bytes); + + init_put_bits(pb, slice_dat->buf + s->prefix_bytes, slice_dat->bytes - s->prefix_bytes); put_bits(pb, 8, quant_idx); @@ -789,7 +792,7 @@ static int encode_slices(VC2EncContext *s) for (slice_y = 0; slice_y < s->num_y; slice_y++) { for (slice_x = 0; slice_x < s->num_x; slice_x++) { SliceArgs *args = &enc_args[s->num_x*slice_y + slice_x]; - init_put_bits(&args->pb, buf + skip, args->bytes); + args->buf = buf + skip; skip += args->bytes; } }