summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2023-04-25 23:32:04 +0200
committerAnton Khirnov <anton@khirnov.net>2023-05-02 10:59:24 +0200
commit1dcae45ecbbc489d46695b41f92edf13efdca653 (patch)
tree78cc3b3f423025b4e5741d539fadcc71e832380b
parent87ced7aee08536551c7616c1229adc74802cf7f9 (diff)
fftools/ffmpeg_filter: factorize allocating InputFilter
-rw-r--r--fftools/ffmpeg_filter.c31
1 files changed, 17 insertions, 14 deletions
diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
index 8246ffca77..a9242fcd11 100644
--- a/fftools/ffmpeg_filter.c
+++ b/fftools/ffmpeg_filter.c
@@ -203,6 +203,21 @@ static OutputFilter *ofilter_alloc(FilterGraph *fg)
return ofilter;
}
+static InputFilter *ifilter_alloc(FilterGraph *fg)
+{
+ InputFilter *ifilter;
+
+ ifilter = ALLOC_ARRAY_ELEM(fg->inputs, fg->nb_inputs);
+ ifilter->graph = fg;
+ ifilter->format = -1;
+
+ ifilter->frame_queue = av_fifo_alloc2(8, sizeof(AVFrame*), AV_FIFO_FLAG_AUTO_GROW);
+ if (!ifilter->frame_queue)
+ report_and_exit(AVERROR(ENOMEM));
+
+ return ifilter;
+}
+
void fg_free(FilterGraph **pfg)
{
FilterGraph *fg = *pfg;
@@ -281,14 +296,8 @@ int init_simple_filtergraph(InputStream *ist, OutputStream *ost)
ost->filter = ofilter;
- ifilter = ALLOC_ARRAY_ELEM(fg->inputs, fg->nb_inputs);
+ ifilter = ifilter_alloc(fg);
ifilter->ist = ist;
- ifilter->graph = fg;
- ifilter->format = -1;
-
- ifilter->frame_queue = av_fifo_alloc2(8, sizeof(AVFrame*), AV_FIFO_FLAG_AUTO_GROW);
- if (!ifilter->frame_queue)
- report_and_exit(AVERROR(ENOMEM));
ist_filter_add(ist, ifilter, 1);
@@ -379,17 +388,11 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
}
av_assert0(ist);
- ifilter = ALLOC_ARRAY_ELEM(fg->inputs, fg->nb_inputs);
+ ifilter = ifilter_alloc(fg);
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_alloc2(8, sizeof(AVFrame*), AV_FIFO_FLAG_AUTO_GROW);
- if (!ifilter->frame_queue)
- report_and_exit(AVERROR(ENOMEM));
-
ist_filter_add(ist, ifilter, 0);
}