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 5B97C445E9 for ; Thu, 20 Oct 2022 08:48:45 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 01D4468BED4; Thu, 20 Oct 2022 11:47:24 +0300 (EEST) Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03olkn2067.outbound.protection.outlook.com [40.92.58.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 476BF68BE3E for ; Thu, 20 Oct 2022 11:47:22 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I4h3S7AZkDs6M+NVcMQZ6AUD3sn3BGhHVyDGjRguNN7os6P4PpVobV5yNn23McsagC6VCPjOu9y57GFjCoE2um4UcKuQLHRBxW9hI8GfJv05Is89PZ5Ry414LZ/6kkgblu1GNiJqLGlko8SpVqtDckprnTSzH1zg9Cd50AYkpCJpvdLfaaafUtd4flvs9pnRCc11/K19IlFc2wD8nSyRVDf4TJlRH8Ux8Wja17/FF7OAb6yyfx06PSxkGNaQKg2HBxLh9lORWTDNX8AMOWaBmd5faD+97/v+bux7H2E5GA4dDAb3KD2+lol/h8zbzODAMEEDyN83Ta13WW2MiXhrIQ== 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=P3gQXNVyUZb2VNTdSEdAzOU7Dq+ur+nhQD1iO1/NJMc=; b=GTLxleG7XwrCQINIGlHDSqDox3lvKTxsKs7ZazEcXMAPgBsor5im8/2EmSv7uaq9vR+EcWRLsgSLWtMYD9LPavHlb65gzWUSL9r/Dii06qfdZfIGvMVYTdQR9YoZpF7SG+Cy5e5XwY2nn9VAwrvCJMq4TQzq17Aod7Ql9g1Rflr6UhVXXCa4w3aakkIYcv7cWVb+Sov22rU2IqIliPMq6D6tVqtElMJsrqOqiEV26kgmc3M8YVS9L8bKyo/W3cO8lzbk1sFu9igN72oHDk2i2+riNbx+Dj3IpCjSED7FIOiuidVjTUlD1sSb/X9m172TTajxcq9WefXsODt/xSmgeg== 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=P3gQXNVyUZb2VNTdSEdAzOU7Dq+ur+nhQD1iO1/NJMc=; b=rK6jisPB/6zWnokT3xozaZKwjeBuTlhCETWp/tAewsdL7ommk2ciPGRTITUhXJ6wL1JMF03P56eIW6Avx4jGfVB/W+CxYqImym02eSpa2eN8zZ9jDdHTy1DddGVYfA5n+Oym8hqz8Yjdvc8QdFEsaFYs0iGcipSelJ70cfj/RZdr5Vi7RzrZSNK/lHdzClsSGoadaz14EpBH7n6mcvDS2IPtdCYXTJT6ojkSaLayNXeOH4HOWX1JaCAuiEVe8JLgNjjtS8xYRt66gOLWWN0sAeCgTTDeRdiIgujKE48dp0LN5kO9zT2rOWm0zhDkZJ9d6GdFDdJu+q5Tv6G0LQxsOw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS8P250MB0393.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:37e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.29; Thu, 20 Oct 2022 08:47:16 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f9d7:680f:70c4:44fe]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f9d7:680f:70c4:44fe%7]) with mapi id 15.20.5709.015; Thu, 20 Oct 2022 08:47:16 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 20 Oct 2022 10:45:40 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [AjSPzFvC1DED9aCDr4GuIop2n4LK3iaODVDmlDIhUqE=] X-ClientProxiedBy: AS9PR06CA0774.eurprd06.prod.outlook.com (2603:10a6:20b:484::29) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221020084540.2378553-21-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS8P250MB0393:EE_ X-MS-Office365-Filtering-Correlation-Id: 8a969ae9-19b1-46cd-746c-08dab277b100 X-MS-Exchange-SLBlob-MailProps: ZILSnhm0P3kEq9VXjGDAyurdVkDmkI7qEn3JMgvcMM2KRKbb46+PezoaoEZzg1uIWs916gIGHshP7B4LW/xtrpY3/czC8wM3A/IzQT76grNw5wIjuRG/35RTlcnT6hZTLIFqqgBoC7jANvCIOSTvugJOAMd/1Bdto3i5FUuzSf1b1gBpktTrN0KtBIQ1D62dHi5SYMV3o7DIo/Vs2fxxrmOcgew7Fl46Vd6m+eM3xdJpBZhLj7gdtr10rYxPR3/EEZOde6fMyNNE2pvCaqkmxPXFR7w/yO616kHUjkGzwAo4J9a8I99ovEPweuF3GqJAtrvz9JovQYhCVX7mLEuMbKMGOR5zWP4i4qhCQEoup8Do1YIAM/LJDg8fQSE+bR2NwonOyUkiyu90XUc8hxJPff8hnNvA6uaMwpzoznOY7frFuplS68Sz5aFAOmhltJdDbb5Q1LRCG3PNt7TULEN5SWsmtqXVRX3wJd6sllt/3Ox1D95kHBruZgZ1D16ewTRKxYxa7z2SNgGa7KbC0+PN7nKzNNITbUKfhJQSFqVPOaxIkZFGBJnld0JTq4TWbPdBnkrRnJo9RPz+Wvz5ejsX423RrHKtgEBn7OGfwYrn6Doc/6R43V4N91vWgCDZDGhyBqnHfeAj1w4AFPF6BKn7QZd0RxRjZW/4mqjSwhiNYuBmzyGCCTVo/mGAr3sTTYnK2kOcMJWPPhzMHzqe/TgNGFNntjjZSDOUtn3ujuefL1FHLyExVL+nWYxw056eAitzZpIMKMNlVbQnihq683tYSe1Zk1Iyn5LG X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hITVg2lOg3cO7QdO9WEhGzmWgdnbnLuQp1SqKLMbSExIQT6fMhg/X4pBgU+TjctxY2EaDui13ZN+gqDg+JMGSMJYohxpiHsEw6ThXRL2qXqMo/EXCjdkI4TVlh5Omev8zk2TTL+/+Xw5p57ZC3HfMQvnCi8sBDwZuceVratIxtMFnp6JRvKuIQd7UOhIcty+0kn1RKgQzZYuAMkEq/7jxaFv2rh2+MA+hNeqFATIgwEmv8ivHLxpYrcPjvuI90uX/dBw0R/IJRy7AEWaR/gLsC0t8fal/jVOiL3wZ4lnmFrNCFVBT+X1iCJSO6a7ahIuBI4ISWRxR4OLaS+FUnWCxD/XTiQqv9QbpMOzitaxyYSbl5bL2s66P621FbRIvxEsVtktJCdLgWzP3tDdo5ufIBFn8XXTCRZ7z+peImZjwvkzTmjJKGc9Cy2obqVxI+dXkz0mXFfx1hPO14D5ymG8K4AdeXcR6kTTtEkcdNDVD47276sbmKXs7pLBTqfrenj98XRid1uybOrKaEWt/YdMT8DuRUop9D5FTLwPCCD4yE86xD5VcxLMI092MQZFmE6RWqwdL2ELh4SX3ZdTK1HLV/jLRJ9hFznQtxhOn/lsWPCoyURyzFMZ+bVMbl3uq1JYpAlEcc+1I0iu/1ApXxAYGTB0eEtMCDpWsLZ0Qj01gTtxGeYordrB4EZDBWzlSNgv X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?U+52DcW+U7uOwysCasT8MOG5y3yIQI2wQRxjSKSHl03WNg8oatyWbgAHSOMg?= =?us-ascii?Q?6OhMc7NedfN8VKYYoc31ObVHKNR6hbvGWIhf/UB1qRE6iw7v8HDp3748+66B?= =?us-ascii?Q?bT/LyJBZjDqxmOG6+xXzT4mVZV0zs2OdcQbtlrRFN2HM5jaI58jO9N1aiPiq?= =?us-ascii?Q?9SkfgwtGHJXhllI/9sIGOtc2K++ymfgqxUix5jdzsq17y6hd5H83EDGWHJYq?= =?us-ascii?Q?g1+prbUEmdmJR1LeZbm9owmxgROoq4KhZ/pfW9rK7mPcFsG4nT/Mqoh6lzOE?= =?us-ascii?Q?RTuRot9nTnfdhvily49K0id1BT0xXqujy0Xcn1kQLtvkMZIox7D8bgOcP4qf?= =?us-ascii?Q?97VDZIwyIZYrkv9NAS+ldyUD/bTWlU+tEf0HsFbhlJ9gEG5F5XRRNAf8CpdE?= =?us-ascii?Q?45azA75fcuK7NTFlqMR3SYrdiefsLdq6P9br4LmGIJFin4a2LCztRC/6bHWe?= =?us-ascii?Q?Y+ZN5hEo8vT1jIHtYli+sT86nxPNuE/hoOLB7fFzBgVTAeLI6BiWmYYtfZX0?= =?us-ascii?Q?Pde3HcamvgojLwZLco8VZQrO2rdPmaUe8OhXg8fOQPE4rWXxDryzJYlvzj2p?= =?us-ascii?Q?jFA1XDoGIVP+L0BFgpbLgauFOof8lSjLUcOSnm9jgC3Ge0hYL1SLgAQCgLkk?= =?us-ascii?Q?UyTSgHbN89Ivq4oQGwvtGSb/3bFiStTJ9KusmtYqqcq0S6IpgoKKYHpq0+Nm?= =?us-ascii?Q?9OJB7lG+d325qS6ihmFnUBccaByep5p1xvo99IJ2ZmILEE8cs+PFu3dns4a5?= =?us-ascii?Q?foRmLBzZOf0Fb+Qzedgp4/AwOWcJpDslR0IlLp0rxHZErmtvUCl2SaQ+CaOM?= =?us-ascii?Q?dbbFeBOEJerQVXGvDcUKXuEx3n+VeWlcKCTJ2VuQ5qX8Ck0jPT+jWeAfoIxu?= =?us-ascii?Q?x7ceGm4KohjRGxocjtR3cXUxocRymAjs0md/iwDT5l3b+d6ej9rNJROhaERZ?= =?us-ascii?Q?0GbqGaUnwFDarROBDq8FgV+d9pXZMtJJOyviSeWSiNYt+TW3OCSNWDbLR8N7?= =?us-ascii?Q?qv3yBTzlHia29WHFO8DncYTbJGzf41N4ralxHQMequE72JrFIPJhGGjsku0N?= =?us-ascii?Q?NhDfhlMA7w9nNRKNlUvf5ZceUnkuyCBq/qdOwFAPupgCsQYqJ8I7ch/LDNb5?= =?us-ascii?Q?eEAY9Lo0+GcCgMgSl+YAZwGAzg8YannctJMr2D0B0uGeRYReYWSdQVSjrBxw?= =?us-ascii?Q?N0LldSga3m9F0du9sAQvBi4b2TJS/LsjqssXjG41BLBPJ1Yh6QHeDkEUWz1v?= =?us-ascii?Q?9RyvRC740seJ9pE+K0wwTkgVDCN+7BR5dom/DPCuY+EOpzlNhP4oLmNDWiyO?= =?us-ascii?Q?Xb0=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8a969ae9-19b1-46cd-746c-08dab277b100 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2022 08:47:16.8670 (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: AS8P250MB0393 Subject: [FFmpeg-devel] [PATCH 22/22] avcodec/eatgq: Move transient GetByteContext from context 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 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: Signed-off-by: Andreas Rheinhardt --- libavcodec/eatgq.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/libavcodec/eatgq.c b/libavcodec/eatgq.c index e8d66418b9..85bd5ee3b8 100644 --- a/libavcodec/eatgq.c +++ b/libavcodec/eatgq.c @@ -45,7 +45,6 @@ typedef struct TgqContext { int width, height; int qtable[64]; DECLARE_ALIGNED(16, int16_t, block)[6][64]; - GetByteContext gb; } TgqContext; static av_cold int tgq_decode_init(AVCodecContext *avctx) @@ -147,34 +146,35 @@ static void tgq_idct_put_mb_dconly(TgqContext *s, AVFrame *frame, } } -static int tgq_decode_mb(TgqContext *s, AVFrame *frame, int mb_y, int mb_x) +static int tgq_decode_mb(TgqContext *s, GetByteContext *gbyte, + AVFrame *frame, int mb_y, int mb_x) { int mode; int i; int8_t dc[6]; - mode = bytestream2_get_byte(&s->gb); + mode = bytestream2_get_byte(gbyte); if (mode > 12) { GetBitContext gb; - int ret = init_get_bits8(&gb, s->gb.buffer, FFMIN(bytestream2_get_bytes_left(&s->gb), mode)); + int ret = init_get_bits8(&gb, gbyte->buffer, FFMIN(bytestream2_get_bytes_left(gbyte), mode)); if (ret < 0) return ret; for (i = 0; i < 6; i++) tgq_decode_block(s, s->block[i], &gb); tgq_idct_put_mb(s, s->block, frame, mb_x, mb_y); - bytestream2_skip(&s->gb, mode); + bytestream2_skip(gbyte, mode); } else { if (mode == 3) { - memset(dc, bytestream2_get_byte(&s->gb), 4); - dc[4] = bytestream2_get_byte(&s->gb); - dc[5] = bytestream2_get_byte(&s->gb); + memset(dc, bytestream2_get_byte(gbyte), 4); + dc[4] = bytestream2_get_byte(gbyte); + dc[5] = bytestream2_get_byte(gbyte); } else if (mode == 6) { - bytestream2_get_buffer(&s->gb, dc, 6); + bytestream2_get_buffer(gbyte, dc, 6); } else if (mode == 12) { for (i = 0; i < 6; i++) { - dc[i] = bytestream2_get_byte(&s->gb); - bytestream2_skip(&s->gb, 1); + dc[i] = bytestream2_get_byte(gbyte); + bytestream2_skip(gbyte, 1); } } else { av_log(s->avctx, AV_LOG_ERROR, "unsupported mb mode %i\n", mode); @@ -202,6 +202,7 @@ static int tgq_decode_frame(AVCodecContext *avctx, AVFrame *frame, const uint8_t *buf = avpkt->data; int buf_size = avpkt->size; TgqContext *s = avctx->priv_data; + GetByteContext gbyte; int x, y, ret; int big_endian; @@ -210,21 +211,21 @@ static int tgq_decode_frame(AVCodecContext *avctx, AVFrame *frame, return AVERROR_INVALIDDATA; } big_endian = AV_RL32(&buf[4]) > 0x000FFFFF; - bytestream2_init(&s->gb, buf + 8, buf_size - 8); + bytestream2_init(&gbyte, buf + 8, buf_size - 8); if (big_endian) { - s->width = bytestream2_get_be16u(&s->gb); - s->height = bytestream2_get_be16u(&s->gb); + s->width = bytestream2_get_be16u(&gbyte); + s->height = bytestream2_get_be16u(&gbyte); } else { - s->width = bytestream2_get_le16u(&s->gb); - s->height = bytestream2_get_le16u(&s->gb); + s->width = bytestream2_get_le16u(&gbyte); + s->height = bytestream2_get_le16u(&gbyte); } ret = ff_set_dimensions(s->avctx, s->width, s->height); if (ret < 0) return ret; - tgq_calculate_qtable(s, bytestream2_get_byteu(&s->gb)); - bytestream2_skip(&s->gb, 3); + tgq_calculate_qtable(s, bytestream2_get_byteu(&gbyte)); + bytestream2_skipu(&gbyte, 3); if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; @@ -233,7 +234,7 @@ static int tgq_decode_frame(AVCodecContext *avctx, AVFrame *frame, for (y = 0; y < FFALIGN(avctx->height, 16) >> 4; y++) for (x = 0; x < FFALIGN(avctx->width, 16) >> 4; x++) - if (tgq_decode_mb(s, frame, y, x) < 0) + if (tgq_decode_mb(s, &gbyte, frame, y, x) < 0) return AVERROR_INVALIDDATA; *got_frame = 1; -- 2.34.1 _______________________________________________ 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".