From patchwork Fri Jan 27 14:05:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 40142 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3ca3:b0:b9:1511:ac2c with SMTP id b35csp1372880pzj; Fri, 27 Jan 2023 06:06:38 -0800 (PST) X-Google-Smtp-Source: AMrXdXs4knDgO7GTiYLZXCmu3yQ39MVAsaqSB+RxAyr40He+tpaw5GkhDWL0CnHIqBChr61uBnhc X-Received: by 2002:a05:6402:120a:b0:472:d867:4c3d with SMTP id c10-20020a056402120a00b00472d8674c3dmr52081848edw.40.1674828398738; Fri, 27 Jan 2023 06:06:38 -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 u26-20020a50a41a000000b00499b612bc82si6006892edb.368.2023.01.27.06.06.38; Fri, 27 Jan 2023 06:06:38 -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=ozm3XO2g; 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 31A5968BE1F; Fri, 27 Jan 2023 16:06:16 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2030.outbound.protection.outlook.com [40.92.64.30]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 23D9468BE31 for ; Fri, 27 Jan 2023 16:06:09 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QN7JUNwCgmtG1JGmrlVG+SL1/n/qp77SOpiQ0ZkZECdcfzcCsYyu9P9tVZMH63zZyOwF0L8L+fR4JxGLGE1QSm9W1LftLoQco5AnUWoS3Bfr80QF9Xj6xghFn08v6EgMgOvMm9uaHuA+mgg8utovkU2q1p/7++sxUrWqHo3AFzNzgQ0HYybT4USyrQoWCMxlvUEh9UznQZ/A8/hZI8XckFFMI2hpl1EuoDqjhME5+gE0DX3PgPWqqW30nBtzsC/XVsB6R7lY2GbNGeZvXhEPgZYq28MfD+X5pkH+ipFGX0Ir3rrQksqw4DqM92PYiXimkFY1n2c6JSyigaefOVbY3A== 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=cg7WXA/uJr79cX2PbHpe5W2TOXSEzNBUelkaVggqhro=; b=T33ls+vtbQZU957OxVr3GTUhv6WG/mQc7EW3v4EKdSeoEij/Ep3HHwaH5SpbNK5b1eWY/EBBPmF4T0TenK/M81tR6i0a+GYbiJWgqJI0sFZ9SSebqW2IpL6vw1RtXAF2CyCvuGiKQTdWxBbOe4iHPjTCbZvIDVUym/TwNJuqwy94yiQad+ka60Ipn0VMITo2UmUJLxcx2hC/RRW3m6SOK017bOfuJJ9TrSVClhwJ5vCuqGkgGEJvhT/jKaESAyoLqaxKHAYzxndUGCKBt0oUtsNvEY1cVujT6QFAqPiNhrweX0/dMa87Uk9+k2oa1pkBTQUYDAUpEFdCYigI0NVcAA== 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=cg7WXA/uJr79cX2PbHpe5W2TOXSEzNBUelkaVggqhro=; b=ozm3XO2g+1Ed7wAf9G4SwvS52WrbyE7DgSfuYxBaD4kpN0VLE5yahHgfyqTOftwujCv+GMefbdTUIcOsBRklNWlxxlXXooIfCz2jmHkokom6bwMZqYPtt/Xa0vERkXAXy7DlGZDkuLwZGv+jp+PzkZMg9LV3xw7381FCCTx9wpjll0MYweSyeJoZ4qQ3h+pZhHwLProMumM5Pv6TgyhwQnCyoDCkSr4mzvR+HSFj77jdZERJfKytRwpGxDhvnQiWXBu73AbX+JnK01ZeoqhNBr0nEOFZ3CEp8S9CS95NKpZAWO/kpvPKXLMPUS3F8l5ap6S7HXtcQf97uTRCfErSzw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0741.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:539::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Fri, 27 Jan 2023 14:05:57 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::a65f:2ae7:256a:ab96]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::a65f:2ae7:256a:ab96%7]) with mapi id 15.20.6002.033; Fri, 27 Jan 2023 14:05:57 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 27 Jan 2023 15:05:59 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230127140600.2831578-1-andreas.rheinhardt@outlook.com> References: <20230116133840.512-1-jamrial@gmail.com> <20230127140600.2831578-1-andreas.rheinhardt@outlook.com> X-TMN: [zEpgzA1NUAJkeizW8Tx90g7KArcgFv2Y] X-ClientProxiedBy: ZR0P278CA0164.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:45::14) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20230127140600.2831578-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0741:EE_ X-MS-Office365-Filtering-Correlation-Id: 7ec1839d-1f06-42d6-0cd9-08db006f9ca2 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKxBE74dQ6G20tHfBHFjrBl3u0MhuRigHiNFaOU3z3f0tNtDXB0va4LQagVf2YfW6yy6iiLmAfkm//46g+pghLL/em37OsJvb/PELaebMpgb8Xlq8REFZYwliUVDDjIwHB3aOTuLw8TFXcTyRcCbVoaFIOqXFUtCRLgGikzRFbkt7WYvqU/ypXGWGkucKqa0Rp2/qRMyILygKeIyJj3KoiumMbzB1I0hVuaku2Zqmx5PRN+5d6Qgwp5ChqwAY9rMkfTHWA3qzI/8by68w5l4a+0hNXf0F2ETQqnXkwrKjrVQD+gUbqv4WAbsqFhHU+x7d+kozuhtAaxFrkPGlMNl9HHPIQoj+qFmCuDsDjz4IYmvrORN2QRdF/VH8LpJD5N6zFyL164r41uSmPowcoRhEVIQJ40vpikeRUGWvr/YOXFwOukPpDnQuo9LGeSluCY1OIuWhojg8ciTGZ6972SjCD4hc5BZ5JbfUjx0YMpKRnUnEO675UysfNwHqp6QUz5OGYyhTQ2kT6sGlva9ypS7Y28kXJQ5eMbTQ8kpy7YMfdyGtKdsbLhd2pgKxzngmFI3UkVkHJ28P7sNLBToIfpVxUjRTf1BBR5QcphaP2wSAzd4EDrBQEfI6Ip/9CYBCb/DoRwG9NjnZnxli6BYRJF7rp4uRuZxhml74yhsa2yARW8Vo8TCyPD0SDxmK0pSz+Q3vpzHYDIn0DC8SWueAWN3hF4uIGWUSsmiKos= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: b3B8oPsjaUGMgQvZ1WOhGv1UzOjwq1qMcMxXzFS8ENM9yn09BIh8ZK3VZDyh0J1Sl70CzX/FXeFABa0BwHqXbzjViDkrsQ7X8ZrIxI1nbBBNqZkaDuD/swHvsTDyPNs7KPxYtn3ok4NUTor4P0hOQCVxRFbi0pqZAozSQQrkUQFldfPgdIhp+Gp5AarV31OSpZysexMfVP0eNtjMgTWa87kFYq/Z0Ra74d5or5TDqaHud5miQggbBKOFy5z2kOy/grOjJrlzts/as4hrQYfaAofJvBanY9vdlbpaScDfmom7fwGGMZXgK+Gd0tO0ZK9HamMBplB2GDsUEQmQYwkxeEpohpyRH4mHrPy7FFfzROxL+X9lWyRadlnHP6jbXOcKRtl6jIht9MTrZqcmZBDehnFBIWbaeGc8Sbt3DrtrFiuiq4VH2+7snDmCB3LwfeVRAkH2j0bb+QFUaFJvejWy37BP915/WRbjQs05PiMwgtrsckOCRCQoygy0m1Q69S3Wn07x+GPvU81M5meEzTfUFZ4YK9k/5zc0uBgVHcVoaH7I8Zl4KzlKcAPR8kjIgIFKnzK6KuQEc6wUHKCVK0l9UIFmmhjJ/w0ZLGbaWHzV4MXZEIhUYGTZXmePs7/kQaDVhzR0bFXrwkvHe2MZ8S7NaEjXU/XJm6wsVxnC1H4foI8= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ApfFFHVaG9dDvGkjOTzWOHLX5ffDrHNsfzjlInVCETImp1iHhA/1wfrLQmL03U7sfzxti8YY9EFOY1/154cCQqsC3YtIgoZQgbygALZORTjwsPd2OZ4c1gE61FY53854a+WScTscH657DH8w4VIvuwI1q1jw7L1cq0nEF9vXmO++jder7MPIo37i9B6Hk+tE+xRvlhVFHvgQHBBUKhp69pBYu42Wn92H9pQ6JbVEaCE9aT0AgJPloDFZBNpgYEbGqo1a0hLFNq7MEBQVwq+w88P+5el90E8SrC0XlqctimSrWQE1TUueENVhj8DqdoNBjsWLdeypNTOKSsNO1jyzyT8Rrhnl3qT8xWHTj+3hkB7gPE1E27WE5FveeXfdZwghCBXvpj19tfvSbJAu0GKJ0+0qStHbKLH+8C2jDD1JSj/Rk9M7+la4vC07Ub4JOI51cNGRzrbHd4w3noVO3TT3NQqPRTTzeO26RqBgTVY8LAsJVlRwIhiIGe78Oz6dycYaYYHet3ecfEAF/Bl87HZQWyw25nVFJMkBLzvYjQ2PtAccx0EwNGvSefE/RLTNU5UhAhQtBHSDRkdNDeTUgR+HsUC1VlCqtVf1YZQLRRTeyErdHyM1kealWATmdyljVLxXtSYOyiBekMA6MJdA3FmmLh16mKIbWrI2MG30bohqkrcVHaxEp+hakuUe2y5PIyzJjpbeSx5nBXncWPogz61X8pxBeyrZs514Le1/aKK2lpVpYeIp2iODI4/b3EWou72XUD5ENeXqr0xuQzUps1qKt3iOdUO8oee5zWoRgI4dKbN/VcqhFTjkjg7Qc63sKU6fkwFzTQVa1elh2gbYTbpoJm43U8McYscI4P6hoG/23oyyTJvrcRpCFSWMNC3IHecaoAnUNAzpv1e/NpUrGxGEwWB2m3yrSzGKOf6Kx8LME3kZPG4MowtraG/tRwDnIVSp7z1pDY8IIO2hIFt3n9Wz5xuO1XsLsEOPLydSrAFcyWpa9xGfMAUBMJ8bMelEinruWfgjNkOch75MNfzZ4Ubez3/d8qBHpndjJ+rIHTaIdMrp8feOYcTkPS2yGB6g50QSBnGskvxCk8t3nTqX29tL6jyCVbUKEHzc9VZOc+i/99a1aZsOwNAlsp2Jq3InM9HVJcDLtnfjYbBud7YnLo1+1ePriYTpYmDnUwcNVSp5WsEFt0wYBtcFUeJZO5G02Ys6iUZ4ePVnPH7B2eomELdOCqnjWFsyu/LCOh2KFHB2c27VO0OILEkcCtyhbAq/ZQr7eRT49/9jH6WsVI5P5V7ItNGRWe0xBUFnH+D11o5eSbc= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7ec1839d-1f06-42d6-0cd9-08db006f9ca2 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jan 2023 14:05:57.4479 (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: AS8P250MB0741 Subject: [FFmpeg-devel] [PATCH 30/31] avformat/demux: Avoid stack packet when decoding frame 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: qQ6TcNrjadGD Possible now that avcodec_decode_subtitle2() accepts a const AVPacket*. Signed-off-by: Andreas Rheinhardt --- I don't like postponing FF_API_INIT_PACKET. Will look into this. libavformat/demux.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libavformat/demux.c b/libavformat/demux.c index a973a08731..c39919b978 100644 --- a/libavformat/demux.c +++ b/libavformat/demux.c @@ -1984,7 +1984,7 @@ static int has_codec_parameters(const AVStream *st, const char **errmsg_ptr) /* returns 1 or 0 if or if not decoded data was returned, or a negative error */ static int try_decode_frame(AVFormatContext *s, AVStream *st, - const AVPacket *avpkt, AVDictionary **options) + const AVPacket *pkt, AVDictionary **options) { FFStream *const sti = ffstream(st); AVCodecContext *const avctx = sti->avctx; @@ -1992,9 +1992,9 @@ static int try_decode_frame(AVFormatContext *s, AVStream *st, int got_picture = 1, ret = 0; AVFrame *frame = av_frame_alloc(); AVSubtitle subtitle; - AVPacket pkt = *avpkt; int do_skip_frame = 0; enum AVDiscard skip_frame; + int pkt_to_send = pkt->size > 0; if (!frame) return AVERROR(ENOMEM); @@ -2043,7 +2043,7 @@ static int try_decode_frame(AVFormatContext *s, AVStream *st, avctx->skip_frame = AVDISCARD_ALL; } - while ((pkt.size > 0 || (!pkt.data && got_picture)) && + while ((pkt_to_send || (!pkt->data && got_picture)) && ret >= 0 && (!has_codec_parameters(st, NULL) || !has_decode_delay_been_guessed(st) || (!sti->codec_info_nb_frames && @@ -2051,11 +2051,11 @@ static int try_decode_frame(AVFormatContext *s, AVStream *st, got_picture = 0; if (avctx->codec_type == AVMEDIA_TYPE_VIDEO || avctx->codec_type == AVMEDIA_TYPE_AUDIO) { - ret = avcodec_send_packet(avctx, &pkt); + ret = avcodec_send_packet(avctx, pkt); if (ret < 0 && ret != AVERROR(EAGAIN) && ret != AVERROR_EOF) break; if (ret >= 0) - pkt.size = 0; + pkt_to_send = 0; ret = avcodec_receive_frame(avctx, frame); if (ret >= 0) got_picture = 1; @@ -2063,11 +2063,11 @@ static int try_decode_frame(AVFormatContext *s, AVStream *st, ret = 0; } else if (avctx->codec_type == AVMEDIA_TYPE_SUBTITLE) { ret = avcodec_decode_subtitle2(avctx, &subtitle, - &got_picture, &pkt); + &got_picture, pkt); if (got_picture) avsubtitle_free(&subtitle); if (ret >= 0) - pkt.size = 0; + pkt_to_send = 0; } if (ret >= 0) { if (got_picture)