From patchwork Mon Oct 11 15:36:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 31063 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2084:0:0:0:0 with SMTP id a4csp3821239ioa; Mon, 11 Oct 2021 08:37:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy4bK8VLMVAlmkkg+Gl7tkaNx7YAX/4uSaj2AKfDy+VoA0dhcMiI9GcdFoQ5PeVxpnNkxbO X-Received: by 2002:a17:906:5e17:: with SMTP id n23mr26061384eju.258.1633966629438; Mon, 11 Oct 2021 08:37:09 -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 20si10314618edx.414.2021.10.11.08.37.08; Mon, 11 Oct 2021 08:37:09 -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="e/8C9Kew"; 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 BAA2A6801D3; Mon, 11 Oct 2021 18:37:05 +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-vi1eur05olkn2051.outbound.protection.outlook.com [40.92.90.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0C8696801D3 for ; Mon, 11 Oct 2021 18:36:59 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kOvO4od6E2xRjQqqzwZQpunARWHIdR+DhPcqLtS5aqtL62BzrTAvbaiYnE3kjzI4vXDZFrSIT6dNAvN/+iENdQbSSHW/R1D6E5wMLV9NF7L54JXryN1fL9sMFijjTNI9vFdNGJY4t+rk3lXaBCqfXfyaEBI80TfKDcO+vKgUF6ujcgixbFoJbDJKF0Luq1L849OTKO1LEOm2m8RyrtgawEOFe5HFKNNzFT3HoICrlm2ldqEkxKsxktsNB2BPJiJcIr1O0qimTii/RHEuuWs+EpF7KmWKbBZvhbbcH7q0vMbqNbj444wBS1oz0s86cYP4WXVEpxQcbLLHMXDR38k7Bg== 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=p65g9sJ2vK/fLFx3ogwhmh14lDjdFLH/eqwWmw4g9l0=; b=Vp9gCqm81sIga9y8/i9K1LgQY1IDY5X4URykxodZ4gv6vXVAx0ZkiPBvZRmfu/JMbkX8ce0/Je5BY3pCPAwSirBy+8xcBliU06AXD9U7ywCogzSpNN7a0hGbu+2iuPyOHVfLO3VqokciVg+fP30LLvps2G4dAZ2haBvn8y2qRru/Bx6qswazzNx43sokS/CpCY/BJxDEoFTNpaTydOXJERCBe2hm+Aq68EzLzZLEHPUj63zm2f1tModv9dtbDz/ivpq/5FYN177sgPUhSAAG1acE/RwATNIkUQbtTVLJqMTiVfk7KL2hZVO1drVlgmw9DD0nY5psLChvf4xTPR4VWw== 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=p65g9sJ2vK/fLFx3ogwhmh14lDjdFLH/eqwWmw4g9l0=; b=e/8C9KewXj6SGcW6/4HPfgn+r7C7c92W58Xje4bL4PlEX2bUPkntsFtoPEgxug5Fn701u8tzkaz+PPwTe0uAUr6LW+MX/OlchKKTPRJZunuXcWtRkn+JCIHkflON8LBEMjrSGw7ZMNXCbqOlPjwuuEOqJ661TGD60G+20ycKLq4PcYu3n3Yj3vj+nyhefUASjeSMomt8rxkgoAoAZZmejsvcFe/1Nlg1u3xydVDbRnwJDnxAAD0ZhT1KjBRVh4JZVv4BARlifeJmMeHRl9Y7AO53ghCae7BHh0CtiMv/gDmVt5f6zEbjrg41dmkY5wyZ/3k0Awe/pdA2D1S7ArysFw== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM5PR03MB2932.eurprd03.prod.outlook.com (2603:10a6:206:24::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.24; Mon, 11 Oct 2021 15:36:57 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::700f:d70b:3bb8:4d51]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::700f:d70b:3bb8:4d51%9]) with mapi id 15.20.4587.026; Mon, 11 Oct 2021 15:36:57 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 11 Oct 2021 17:36:41 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [Dn79lSF516Y8iJPecrR1yfltswDbRgkz] X-ClientProxiedBy: AM5PR0601CA0070.eurprd06.prod.outlook.com (2603:10a6:206::35) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20211011153649.1961025-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.193.170.49) by AM5PR0601CA0070.eurprd06.prod.outlook.com (2603:10a6:206::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Mon, 11 Oct 2021 15:36:57 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 33042c15-ec73-4401-426e-08d98cccf59e X-MS-Exchange-SLBlob-MailProps: f36zkjAOy3X3YFC7jPfP96qrOFzh32I/dH+HXYLoveRfAW8Vt+a7O+tfYwlwtixUbSTFxO6hnudNE0357t5MQvXXg0kFho+LShvSz3qZqSNbQzl7b97Erk6GQce26/cgFcUxKPMQDJRjjKfD+U2tvlHopE3Di70cdNimbWq3J9t6TtY+5epXa+Yxv2r9HR43rnmWFCX3N7DQNWZXyctJokbAw+oUDns8AHgz/4atYqqWfgDQ8bQZ5Fr9akUt//IMqjR/jVQOdum3MrJ/Vv+vuD3NgSK0k3WONCBiX+Y5/nPexZVFXqslhqz6pxuwAJWa6DKC2luNMVveYx75uIgYjNDTo9sCZw4L2bXN7fz0/pdA6DUk1NPh3G8f1TCujHFcEj94XyGCUnZtzXCxw6gwIlJ1UI3REB5nHycACwbLtyAYKqcjobvqtA4vJvJ9+dtXX6J3nyeIk6rK74B3to+xQHJb+ve7XKAyGqvz+r6WccST1PfeFybuNwsPycC/HHHxpP348ZeAhRkzbGsncbYXHOg/oHyCZJ4fx5EY77vWHinfbcXcAS99STSZPCky7Abl12LQux5/Svsre5gEEqXCVIJ1Hs5C7Wy7zDf0e7RlrsCN1xsA0TLDw+C7bNuQuPIld3o0XB11o0pVIDMF8yYh3bVafW8xVAPeKwg0uiEuWY9ApMCT5lJyQK/8d8xa+wrAtywst1S2fNrCno+Wr7o4WENhSi9wS+WL7WzgL5oJFfI= X-MS-TrafficTypeDiagnostic: AM5PR03MB2932: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WOZgqD/jWL0g3Q6lBQNRKEASVeuGS64xlJTWi8jrt3ymhFLzlyiWgaIt28nVLURaK3d6sCy2k9GuQmwVeZc/DRUMmb74o7GNCVDOaOGBpmCJVEppxc7Rhs5W7RDXg59SgkHQW1HsutkiH2cHmylzM3JRyz0Om/37jJ41V0au0+u2fl3VF1QsOf53CU520y1IShNt2/sMnjxgDnn8yb/pnSrUwHcvdUbevAwFy6wfJcGdvhxbCNup6Tb8yrcjXH4ORYAqlb9cjIXsBkrc0ToDzklkPe8m+YcgPHi7JzRSkx2MV05v6fA3I7O3wXp22wNApoG+uMA1Ol8YuPGaN06A774iqmbCAjBrCnKL2O1SDCJWpfCsL66uxbhTvapfIEnEBFlqiRe64xWiKaWgbNnsoMCTwM6RPAQHn8CcLWDkcqixRfsnk/Wz7sMGpaExSRzR X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: TFL02cn9X2/G6tjy7RRXnnz6qBjY0Y+8ySaaMqGgPsYPMKv3yOeePPFXQHyoRsTN7XAwniKzmzX0lHyOnvjyL88rR+k1a+uRe4kGMpltmUJKv9dD6lP00l45AJf/tVilH4Xb4g5CPyUAnKAEF7Yh/A== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 33042c15-ec73-4401-426e-08d98cccf59e X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2021 15:36:57.4290 (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: AM5PR03MB2932 Subject: [FFmpeg-devel] [PATCH 02/10] avcodec/binkaudio: Properly flush the decoder 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: fzKYjSGZIO4F The packets delivered to this decoder are often decoded to more than one frame and if the internal buffer packet is not unreferenced, the decoder will still output frames derived from the old packet (from before the flush). Signed-off-by: Andreas Rheinhardt --- libavcodec/binkaudio.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavcodec/binkaudio.c b/libavcodec/binkaudio.c index 5915ba6ffb..59ecab25c6 100644 --- a/libavcodec/binkaudio.c +++ b/libavcodec/binkaudio.c @@ -337,6 +337,14 @@ fail: return ret; } +static void decode_flush(AVCodecContext *avctx) +{ + BinkAudioContext *const s = avctx->priv_data; + + av_packet_unref(s->pkt); + s->first = 1; +} + const AVCodec ff_binkaudio_rdft_decoder = { .name = "binkaudio_rdft", .long_name = NULL_IF_CONFIG_SMALL("Bink Audio (RDFT)"), @@ -344,6 +352,7 @@ const AVCodec ff_binkaudio_rdft_decoder = { .id = AV_CODEC_ID_BINKAUDIO_RDFT, .priv_data_size = sizeof(BinkAudioContext), .init = decode_init, + .flush = decode_flush, .close = decode_end, .receive_frame = binkaudio_receive_frame, .capabilities = AV_CODEC_CAP_DR1, @@ -357,6 +366,7 @@ const AVCodec ff_binkaudio_dct_decoder = { .id = AV_CODEC_ID_BINKAUDIO_DCT, .priv_data_size = sizeof(BinkAudioContext), .init = decode_init, + .flush = decode_flush, .close = decode_end, .receive_frame = binkaudio_receive_frame, .capabilities = AV_CODEC_CAP_DR1,