From patchwork Fri Dec 3 18:28:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 31919 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1031744iog; Fri, 3 Dec 2021 10:28:46 -0800 (PST) X-Google-Smtp-Source: ABdhPJxwQ9yN60QDEBZetCQP+h1HclZThPsVUUu4xmkyG5zYFZ2eot5sG9/GSCuC/wUb9s0GVfrY X-Received: by 2002:a50:d883:: with SMTP id p3mr28255378edj.94.1638556126431; Fri, 03 Dec 2021 10:28:46 -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 nb37si6022906ejc.170.2021.12.03.10.28.46; Fri, 03 Dec 2021 10:28:46 -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=gZxbQ6k+; 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 E5F1468AE64; Fri, 3 Dec 2021 20:28:43 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (unknown [40.92.90.10]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5E6D568ADF7 for ; Fri, 3 Dec 2021 20:28:37 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G4KRYXnlHOldjZuExC/V19JrdsIFtS8kufXaLaoHDDx8uFY3dMpyPi1rrliYEi0iCkfYvtGfs1W/TGR2kLlJjv9SChbdijUwM3i/Nb+4Imyn2WuzkKKP6nkCdSlpTeA1UB9SSYvRJzLZ6nE3KLaZV7BoOfANg22csl/PWeu8SKRMQWMhzDGy6PwnQAb8IajfjXesadM7qmemlAsuESV29jguYbYm+nDfX/J3F+XpQGrujwgcrucqP/SO9VfVx2jC0UwQ8Knl9y3OoMgiwK9ts7Y9huXM82A0ks9AXOxhqqlNC9DnPNavY0qNv5A7NSOVrfVcIG//Lr6iwqlYyieFWA== 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=xiy7HnUUmh6p4wzlpO+kWnXuMtZC5TWU80lFV3mJcZQ=; b=ZK7UWIwwN4h0dunfkPnprL/iC/d2KEyozYOg6SmcWsi7CU5sFVmbY49xTRqbF1Vdt/cxFBusDS65XGEAY4YyxAoro0eQXb22zruUTrTisOHKIhUhgglkAqErMch4v6sM+FRzVc81TrGXhMxcK4fMr+Hmc810VMFs+FHdqOqNC2wse+87kaLjd0vvNIbXWLJXMMD4EQ5CFSZ9Eos5IGjtb5NWpUJKCIvAyHuVDybvkNRCBEyeu8nmkwsPc+SEGmNky+DeB73UV/WiroK248gl6c79lTvbHjOsaOlEc2xdDcVd+2k+AA4FD/u/svEcBpKOJK7eIJAAU7QkUABikaCfVw== 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=xiy7HnUUmh6p4wzlpO+kWnXuMtZC5TWU80lFV3mJcZQ=; b=gZxbQ6k+TRYOBG1+3qlXtvVIqwgovFlDpXwoEmRe+dDtBc0ODexNE13m2UEFbFuWRnGxCxcBG1it/yziUz4cZL2lcdomazTPt8vJTqZ7f4BQFnKvpn9Al8YDf7r7zHWbSsYf2HZkX7ggnpzKgxguHj1FYB1/2QovYw5TPpBWffD3drHmnipZ3Vw66F/iWntyfMPAllzDfbtf8Uyk7X8fLxnrPE6kTCmJw6edQtEw8fZXIJp0GtTOFXkHUFEDS4+ZUs6ZzNHDpANaX4j6yBqKjrWwMsBXm2N1OC+pZXcoTsgHvIKjZ2TaiI2aTbR+I1xuOrBfD33ZnKVG1ofeSFzwuQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB3605.eurprd03.prod.outlook.com (2603:10a6:209:2f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Fri, 3 Dec 2021 18:28:35 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca%4]) with mapi id 15.20.4755.016; Fri, 3 Dec 2021 18:28:35 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 3 Dec 2021 19:28:26 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [Ljtyg75LOstv2LMxW5Xmjy7r2V327qoA] X-ClientProxiedBy: AM6PR0502CA0055.eurprd05.prod.outlook.com (2603:10a6:20b:56::32) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20211203182828.1688841-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.248.74) by AM6PR0502CA0055.eurprd05.prod.outlook.com (2603:10a6:20b:56::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.14 via Frontend Transport; Fri, 3 Dec 2021 18:28:35 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4f8aa224-f3b3-4e89-2735-08d9b68ab7f0 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiQtx8w+3h2yNNoYV95SbXd9n8o+rrc61BJvrr666Ep80cISORDR8sE6rb50T8lua0FwsRAjWl6/hcsxY8o+5VsmwgQgdlIuGEmyMw/uSRQFmv6mP3JaIYRIZK7L+ADelAk5nV97zLhGJ6VVrAmQdcdFhUhKk4op4K+BOXrW1G7B+ERWDeWsjCSFcz9EDgVLNWPbdod05G4/T7uq4hny/TUTiar+oCoTud039aglLAO6G70wKDRN4kqvaHoqeY8sCuHMN7KauCm43md59HXMMn8zhIDciZYa+ZaY4p3SM7BD57CLhIrgcDHOWvVtGKQpjpWKKO1tCmr/rd/AT+uqb45uTVwGyFiUtXsKurFAUkDiZUxeehn4fIEmIch2K7GSWsLCzg8ShE+Hvq4qhWJm3j83aTu/ME8f7D471g12SLXCpwzf6Cak9+4+4zKHI+X6Qo+/3CwJWXZWXy+G7VoHbyZsFX60YguKwfjTlPFmi/hGX8K/o/Fr89KNbNKE1TlnxZWcjEOjSKTloXE376VW7HvwHBAFSF8693Bp9FexYgCjfxkK7AqnkACHFpRwYK8FJGYTvTxz8dzvBgBHAlrgkHprIDiLoUFlTM9JGQmWGsGhk3avAyLewBTeNG+homy2hxFoxMP7w08wShf65dVY8rrmkqryFDmbObinIihEt+2b6AOfiGtlE+2ZazGpMOiOr/vSvo7oNgY3YS32/s5hxDvRKoc1d6aYuVnU8PdZLnAZD4VeYTyT5+5N43ncPbE/cMg= X-MS-TrafficTypeDiagnostic: AM6PR03MB3605: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iatWXDHwOi9Axpiwf1gvtOyjjVF3rXNUY9zlGFY3nF3PT441o/4QV7nyKpO4p00L9h0e/w0e2nwFyIKLgHQ1+9WzhYgPehVfT5cpx5+pITiQRleXN+nTtGAj6RRCKBXREW69dGWOgTKIraHWwLzPfqsDLaCq0FhiC7lqlUQwtcnSJVMH8ArSky4vFyx5dWZHnrffVbAlKFI6+Oea1us3P5NUeKQcbgLxDfirwFhRFT+/+jp6ZLYV44LFlXkIxjEYaqNCYWgfqf94A0ecVX8kwkxHZdJk3t8OCgGcYM/pCQEUHyNRDOCRNgsQw8aopfyVlfW/3Ql9YYPTuLYhGKCuZc6n4C4xI7vrI84ZXMfsq3VnuT3f/ROWhKvfMhFAwQpP7XAjUMn06QlgXQzKDJ9xfg7c2LAEMOy/cVc00eXWO0O5eQt7ONhaSUn5iun5xne+Zk6liRC4na5JJo6YW36Q44eXbRANsOwwlyzmvNBne5jDpK2TH2haHRkdBfhIMvpfBXY0FGWvSaH5iCJpEkFVUnMUgvpNSm5OWC4veEwjum6KYd7w6ho5lZ9WAiaDBwuUuakv2n+uJ58oN9ZS8yBzMQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: OeH/Uoni4XRIRdf/YanB6EGR8oJpOomb6wfvT0xcsMvN9vGoUk9R2vxL1P7CDMtgJV2KCzghvFYgPT6zY7nAefUz6MPGBrDnV+u5wlwmDL88JyM8dKwKroh0oeovwVoiwWhOA/7i7ODP6BxsCEOGBfF7toquD98RDf+tPsNdMIy9P+AN2igBb92WNHruiDYjmOUiRE+c5RmJcd7Q568yib9yEnq9PEQ4xFYzxzvS3tgS1W9DQDSU+6LGBqtO32QgKKC2K9k+QYuCZ6DMs572L0/BSmUo9+rw63wMhoVwU0D4BT/oUCc5PvAkp9k6J1VAPSoG4GWh+I0iVYlXqRjBhzrLWZFq6EOUzwm/AjFX94n0+FhJp31lFWZ+gO5S7QhF5FihovKvzQsGEIgK2WPHzRnMr7xE8AxHKmxlkyUVntCPERLUF+uUPCQjm6hTx8L9dxJjAZthAO1/17t1kCGyshKIlvmkgXcM5zex8+SyCrxFGsiW4mpikjoS2JwTbidVdmwCIlmH8AfNt4jSI13inzPYOamfRZ5IaEyu9TyXGeeJ6I0K/0CW0DDX/vwMMErKtNWcIAvqAm7KhEbCnQqGrLVKytUJeZEbaskJ46Hrj851TUwvl2AVxFYku+YYzT3N6/rCK6IA7fUo2wb9WlttwihcA+6JhxVTZiFRNqCt868BS0r6agL+Lq8fkt+xqisA3+hzrJYKxf5VWUT/2W56IU4DMfrf1OKMDLDfMAYjyt8jNTwpzp3fKrHWuzU/rRuLzut3cRRJUKsi8PwdkG6iza6BUQjPK9L9PUxkQywX9cHDqRaFVjGAWxl2wgNbrxYZUzfZ6MhO9p4OrJ4THXtmOeajVkLi7P7RmxwJX0wuIf+d3oixGZjwjC8uxbw22fSzxMNrw+aiLtSXeKlt+n1snUTxEaTp49m25c03F28+90Runx2zFeyKonP30BkIPTsPUGVS1PFdlbOu52IpEQ5Qpw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f8aa224-f3b3-4e89-2735-08d9b68ab7f0 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2021 18:28:35.9065 (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: AM6PR03MB3605 Subject: [FFmpeg-devel] [PATCH 2/4] fftools/ffmpeg_(filter|opt): Use dedicated pointer for array elem access 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: fxZ0EarlAFui Signed-off-by: Andreas Rheinhardt --- fftools/ffmpeg_filter.c | 56 +++++++++++++++++++++++------------------ fftools/ffmpeg_opt.c | 14 +++++++---- 2 files changed, 41 insertions(+), 29 deletions(-) diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index 75194fe66e..04253a9b21 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -159,29 +159,33 @@ DEF_CHOOSE_FORMAT(channel_layouts, uint64_t, channel_layout, channel_layouts, 0, int init_simple_filtergraph(InputStream *ist, OutputStream *ost) { FilterGraph *fg = av_mallocz(sizeof(*fg)); + OutputFilter *ofilter; + InputFilter *ifilter; if (!fg) exit_program(1); fg->index = nb_filtergraphs; ALLOC_ARRAY_ELEM(fg->outputs, fg->nb_outputs); - fg->outputs[0]->ost = ost; - fg->outputs[0]->graph = fg; - fg->outputs[0]->format = -1; + ofilter = fg->outputs[0]; + ofilter->ost = ost; + ofilter->graph = fg; + ofilter->format = -1; - ost->filter = fg->outputs[0]; + ost->filter = ofilter; ALLOC_ARRAY_ELEM(fg->inputs, fg->nb_inputs); - fg->inputs[0]->ist = ist; - fg->inputs[0]->graph = fg; - fg->inputs[0]->format = -1; + ifilter = fg->inputs[0]; + ifilter->ist = ist; + ifilter->graph = fg; + ifilter->format = -1; - fg->inputs[0]->frame_queue = av_fifo_alloc(8 * sizeof(AVFrame*)); - if (!fg->inputs[0]->frame_queue) + ifilter->frame_queue = av_fifo_alloc(8 * sizeof(AVFrame*)); + if (!ifilter->frame_queue) exit_program(1); GROW_ARRAY(ist->filters, ist->nb_filters); - ist->filters[ist->nb_filters - 1] = fg->inputs[0]; + ist->filters[ist->nb_filters - 1] = ifilter; GROW_ARRAY(filtergraphs, nb_filtergraphs); filtergraphs[nb_filtergraphs - 1] = fg; @@ -210,6 +214,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in) { InputStream *ist = NULL; enum AVMediaType type = avfilter_pad_get_type(in->filter_ctx->input_pads, in->pad_idx); + InputFilter *ifilter; int i; // TODO: support other filter types @@ -277,18 +282,19 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in) ist->st->discard = AVDISCARD_NONE; ALLOC_ARRAY_ELEM(fg->inputs, fg->nb_inputs); - fg->inputs[fg->nb_inputs - 1]->ist = ist; - fg->inputs[fg->nb_inputs - 1]->graph = fg; - fg->inputs[fg->nb_inputs - 1]->format = -1; - fg->inputs[fg->nb_inputs - 1]->type = ist->st->codecpar->codec_type; - fg->inputs[fg->nb_inputs - 1]->name = describe_filter_link(fg, in, 1); - - fg->inputs[fg->nb_inputs - 1]->frame_queue = av_fifo_alloc(8 * sizeof(AVFrame*)); - if (!fg->inputs[fg->nb_inputs - 1]->frame_queue) + ifilter = fg->inputs[fg->nb_inputs - 1]; + ifilter->ist = ist; + ifilter->graph = fg; + ifilter->format = -1; + ifilter->type = ist->st->codecpar->codec_type; + ifilter->name = describe_filter_link(fg, in, 1); + + ifilter->frame_queue = av_fifo_alloc(8 * sizeof(AVFrame*)); + if (!ifilter->frame_queue) exit_program(1); GROW_ARRAY(ist->filters, ist->nb_filters); - ist->filters[ist->nb_filters - 1] = fg->inputs[fg->nb_inputs - 1]; + ist->filters[ist->nb_filters - 1] = ifilter; } int init_complex_filtergraph(FilterGraph *fg) @@ -312,15 +318,17 @@ int init_complex_filtergraph(FilterGraph *fg) init_input_filter(fg, cur); for (cur = outputs; cur;) { + OutputFilter *ofilter; ALLOC_ARRAY_ELEM(fg->outputs, fg->nb_outputs); + ofilter = fg->outputs[fg->nb_outputs - 1]; - fg->outputs[fg->nb_outputs - 1]->graph = fg; - fg->outputs[fg->nb_outputs - 1]->out_tmp = cur; - fg->outputs[fg->nb_outputs - 1]->type = avfilter_pad_get_type(cur->filter_ctx->output_pads, + ofilter->graph = fg; + ofilter->out_tmp = cur; + ofilter->type = avfilter_pad_get_type(cur->filter_ctx->output_pads, cur->pad_idx); - fg->outputs[fg->nb_outputs - 1]->name = describe_filter_link(fg, cur, 0); + ofilter->name = describe_filter_link(fg, cur, 0); cur = cur->next; - fg->outputs[fg->nb_outputs - 1]->out_tmp->next = NULL; + ofilter->out_tmp->next = NULL; } fail: diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c index ffba7010e3..6f971bc922 100644 --- a/fftools/ffmpeg_opt.c +++ b/fftools/ffmpeg_opt.c @@ -3256,10 +3256,12 @@ static int opt_audio_qscale(void *optctx, const char *opt, const char *arg) static int opt_filter_complex(void *optctx, const char *opt, const char *arg) { + FilterGraph *fg; ALLOC_ARRAY_ELEM(filtergraphs, nb_filtergraphs); - filtergraphs[nb_filtergraphs - 1]->index = nb_filtergraphs - 1; - filtergraphs[nb_filtergraphs - 1]->graph_desc = av_strdup(arg); - if (!filtergraphs[nb_filtergraphs - 1]->graph_desc) + fg = filtergraphs[nb_filtergraphs - 1]; + fg->index = nb_filtergraphs - 1; + fg->graph_desc = av_strdup(arg); + if (!fg->graph_desc) return AVERROR(ENOMEM); input_stream_potentially_available = 1; @@ -3269,13 +3271,15 @@ static int opt_filter_complex(void *optctx, const char *opt, const char *arg) static int opt_filter_complex_script(void *optctx, const char *opt, const char *arg) { + FilterGraph *fg; uint8_t *graph_desc = read_file(arg); if (!graph_desc) return AVERROR(EINVAL); ALLOC_ARRAY_ELEM(filtergraphs, nb_filtergraphs); - filtergraphs[nb_filtergraphs - 1]->index = nb_filtergraphs - 1; - filtergraphs[nb_filtergraphs - 1]->graph_desc = graph_desc; + fg = filtergraphs[nb_filtergraphs - 1]; + fg->index = nb_filtergraphs - 1; + fg->graph_desc = graph_desc; input_stream_potentially_available = 1;