From patchwork Fri Oct 8 11:49:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 31001 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2084:0:0:0:0 with SMTP id a4csp787621ioa; Fri, 8 Oct 2021 04:49:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwzkTI5Me1dM4Rnqhf8zdcgiuS1w37IK2gRykd/gSwNk9TDcJreEpbbDLEp1nMW0UBGpt96 X-Received: by 2002:a17:906:1bb1:: with SMTP id r17mr3619904ejg.533.1633693791600; Fri, 08 Oct 2021 04:49:51 -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 hc43si1275090ejc.189.2021.10.08.04.49.50; Fri, 08 Oct 2021 04:49:51 -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="bj4P/lXM"; 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 4E52A680967; Fri, 8 Oct 2021 14:49:46 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (unknown [40.92.74.17]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 97E39680967 for ; Fri, 8 Oct 2021 14:49:39 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WIUXG1NgBij76t9nmeXQSwRBuTFslZ3i1idI2ldDZq+IbZfH1CHlaRfNnqiVB0xOUd87K6qGzmFUPlinlyT4bWXBFMaPAfjRwYrKNoVSbgt1ttWBzkc8GYH1BHQ4pMHLKoilcGSXwGOjxADpfvqMdoIzeSaoeOb1631pTdDi1UxyRR4DxTZC+k+BV1Dw2J9yrcCp46PuyZWjIgg10GaIXHw+jJQCoFYD2HImEXrDwAIUxWiY/l89KzUXfOGs88zGpCJmkLn7gO/2ikE36BduuTv0WeIJ8ddovNJlhxcW18e7AgEh2xRulkgHaCJN+y0tWA92P3xyjIgQtbM/k/iDzw== 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=OEzMtCFaTgTUTMJ7i14VWzc9Ndn7yd0EEjH6aQ7T6/U=; b=e0J0iQawsdWYm2R/KtfQcTxDvWpDYXtbOho+KuGz20o8K8fU+IWaDQYYMuqcXODIU9zLmAnnX2kF9jqOHkOP2lx2nRdZJ8F47WnlqTZK6yKDbBLRsSbXLE2joVoZkF54j6MO/U92OrhfFWfcaTIl3ouBQ8RoQ1q2FL04Kzun1YZCy2fJnMwt0CRuqvCtX2cnvBapNSxFXad7Mvlrhf1OAqmUXdjwEzr1zrJOLJ+5KF1Ebuc+1ENGPsaH9asrkvdIx9agVpwE4hopKemIG//rbVHKCgD09sCF93GOBkK0RROZi4LoPzwapQ6oxrjuMO9dfwXeHxFJFY/IJuFJyhC7hw== 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=OEzMtCFaTgTUTMJ7i14VWzc9Ndn7yd0EEjH6aQ7T6/U=; b=bj4P/lXMru+Bx7Mxjj3M7jv4ZJgfQ87IgTxPtV2m5S8i6EB7AbFBgswxdSFz/OIqpqgqhVYkqA5WpBi0aIRI52noH2TBiKakjlTlm/bD7Wee/KSizzd0LP86Tbth318sBx6axeFuywO+V3zDmUzGpdFwQxeIz9ZURR0EwA8tra9PojfKA33bZ/peCIQoUuyinQUKJJO8P7ChMC8OZQ/65xN9/7qzJVbN0+50rYzkQIDdx33XADCZtR5BFAtqyWCYUM5WctfXRfN2Wq5oqFUklTZG1uBvlPqIQ+DDSdiWbFoznBRJMkNdS3DofmFcmmCCbxUNQILWFI38byuH+PILgA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM5PR0301MB2513.eurprd03.prod.outlook.com (2603:10a6:203:13::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.22; Fri, 8 Oct 2021 11:49:36 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::700f:d70b:3bb8:4d51]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::700f:d70b:3bb8:4d51%7]) with mapi id 15.20.4566.022; Fri, 8 Oct 2021 11:49:36 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 8 Oct 2021 13:49:28 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 X-TMN: [yvaSIXnZvPEh2xAv7kr8n8w/zvUpo4rV] X-ClientProxiedBy: AS9PR06CA0074.eurprd06.prod.outlook.com (2603:10a6:20b:464::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20211008114928.1382036-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.193.170.49) by AS9PR06CA0074.eurprd06.prod.outlook.com (2603:10a6:20b:464::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.15 via Frontend Transport; Fri, 8 Oct 2021 11:49:35 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 61a956f1-a55e-4119-93af-08d98a51b3ae X-MS-Exchange-SLBlob-MailProps: 3tYrFWTD79DOSlu3sldtrVAMEDW490OzQNcl7iDODJ4frnzkV758zWFIvUtsLd61HuXFGivyVPMkrfV40PygWmmzfdYv6rwJC7xRbxfTovfxNQHbZpuORLEjLETkhgx7nW+MkdTpW6Mj57/XXBn2FCN3dRYJreMwpfLpSuHHz9ymtq1dS8AbYjkEV66mVrp5IWD1Wchi+9Ic0GbNCYE4s6g/ouiKeyERcU83RzpS9DedPt2CF11tg1SDSCQUNT2+Ss4Jx66hR/oveJ7cMym7yCXOzA5OqNpCn/F885ZEuBS+++MBURDwF5bWnOa35BcAEhCr5FEC1jWkzgZSHjUlmIUR7LFmDBHZVjV0k0myqDXFBfv8oL04CfHMefG9SO/5Ay7Y7iUQJWaDpWI31PSXtdUKG1nRIB/b8hZDsM0S3EUSEgyuXOXscHFrO6Z/5zYVtcCXWm6gY/MsdJYyFhVfk6ZGQQmJc9+AFl2VJCHXaHbwF4hkn6YDO/BVutKwgEg/kNJQFSkJ00/o0+j0l72dyqUHmJItDiSyzEZM/NeI6StZPE/S0Fq7vBTQrAMlQygsA54aEMoP7gkWMC220F63EOPRzZaesPfmNprDCjnymi25jcveKBcnzEzlZwsr32LNkTOf1i4cgf8OFvRYGV9LrzhQttxcwqJ0FjH0536Ki5t6h25/J5YgZ42cmUl6bgL3q/xCqMw6cor9nNWIXgkZ+68hXNU+K8u+IztANlYQAH5BrIdUAhYeJfIx/vLJE3ZOw3ZU5TZexGq+HSJRGKCuAzMNGDMzvqwj X-MS-TrafficTypeDiagnostic: AM5PR0301MB2513: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0VYZgsSpPeDtTycXkjyancP4xzk0hZDRMm/Q5uk4ZtEruHNyMaLk3nKpLoB8oWkQY5zP4lxWiMdlQi9rya4TuKE4BqwM6nG16nfSMVncvOgZ/6DeUy+d6Lpp8n8Z6hlltWkWM3WyRloIW/pata1a5XnpUL2eDzWUWIwHS5pT2+fxNzEsRdLGG05mpPRDnHZTtGd7an/It+nYpjgGzcPJHbrC0uAQdsAaexJiRJcC+kXUMqfk26ZfJvj5qRBqZBKWlRhtaTaaF0itM9PnTn/2edzsyEHQZ/Hw/AVvLkpaepodWCcBBE8duD4A3kv//GfhDdVBV2uLopI6+DgpHmsqWXdQKLwOxQmcbzQJy36UA/HwlwdxzLc16es484lOsgnYCPWmR2cVDb+5vvmL2YdKb9E5hEH5m3W15xV7UL6RmaOAAmsC4FMiOZGZ3ZTNCxRr X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: YUb0U5y8jSY8IijKy5r0VJcSlsZaQjzf3thZQlEkbBMOdqn+j0U3KUghGO3PwKSDB0m/lZKJdJKVCX/6NKSM+0DAnqI8nRnbqCGR69ZYquJCirsa/jaqz4LeB0GD9ieS6czc6OSwmuPlQJwz15nxuQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 61a956f1-a55e-4119-93af-08d98a51b3ae X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2021 11:49:36.6947 (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: AM5PR0301MB2513 Subject: [FFmpeg-devel] [PATCH] fftools/ffmpeg, ffmpeg_opt: Allocate (In|Out)putStream.pkt early 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: +/elL6POziML Avoids checks lateron in the hot path. Signed-off-by: Andreas Rheinhardt --- fftools/ffmpeg.c | 16 +--------------- fftools/ffmpeg_opt.c | 4 ++-- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 14611480f1..9d4f9d7a2b 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -1533,9 +1533,6 @@ static int reap_filters(int flush) if (av_buffersink_get_type(filter) == AVMEDIA_TYPE_AUDIO) init_output_stream_wrapper(ost, NULL, 1); - if (!ost->pkt && !(ost->pkt = av_packet_alloc())) { - return AVERROR(ENOMEM); - } if (!ost->filtered_frame && !(ost->filtered_frame = av_frame_alloc())) { return AVERROR(ENOMEM); } @@ -1979,9 +1976,6 @@ static void flush_encoders(void) AVPacket *pkt = ost->pkt; int pkt_size; - if (!pkt) - break; - switch (enc->codec_type) { case AVMEDIA_TYPE_AUDIO: desc = "audio"; @@ -2597,8 +2591,6 @@ static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output, for (i = 0; i < nb_output_streams; i++) { OutputStream *ost = output_streams[i]; - if (!ost->pkt && !(ost->pkt = av_packet_alloc())) - exit_program(1); if (!check_output_constraints(ist, ost) || !ost->encoding_needed || ost->enc->type != AVMEDIA_TYPE_SUBTITLE) continue; @@ -2634,11 +2626,7 @@ static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eo int repeating = 0; int eof_reached = 0; - AVPacket *avpkt; - - if (!ist->pkt && !(ist->pkt = av_packet_alloc())) - return AVERROR(ENOMEM); - avpkt = ist->pkt; + AVPacket *avpkt = ist->pkt; if (!ist->saw_first_ts) { ist->first_dts = @@ -2809,8 +2797,6 @@ static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eo for (i = 0; i < nb_output_streams; i++) { OutputStream *ost = output_streams[i]; - if (!ost->pkt && !(ost->pkt = av_packet_alloc())) - exit_program(1); if (!check_output_constraints(ist, ost) || ost->encoding_needed) continue; diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c index c46a9343e1..e99967ebb3 100644 --- a/fftools/ffmpeg_opt.c +++ b/fftools/ffmpeg_opt.c @@ -824,7 +824,7 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic) const AVOption *discard_opt = av_opt_find(&cc, "skip_frame", NULL, 0, AV_OPT_SEARCH_FAKE_OBJ); - if (!ist) + if (!ist || !(ist->pkt = av_packet_alloc())) exit_program(1); GROW_ARRAY(input_streams, nb_input_streams); @@ -1486,7 +1486,7 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e st->id = o->streamid_map[oc->nb_streams - 1]; GROW_ARRAY(output_streams, nb_output_streams); - if (!(ost = av_mallocz(sizeof(*ost)))) + if (!(ost = av_mallocz(sizeof(*ost))) || !(ost->pkt = av_packet_alloc())) exit_program(1); output_streams[nb_output_streams - 1] = ost;