From patchwork Wed Apr 13 14:49:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35303 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:671c:b0:7c:62c8:b2d1 with SMTP id q28csp244631pzh; Wed, 13 Apr 2022 07:50:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwdVbhmjQOTaDwY9n9LPAi8Ul8b4KKMTw9ydVrEBudDjC+za5+lfcSMr37Ra5cy5IfhJHVo X-Received: by 2002:a17:906:6990:b0:6e8:7765:a709 with SMTP id i16-20020a170906699000b006e87765a709mr17556444ejr.72.1649861422697; Wed, 13 Apr 2022 07:50:22 -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 z23-20020a170906241700b006e8ab12f932si118148eja.122.2022.04.13.07.50.22; Wed, 13 Apr 2022 07:50:22 -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=Ttoj8mCy; 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 B395A68B415; Wed, 13 Apr 2022 17:50:18 +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-vi1eur05olkn2020.outbound.protection.outlook.com [40.92.90.20]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D9CD968B40F for ; Wed, 13 Apr 2022 17:50:11 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B4emGKwwvIKrCJH32ahuxQIfnCzAm6ujArGAjhPO84HnKSjXGxMcLuMEu6kg2RC1R+5V5+YV8Ttq/PnLxFm0j2fa2rR9ccCAP1IQ4UwaHoRdOPWCYVNWJ0VlrRBTfbdLpe4tUCHzaCLDyY6UfgUsXonJ7fgmggOI1fuA61hE0DmWgrbGylfehoDj8DGaOn1ucwtoPPz4pc9HHijXouy1eVfd6reFZ/u2+oOIKm84RdtgJgbndpY9tC/s0ccEDCenr7OanvfwAgenBXKUzeT1mvmvNWSdC+JqDVJvWXNcDDbgq7aJZfGwTUZx5jv8y4I5JUZzibFTk0HgH5yTmvBxJg== 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=5Wg2Hu+qyLcBIjPa0HLUoMh0piYSzeRToABmjagJZSQ=; b=UTQ1KBXXgqlJnkPgWMffcdSJsFf8HyGY/yvyL/yk9PMq+GNvfxHAvp4k/0vVuwFuMp8K1BbJ5A2ON3hcBzrHduLt2rDhhT3J0PI0XXVhRvEd6UyXJKlZdhSVwb8UokQsiplExbx39bm0lRQaz/yWrIVuBDyYEz/qW5UY0RVsqEsZ+AndbgqGcpActeY+7HKJDDuls4tf9gz4SQSs5Fg5dyGCXHMKuG8HRkVq6MaD3a5fy0SbFug3UvrFL/R8ctFANc4kRRLFjlJpFrHPE13wd0pqbfgn9usJQoINw1ssl21xqZTifZpngXD/uhkdlhPBr6M52shMJuwB+yRG2ePwDw== 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=5Wg2Hu+qyLcBIjPa0HLUoMh0piYSzeRToABmjagJZSQ=; b=Ttoj8mCyO9rYAYDJ8Wp5RUndK/rF4zKSmc9T68eX+pcVPwKjx7ijRh6G+Q8UsYeJPOLrcKnt6LkLLVNWUvzTtQrNd7x8YP8rTDIsdQoC49Z0Rw9cT0lQS8xiHKpGVL7XPj/gVvsulxNRCzfpYLO1cnXMiTsYvTUWaSNVuFfSD4t3EdEp0TayFz1OrQWu/PMSxZgs2Mbj8JDkabX8R7/Spddk2oPa+YQF0PnBhe15IUVdGnEfglGkwK7AxUYMcTQApMmJsr6XXlJZJnO/C6xuDR0IiPZeqjOLH1q1iD8y52KErc9KZFZBH3T2JZpAPrpp/5iM7GSwy1vK77scjJwkEA== Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) by VI1PR01MB3917.eurprd01.prod.exchangelabs.com (2603:10a6:802:61::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Wed, 13 Apr 2022 14:50:10 +0000 Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::fcc3:1285:374c:9b2]) by AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::fcc3:1285:374c:9b2%5]) with mapi id 15.20.5164.020; Wed, 13 Apr 2022 14:50:10 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 13 Apr 2022 16:49:51 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [Y3oBI+fBvCV3vHf4fGQIlROvDkZe/xsP] X-ClientProxiedBy: ZR0P278CA0073.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::6) To AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) X-Microsoft-Original-Message-ID: <20220413144952.968854-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e0dc248e-5d69-43af-decc-08da1d5ce86d X-MS-Exchange-SLBlob-MailProps: ZTmCor6bjd9ik/eYfNsWv8oGEABRKr0kcKQPcC6Bc+26h+2txn04V5i6nRo+HviT1kyEsrAzUukF+4kvBbP6svMF415/UMx5x7fMhJM2oJR+f9qy8F7aI1IS00fPwEUuIwuk7ZVGFeQoRfdTU3ZAeXK9XC20LpHG0oWvkwTiNP3Q6co0B8vifQgeUQZBzUXRyC/IQ23x5Epgu+ByZGMmQt1azn5HgQbdQddWLbmt3jwDjGuv6A6lWx5lMy+fcRwBk2MYIFVwmX10Q1ucH54vtprMxTGb+8JFJziLURdQpC5zI9pY1iSccU60vYoEyGT7ECHmU/whkedHNzCREeOmwvdu1U1YawHBqCgDFHsgLwB6VTZhvDVxpE45N69RJHI6PQpbiiSbmUGbsGWPZsdwgJQ5jJcS5TT4bdAc3h4v5i2c2ESMUSUIH8Ys0gHBps9qb3aPwdGL+2+/Ol30kb+oorYGSTpS/nvpkJ7JaBJKdsM/5rQoZqkCEFE1Iw0ou59UNAQDKqdANydMMJVOblvF9SFCi4oWV2HXBtBp+S/PGAsGCbzz47g3Z0iMtm4Aj3Uo8MPsBUBL3NmMUEJkoowxXyQ+FfdA9coM7Fy54FDzHscFKThEo4lHfT6cK8m6EMOBc7G6Y6eT34WbgRcdiM0+bIZfte4XRMQPrYk/TIVDpdLALWrR7+Hg5wFHT71ybjHBqmi79nJ/oCxvkIlzVw+9/Dxsfizyyq7BngrUj/jXa+eCrTlHVr404n/0/XWhOK/c28s7gO92wGsxtAB0eh04Ix6a3PNwQiXxzY3sLBomW81DhGQ3cp3OcL2ihg6lQ+66 X-MS-TrafficTypeDiagnostic: VI1PR01MB3917:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ueuLtq5gZpnWjYrJ4wFiGoqHXWHlQg7zy3JP3klCr60opq+PVQj+iwnMyVXf8EPCfmZFaKmn/ItKYALL4cc6tFn6lmks6n9CCZshl2ON+PAdzeY75JTRzE6qAVAxnsuD2cm4lWNGb1kamr9zKGuPWrh0iBJM4kmDdOgrHOZNdVEZGGrPHaqFS5vw7MUZNbr5Cb/t4gWlfTgWMuaovtUCbxTuZJf22g5Ak6hl7W2N7QWhc5VAjwY2PVFOIMmI/B6zrZcJedc68kl3+1d7bLCnixoM2z76leMn+nkHrxCaeoIjsvcp2pIwqpljnDtZTvA4BUz2Vif8B/dh5GCqYHVvXU6LsZ0rLDE3xTpXFzSHQP7zeVEW1A/svLL0xrvuhHMTSOwicrF/tiZzjmpH9+hWRe2teUbr6J1APB2pWr6i4unF/AsMEiqOjqywajB42AWPJ683a7dSZ/S5e3NQjaCZJLfKuwzi2sNBAfl+UnpCBc93vba9MCb7mRFNOJzk9ZOjesSc4PIs5805iAKQMhsncc2fKXMGSKmIVZd3ldtRgHDu/VPKML9TpDUjda2tB9iB1cUYvPHf+DxVrCJIZ+K1MZHS1Si/EyQY49korbWVhYG6zlHBTFAVGI+Ne+c/OZIc X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gTp3qjjVG2ey7oFv9OiULpwqKnknRQG9u7ZBa9Ch3agzqjNQhWC7aQJ5nz9e3KYVV3a21kvc+ZaAxpsNHxeQA2C3ZO5ApN8w8Na33vfcPP/v0311UiiC1aq08LtxlRPelO7WHecIJQzdWThLEjm9GNb/jyURrWzhnbuNcnNZCxhCTD9TTBpGUcx5fQuw7g37Khd6vtH55AqmXszBNWYxdAk8m2g8rNwNSv4HPp3AopsJyp0sGFkxqGXg5I/hsOijW0+lV71kbpPb57c9vg6ZcOkd/vm6RIe13QssDgxAvMuJVF4LFevyX6C2tVrI3n9P/4hMg76K8kRMGMnAtoPOhmMy5PSmIc7U+4oOkymdCmHNNRbnE/hJCqF3WNuMrf8408Fs5Q5nf71+CJyzLSf350SVksxR9lxEYqy6OFOMB/Nc2V6IEPkc1LNWFkyeWeol7YfNAcimfsvPBttnRC6U1xLBzdQBFkNGxxbLBsOFDggL3ajFCP9ZCy1AHVaFHiCxwNBJZ+w5YQIjusxst6Oda/p/rE3xvjOO7U0QpNcC1N4cy+AzO69ZvYrpQWw0Idp+Df3zKVadGwEOa2ipjPMDBiBQ8GfuDbWN9TI7/XXbn56ScPBRQOWX77DnPm63Hmky31XcxiN3jyFRxIDmOdMzFjHp3br6rhnMYYZoBbgjohsPz1dah5BhbdxlAx29WddxzNwpYnZ8HXF6IEBaph/qyDlA1vtFn3y6c8WiXunD+ugTV71KX+DsdPb+K1KL4ND+NS4Z1tTvUk+2TlGcMiyVlZlB05arKNurBpgqn2FEnqBATjh4Ux+NYzED7tz+PMEbKUsYHWZCr8yogd94eEPxyMWibIbAKIlsthsG98JI/+2Y4BobmRxl77Eq9xj1FAq3m3Q9lb4rdaPZgOqv9Zw7Kpwhw5lYVktlk56Mx0RFkqn5NuGiXBNKvZ1OM2ewlImaTK8Oooi5hDBuV7dno/Eh6fDa3WPpxCDsGO3qnCs4KoRh5zPZvrbJVkA7NDSwxWJ/Sn13ZuV1cw6T6ePpbJq4NwhNpFGIFFmim0BNymNFPfZMmx4RoU7EWsvuDHaI0UhNFKGmiQlX22NJl/AmLYpfj6FYr9J+ERnPlE72PyLGVZFbvTb9XlMst6FzALeWPrCATvYIVqAuVxdmNDPiRDaiL+q08AvZbrVTQS1l+agtMXp1JNT7D06HapAcXwGKUiY1qtnhMbb1u2TaNnYCAvYMWQYIsBPKBqrj27OvpAB+EdyfsPOI0AY0uD8Tlor+QPM8Pn/+S6A5nd571zLD1d5220lCHGQ1gK6gTToQ4Ea+YhXB/XMbz5CuOppElr8gOWMJQZJqTT0SzT8MAi4ts3nSSeKbXAswnktzRyY8guIA/ElQk/lDr12lSOkaHEGNY4JAixz4EoOesAsshb4P2kGGjKY5EJbME3Db4glBPwUAFMWAbgcQqzE7uWbQzjwPG8k3 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0dc248e-5d69-43af-decc-08da1d5ce86d X-MS-Exchange-CrossTenant-AuthSource: AS8PR01MB7944.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2022 14:50:10.2560 (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: VI1PR01MB3917 Subject: [FFmpeg-devel] [PATCH 3/4] avcodec/avcodec: Don't reset decoder-fields for encoders when flushing 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: xRTLr4TEFDx4 Signed-off-by: Andreas Rheinhardt --- Needs to be applied before https://ffmpeg.org/pipermail/ffmpeg-devel/2022-March/294507.html or flushing an encoder will segfault. Btw: All this stuff is unused by subtitle decoders, so one could condition the else on that and avoid the allocations. libavcodec/avcodec.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index ded6b5b307..0d971a61d4 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -422,6 +422,17 @@ void avcodec_flush_buffers(AVCodecContext *avctx) } if (avci->in_frame) av_frame_unref(avci->in_frame); + } else { + av_packet_unref(avci->last_pkt_props); + while (av_fifo_read(avci->pkt_props, avci->last_pkt_props, 1) >= 0) + av_packet_unref(avci->last_pkt_props); + + av_packet_unref(avci->in_pkt); + + avctx->pts_correction_last_pts = + avctx->pts_correction_last_dts = INT64_MIN; + + av_bsf_flush(avci->bsf); } avci->draining = 0; @@ -430,22 +441,10 @@ void avcodec_flush_buffers(AVCodecContext *avctx) av_frame_unref(avci->buffer_frame); av_packet_unref(avci->buffer_pkt); - av_packet_unref(avci->last_pkt_props); - while (av_fifo_read(avci->pkt_props, avci->last_pkt_props, 1) >= 0) - av_packet_unref(avci->last_pkt_props); - - av_packet_unref(avci->in_pkt); - if (HAVE_THREADS && avctx->active_thread_type & FF_THREAD_FRAME) ff_thread_flush(avctx); else if (ffcodec(avctx->codec)->flush) ffcodec(avctx->codec)->flush(avctx); - - avctx->pts_correction_last_pts = - avctx->pts_correction_last_dts = INT64_MIN; - - if (avci->bsf) - av_bsf_flush(avci->bsf); } void avsubtitle_free(AVSubtitle *sub)