From patchwork Tue Jul 26 22:07:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 36994 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp234057pzb; Wed, 27 Jul 2022 02:35:25 -0700 (PDT) X-Google-Smtp-Source: AGRyM1umIZ6abKKb+ctzb09Rf49e+0aXYkLTNpzeoqRxzIjYIZ14RHjsAA6Sj3tbmeGbvJnLJ7Md X-Received: by 2002:a05:6402:16:b0:43a:f435:5d07 with SMTP id d22-20020a056402001600b0043af4355d07mr22285237edu.420.1658914525496; Wed, 27 Jul 2022 02:35:25 -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 a22-20020a1709065f9600b0072afb8b295bsi15673479eju.338.2022.07.27.02.35.25; Wed, 27 Jul 2022 02:35:25 -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=mIUltEx8; 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 694D168B92C; Wed, 27 Jul 2022 12:31:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2102.outbound.protection.outlook.com [40.92.90.102]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E269368B922 for ; Wed, 27 Jul 2022 12:31:05 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LBB7GgBmJ3USfpbP1KEOHAcYS818Lo0opczBDDzX8nxhxEILdVxxlWzYCwSTo5iGdP4gDZ1x4BJ0Y2+M3hhdB5SlPI9a/WLp/J02Lqx/yitU9nabuvvjBqsSC/2J9CzvP6L2+heG5t3znEHLdggfcl/OgWxKoXRNbi5NYeBuLXjiScBpMVbXVEd8xOtks8N3P+6uSCwTuHP4JMj/BWH7R35Df43hblSAO1ieS9iwV3cVdUDuvSE8Lyp8ELD3c0Vi7G2ztNUqa8/Cm7OnzveKurbz3Avv4aXQCotJpnPWXVbkOYGZc/JwNSA4cngQ8qfJYpYardj+LnVC70Bcr3GJMg== 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=Z/hAenE9HAX9QOpBV0E2T27fy3BLszaBneLSjle8IzU=; b=UbjlJPRgcG/7W9IADpcnTBjWGx35cKElBi9Ag4p1QsqSdqDkzSuGUONfzlCZlcIOBHFicE52nZ1cNzwNJNfNC1+GoPAP1nX5NSOfCDRwzxBckf/c8KPbxmcAJk5x1q7FaN0a9g4GxtbmcBr2TmusBfKx7PpUOMUoqImf2zuaqin08cxk74JuAFEqoqpvEzVxaloVV+GpwBnILeGAPzhZMM2JPaaAi4/dj0lxK0WPTUnCIXRKaYDQHGHj2JJjIwKQ2+u+H8iPc1KjA7HGdxtaIvFpkbSDAUQMUYAhwnq281fuJe57O4XzdpqUig2iqRpQ6A5Ix3CGeyJ6HcF418iw4g== 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=Z/hAenE9HAX9QOpBV0E2T27fy3BLszaBneLSjle8IzU=; b=mIUltEx8xj5Y7oTp2wOuV86kchT5oz2QrxyiQnctQSUowmQXbLGITV114Wdcov26BAbr6kOlIWbM5IxPQMF7Ko4LPWdmZckM15qhOrN1h5vfztn9R2maGJt/9Csmdbw2V4OuyrTnhcLixOjVnNc/7qL3zMuiP37xSPDwL/784B0LsnNsLvQi2WTpfi4NW4QYoXirY43QM+7M//KU3KHRR8TkelEytcaqnQPUC+ZduwrqKh4Vc3mwdWvARNxc1uKPgIBruxuoTCZ9Zt3m6vBe4j0wTsLhA0HJsYyNCeQDKZhNHqdNLsw+0s9yDdyMB7KDqi2/NSoTRiGrjpAvqJiCiQ== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB9PR01MB9174.eurprd01.prod.exchangelabs.com (2603:10a6:10:366::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.25; Tue, 26 Jul 2022 22:09:30 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5458.025; Tue, 26 Jul 2022 22:09:30 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 Jul 2022 00:07:59 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [2+ezQQMTOr+W2ESO5k/9OmTvsZ2KQxkK] X-ClientProxiedBy: FR3P281CA0157.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a2::13) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220726220814.695563-23-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f343c996-ac99-43c7-2b26-08da6f538306 X-MS-Exchange-SLBlob-MailProps: +LiGfBxqLEuHAZUD9973euQIW/KMDlR3r8YeQwRWU0FQkf4cDWcjRsLTO7MNkjsLlr5Ap0oDk5k7VxRqvlOMB5FpfqyGwigpHIz7nfm1ZAT9T+fnxy4z3RIUpCFSdMQ4GVs3hANZyks7yEL4Jsqzk1GcXl/V2ykKJp7wtLfrF/u0iN2TZWmN+8bcPzxzyykjjDYmYTwviwyR+B18DMAaA8DGVEP3hT/nufKu0czSQ2KXoz7sgIG3JLyyXaAcUX6VUKCILfR+ESs1mO0vheXGwtVoxvHpEFKtq/2WESnsliOXn/Kttu/UjHyCFtXW5l7k5uWWpBOUqNa9ZHnnoQWBKKsS6VAT62+XpyTHbATbC+HkEzvyto++SG7s4hHT9Cj8Cz/JRl8Ut9f89BzuatuXH7ZyLTSu53wC8CQz3KmkAftCqHQTvbWFEVwYwkQs9GUIyKtWrkig1xRaVFTypO+c0lqFspil3HgFW108q2Alo07IG4repXb7riQyjypcnTr4RUcFevwU/GZLs0uYT3Ux2z03MYY5s051sLKmpg0YrHWARe4WHY8r+/zLEWIpSS0b7yYlMSmrm10+F08a2P8mCOYd9lHvqlNDZRZ96fBxM3VdT3zodfFsGP3H3are9md0c2GrV7VQboGqr0l64pBBGnk/sKR/JoaVkM0GPitz14Ikkmpg9PXnp3Rxwrm/AB47BDZLacrSZiPHrMGBGhgACn6ba6rJj8RaCks4b9MehzUQNDhkCHK0GXTbils6nyvdEGhiRNGNil0qEkL3DcvEWYtvarZDuy/0 X-MS-TrafficTypeDiagnostic: DB9PR01MB9174:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OxO3YvW0gx9fr0Aj/ICN+ifdG3mg1kfAIZEQWxC2RTml1VmPh32UfVyvzhKP3C2p6/bw8n4IK7FAqhRH3hcpat308BfoWUWU2G1kpj2WQXlQ6CoHL+AaeKAejXPyhdylrMgbDp71AZTkO/nVlx30o8Cs7DRb6j+v65ftJdc0R6IwGH5FQGaRjXcaQHXKAIfsl3+++/ZKNJZPWv2LGD6eo6w1ppx076/0ZCIWWZltlYStVO/qStMjie+dsvVod/7Ml2lqaBocLnZX93BOPcSky9vGeigyPqXJC0U3lVWJfYx7LbmgSmDrITlfDRY18FJvFP0C8WhfC0jOy/FeHIyhOs8C4KrlQ9Gl6iNdfOoiW9IWidt7z+O1qOGwyqOruCM2HRscuUnR8KOBaYf/zAtnl6GgTWQg+0C/1MdnPSE3qKBkv+yAaTV9lwDu6RCqiBgIBgSkXszsVOPqtddwBM2zTGB4keWkPHxe16ZqV9/VK7WDIW1xUvTf6n91wJ65SbKZRh7G/qdycpi6tE7WqTwtqMszkOXH+h2kThcXVYho9EPdTIOP8Jr0Y2vQztTOkXvItQf8XMvzcni5+5ob6eOtuAcBtwmc00H3fJcwQImAYEfQMyJf9Ujln/R11Is9XCq16DCOxaSiFwKqTV3OxjrKXQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: o+8b3sTr66hhoF7sLU3cpmvRox98tXGtgcUvqsoAxpGzty9mau+7CwutrmHjZJ6cBqcfBaMaLYALlQ06+bPk8x48PJ4dUQoQKI0QVthMlnugqz+cjCLwKhhzr7Fv/YS08KHa1dxqZEq/hZJ2KAPUB7f4idzmwN8vW1DW3fY7JY81fNJfmiWwVaGOiTcZrGOSyh+yULrTA1jrCzdHy0Yp4Fm55tzQ7gbkD0E96J3Zwpr3KfM0NHb6wR3dy8ZvKcrftNSjFFqEKxt323mARSSAJvNu5jkkh3IxzfTMdHce/zGDp45a6D2E4EhL64ez1y/c19Pz4gHQHOEdZMkS8dYIrPcH+Tzp0xm2QsZwGhAKDFlEZKBX9gtmfSsXR5fyG5GqBs1Mn8raJM4MJN2BhVZbODTG6Z0ck4+Z2xWyvJcNpA+DQk5drl88a2Zh/iDcIDRDcjPIy6kqI96acB7I3PstObfSOeqo53SXwHdJ3s08lz1wkWevrXegblpTVqM0K+1Itx1CgHIak1jssOgiYTtAU4AJWZbIa4FsHqJ8XiBG2j03sFQL97NvzwopeK6LPygJNfT8WoCZNy0dMZ7kv7RXB2dwPWcbC/4sVYI02T72eDSG8AhT+TUuy9f9hzDYWIIuCVaJD3UKflHcuiK5UD/URFPP93QxeAIywhYBtBSQk27a3bxvVgQNENkdvFGVrCdCThgpDsQ0T98YMqoQBpS+p+qhsLlhZg2q3WdERKZtrvm6YtGUJ3JaFIBKtqday0LgKZdA6hGGDyL2vCJb5oM1dsasdt2Cc5U5tDakhW9kT9K3y6codT2UjFFoqGvwhVQ49QykeLfIVFHnbLTqu3tuPw1Mw4xTJEQjlmARgM+1KZk/e4OCnYlAWYXD9VQenUtkwGf6Sxl+vmnv0DjGLycvjAR/h4LE5EyM89u5Aza0OsNF6HYLvXi8RTLHn0dIH6jpGWBBv+1++MGF9FIGsplo+qyLmA+dl+mxrQndPKPqeAb8NdYG++gdR28H+ftYHAIMK0J12A9DrMbkPcFQvWrQXKkRrwWmkZ3EjzvGSIx+rjTKyykxTrwAs+qTacQn9BnAPb4entgfARe8QiSb6pkeES2QZ3qAAbSvCSmRVCywm01pwnMU+gSnWJvtL+BVNI7+wNR5YsYJ5yjC5CsZkpHRkRCOtfuXH45ALXOkD54go5Br2+FfW1tQGm6o5WX7vsPY6QLMXTwjyN3W7xEckHnmqOKuPdt08/yKMoeirh0EIB8J6eLBBlvut8hKYvqG246Jak6bzPnSkqN08nA68Vtu5lmlGaLPdr4n+WCIz8ouSeM= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f343c996-ac99-43c7-2b26-08da6f538306 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jul 2022 22:09:30.0034 (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: DB9PR01MB9174 Subject: [FFmpeg-devel] [PATCH 24/39] avcodec/ilbcdec: Move transient GetBitContext 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: 3FHepYEAHBI6 Signed-off-by: Andreas Rheinhardt --- libavcodec/ilbcdec.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/libavcodec/ilbcdec.c b/libavcodec/ilbcdec.c index 4905ee4145..2bc559a3e8 100644 --- a/libavcodec/ilbcdec.c +++ b/libavcodec/ilbcdec.c @@ -91,7 +91,6 @@ typedef struct ILBCContext { int enhancer; int mode; - GetBitContext gb; ILBCFrame frame; int prev_enh_pl; @@ -127,11 +126,14 @@ typedef struct ILBCContext { int16_t hpimemy[4]; } ILBCContext; -static int unpack_frame(ILBCContext *s) +static int unpack_frame(ILBCContext *s, const uint8_t *buf, int size) { ILBCFrame *frame = &s->frame; - GetBitContext *gb = &s->gb; - int j; + GetBitContext gb0, *const gb = &gb0; + int j, ret; + + if ((ret = init_get_bits8(gb, buf, size)) < 0) + return ret; frame->lsf[0] = get_bits(gb, 6); frame->lsf[1] = get_bits(gb, 7); @@ -1357,21 +1359,21 @@ static void hp_output(int16_t *signal, const int16_t *ba, int16_t *y, static int ilbc_decode_frame(AVCodecContext *avctx, AVFrame *frame, int *got_frame_ptr, AVPacket *avpkt) { - const uint8_t *buf = avpkt->data; ILBCContext *s = avctx->priv_data; int mode = s->mode, ret; int16_t *plc_data = &s->plc_residual[LPC_FILTERORDER]; - if ((ret = init_get_bits8(&s->gb, buf, avpkt->size)) < 0) - return ret; memset(&s->frame, 0, sizeof(ILBCFrame)); + ret = unpack_frame(s, avpkt->data, avpkt->size); + if (ret < 0) + return ret; + if (ret) + mode = 0; frame->nb_samples = s->block_samples; if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; - if (unpack_frame(s)) - mode = 0; if (s->frame.start < 1 || s->frame.start > 5) mode = 0;