From patchwork Tue Nov 8 00:05:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39226 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp2480093pzb; Mon, 7 Nov 2022 16:05:40 -0800 (PST) X-Google-Smtp-Source: AMsMyM5K6m4wzLLj9/AyEVPECwNU6kBBX/NwpU06TOWqWWwf9YVBBfaRGm/SH0UEahkPqRJggIx7 X-Received: by 2002:a17:906:eec9:b0:73d:c369:690f with SMTP id wu9-20020a170906eec900b0073dc369690fmr50902302ejb.767.1667865939871; Mon, 07 Nov 2022 16:05:39 -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 lb1-20020a170907784100b0078db6f5f4b2si8666836ejc.546.2022.11.07.16.05.39; Mon, 07 Nov 2022 16:05:39 -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="RWvfxD/s"; 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 A982968BAC0; Tue, 8 Nov 2022 02:05:36 +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-am6eur05olkn2080.outbound.protection.outlook.com [40.92.91.80]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 266D868B1A0 for ; Tue, 8 Nov 2022 02:05:30 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kTdPF4HHYcj2jZ9Yi/tsGkM38O5DzLDxzEmCFz9ybe9TWWpvZ+b027E+UFWjjvKdTzmPBOgCJmRCcDT3GcsXqjDbOH76N04I4Z/J4og5JpIhcjdOcPh7Div/sB0yJ/SrGGCVHu6whab87JkDE/wUAhTerxvC0K+s2d5SRaOn8KIjNpI3yJjSId/fmHTEc8I9Ttka8OPCScFEUos1Pc9cC3bO/Ab1UXMsia6o9o1Xr5N3yZPyNUfoa0jqcOdAIzRVmVPbdxnrlUlGexMvalqU0A25b1CCFUuIG6eH8wONciYs+HQzOqnYb0cbm/nKql5nEMoM1SFXafrJwcQwk6CABQ== 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=L100+Zya6DQck2m0jKB6vxiFFSYq7YaJPGAXlqtBY98=; b=IQN4dkNguHssnW1gBt9TgyrnOMMjjXjNTD2Em7GODYrKveR4gz+kEVn9s+wxdTTQvbsPRpierGbDN28aQDV13WXSROtaKxSnIMywY7EL6OHpDnKBHHTdg6Tetyk6Ll+mFXgAsjqG+UF4boQHG2CjOcuLAtI7+H5xuat4BxeTUzDlP5As1M9V//BEDCXvzJaSb9n4CJDA3SCQHjT68InVbacSluG5ZI5b9Ckv+CpPZsQU5tP4T20gAnXSmXsHUH0mhdL6r5m1hcdAk8H9Fm1yUcU6klDRrHmkvGDCxyJaWAF+FLMdt5cmFBYgGOMGmtCZ522Fu72TWW4DOrnydbCCBQ== 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=L100+Zya6DQck2m0jKB6vxiFFSYq7YaJPGAXlqtBY98=; b=RWvfxD/sc8H75rEstjXFlUeRkKFLANYAfERiTRoNf8VA5MU4/ZoVYmo+UNJ9TRK1I7e3BtRmSky9/GQA8IcU/TCDHogrI+TdErT0drz+heINs79ujHI1zWtakzyrxnGK3FxN5HFLca7m8YaXE72amdrK0+GBGoiGjBdpZGm3zGMsRltUNMtItJB7Xeyi6couemgux0YqOr5lU24Dcj7rVKPQncXRhSYPJI0ru353Owmebof7EgoTc99z01NzEh2XWG4nZv4cQOdoXDl3mAL03exg4YM6S+6WdW+p7Jyxa9ytsf/NWNXU4PZi5MtUUkCwlKXlyUUZ2/KW0PCyAwi/tQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0386.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.20; Tue, 8 Nov 2022 00:05:28 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::9587:72b8:e3ec:c4fe]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::9587:72b8:e3ec:c4fe%6]) with mapi id 15.20.5791.026; Tue, 8 Nov 2022 00:05:28 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 8 Nov 2022 01:05:34 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [y74ZCm8/1Bio6qsqVFn2xyfzkxnao8zViSNEReeFB1k=] X-ClientProxiedBy: FR0P281CA0077.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1e::16) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221108000534.1835870-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0386:EE_ X-MS-Office365-Filtering-Correlation-Id: b352222f-b666-40c7-83a3-08dac11cf1c9 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKxFKoDj9xjc3KRYVEiJMJa8CP/vn8Y03mCr2/0p/eSGuckV4DR531JPnrECaLgKWbZDuOKjNgPdfV25mXGp8pGuqFXeQ7cTswfb9tlH0r22G+bt4rCYX7Z+xY13M7e2EeuoEjeYxAqTbX0b4HbOoiKL/tNJixVmrny2ZHrjrVV065CchZhYTkEcWNsifgNIO9x3r2M5Ddse8CKVLx/0rj/Jn+0sMcZYBhEL1YFP0ACjNj76mj7lb4aQgJr9aehU8KpFbSjcylXocqrdr2kucgzkLP57Xb1kcvCJYHF/4HO1NE/ogBjor56uWGexI6asMM4QP11w50tqll/donMmV4ksEGsZ9eatp3wbc0TFYQckZqRNtVvSzdLIbheLKWBFVI/xs678sBrCLLpHF6ql9nBR95RjZ1Ehjudwox2TPfoY1z3MVqYa1OOOFdp42LZRU8hGMX/9bRHgbdWlMIY8bOJFnpDU6bmprcnuiKTOC6oIM3NaU07TYxdopwWC8N8TOwiOYnoSBFObdlB/v8T7qZdKQqnW87GgAsNUiX/0Je4/0+gjGGsaueUbHfWkTPm5h6wXsdDU1t81/mO+ZUq5ilfEz2DmAvQf+uRp2EoXQpIaklbYAUqZDQij8Kg9sAhL6Ep+bdAau9zWHdWlcNth3VUOhGP02ylGrju4G76Kkv7JvoiiH/Uu1BAjegTXNWDbxWAYB8vgaA6sbuMc2SkyxVp5RpaNwoPRrMU= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rGHnY61RWRf8XemFbTR9DHC5t09ELpvTUq2rNfsP9/CDRfCrQUy357xr88TP6+fsyCpjFCb+5CVanPuGH9ifoTD/2Oz2hx9GuLsK6yWQ1vj3R49MfLj8McNXVKJe5WUcjWg+8gSDn9FJLP1zTD8YFS7L3PswkEQD7YX9S8Jk3wCqfEBGsJ77Rj/pYnixsWnZmxteln3Cz2C4Pdi7EoPBljZ+44ARbN9GWOtXyrESnChyO4jL6c1Y74ZLoaMDp6Xtt/eKuNlT3hoCQIa0Fb7o2IJ5cwVOqHontZybPJB3HTFJ9BhQHm9t/dwvzdInSyOWLfrleA6nrHEoJ7EinL8dKPwU7o4DJr/WNX8A/Kxazv1sH5i+SpPQNelRCHUpW0dz4KRjaHJuiPbRASAj1UkakLUIbdphkKj6kH7tvIc5HrIcLHH4LtYzB05WoElYErx2lNWAZpXzGkgXjkNXuGbepM2CBPSOIqTkBrCNEdr7gtWiZGLbeC7geWp29t23Ie8tMw+JWcSW0mF7UQ9R0JQsddsEezdpj675gYHm5nW0adWD2Qru5xH3BAi03/js1/k4eDCko5YGpdtXkodDMouzwS+cGsPgzUkOabnxgU0M/A3hlUnT0i0Ghs6jQcJvXuLT902uSdPqYRaofq1QrHzGqWajdNu6JySbWTIzLwvMwKPC905FWJE+I3y+jOZwIUm2 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: X0GcRubRk5L7I+o4W84gWMIAF8QzeNTiaVeFfM2QyV8Qagbep2Ws86WW7aC58R4Nq7/aD5OF8grljXFy3G/SkpbiZkIp6YobNFNX6VpsB3Bl4Ak06KS5XDutN9z0etBrtzkki7yiv/IyUnrCbH6lbUfguNwGa5mTnD/kkqgL+H8tAaju5ulRn2t2ggySz5K7H07MZMxUytT6L1F1URUTvUlh8gIuSGDjMcLfZ6EhHXswK2eYFigxYxITDm/WiP6CqMKMzbvmkH8ZrDATif81gdDs6t75VNF3z+WgOEJylya29tJNintuCUvAiLePJXh6gfbvmxa8vqxjnmnsnYSjNTdk6uHemlk6eJq+qXfdqVSq2Hv9TTc2NKm0mv5G5PT4T+FV9RTbydddxULVgIvVj+9oi+4Qzlwyv3/ZIPh5NBD2qheoGxN3+d2EIl4eIckmJjPkxkGQ0U1N4azWkSIH9Xt1010A22xI1VdTNfWMOMjcwEy5C570yp0k3bQOxNBA4ZEP2Gjr3kC8iagKqd3yJ7A78xiWmQanElcksQ/0wPIIb7KakKV0hEI8twqwetmonpC4ar5vf59mn1GNnNduZXTYGBnhIRIh0sBS4pcvr7EmYBR83yqrW+wNapdzK3+ZDE8ljYYEfJzcyRnpT3p1movaRKrPhJ2cWCKakupxmaZDkF7xmZ147LnR0Lyk7gkXIOABT+/KenY+dw1opo0osakdNZlSUjT/qW+/NfIzVkyjNoW3+MI0tXd5ygxdacYxjb/P6oB2GxRcU8smw7QX3w4FeA/Vsyl8X82BKhUF7fkpxesZ1QflyOx0wpFciPWnCtj+3c0pfISe7S6uX0PjoYdVfx18WY7mo4QEZrwUod4kfyK3sdG/zPzr4BXtsC99V4JbCTnVXKOkbx02SQx2mzfYbIesBrxhIvb+TEQcUrf7wekkHEGwKa3kCpQLiXuKHAirAm/BX8hsYnZPqcYlyEThZxKJvgfzRg96Zg/VcZSJVA09UKuXVX9T8/AvNSNf3UXHNWAetzs3DSiPLqfwAl5x6HfAwnjP3liwS3gUWOT/ZbnahwJpBsW8VRJeZQWGwWCvP1KPLoB12avv2vt6sfSd+TqG4CGRgBVZ/R0jE+bX685GNfLwv2ShK/STjvok70HripTAdY4RwIbVqtaWNfYnxptngBDPDfGtxht8/yhpMECRZStMPPfWtRL1uLmL3s+kkTYRlxLrtzA4L39bX7m6FxB31z5YxPMdX2xA6zjlnME0MB7cCOtXjNsLf28UcbXbcILyfuLvOrv2BCJs9on3ggtFVxK/DoMDdDPp2SH3M/l9WWQV5bCcXQ8NYnLV X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b352222f-b666-40c7-83a3-08dac11cf1c9 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2022 00:05:28.8606 (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: PR3P250MB0386 Subject: [FFmpeg-devel] [PATCH] avcodec/h261dec: Don't update block_index unnecessarily 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: 0pB8HQZ/mSU9 block_index is write-only for the H.261 decoder, so don't update it by calling ff_update_block_index(). Instead use a function of our own to set/update dest. Signed-off-by: Andreas Rheinhardt --- libavcodec/h261dec.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/libavcodec/h261dec.c b/libavcodec/h261dec.c index 5e4f298291..57f7e8bf35 100644 --- a/libavcodec/h261dec.c +++ b/libavcodec/h261dec.c @@ -101,6 +101,15 @@ static av_cold int h261_decode_init(AVCodecContext *avctx) return 0; } +static inline void h261_init_dest(MpegEncContext *s) +{ + const unsigned block_size = 8 >> s->avctx->lowres; + ff_init_block_index(s); + s->dest[0] += 2 * block_size; + s->dest[1] += block_size; + s->dest[2] += block_size; +} + /** * Decode the group of blocks header or slice header. * @return <0 if an error occurred @@ -213,8 +222,7 @@ static int h261_decode_mb_skipped(H261DecContext *h, int mba1, int mba2) s->mb_x = ((h->gob_number - 1) % 2) * 11 + i % 11; s->mb_y = ((h->gob_number - 1) / 2) * 3 + i / 11; xy = s->mb_x + s->mb_y * s->mb_stride; - ff_init_block_index(s); - ff_update_block_index(s, 8, s->avctx->lowres, 1); + h261_init_dest(s); for (j = 0; j < 6; j++) s->block_last_index[j] = -1; @@ -399,8 +407,7 @@ static int h261_decode_mb(H261DecContext *h) s->mb_x = ((h->gob_number - 1) % 2) * 11 + ((h->current_mba - 1) % 11); s->mb_y = ((h->gob_number - 1) / 2) * 3 + ((h->current_mba - 1) / 11); xy = s->mb_x + s->mb_y * s->mb_stride; - ff_init_block_index(s); - ff_update_block_index(s, 8, s->avctx->lowres, 1); + h261_init_dest(s); // Read mtype com->mtype = get_vlc2(&s->gb, h261_mtype_vlc.table, H261_MTYPE_VLC_BITS, 2);