summaryrefslogtreecommitdiff
path: root/libavfilter/aeval.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2015-04-03 17:55:18 +0000
committerPaul B Mahol <onemda@gmail.com>2015-04-08 13:05:06 +0000
commita0854c084ea1541591c54aaab1f993ebaf92ffaf (patch)
tree1ebc69023a4f7eb471ce60ff4784b146a8b9973f /libavfilter/aeval.c
parent21e034a47a2b407f0896114a995fd507f0f5230f (diff)
avfilter: handle error in query_formats() in bunch of filters
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Diffstat (limited to 'libavfilter/aeval.c')
-rw-r--r--libavfilter/aeval.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/libavfilter/aeval.c b/libavfilter/aeval.c
index 69de1f793f..b6c420a4a9 100644
--- a/libavfilter/aeval.c
+++ b/libavfilter/aeval.c
@@ -247,12 +247,28 @@ static int query_formats(AVFilterContext *ctx)
static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_DBLP, AV_SAMPLE_FMT_NONE };
int64_t chlayouts[] = { eval->chlayout ? eval->chlayout : FF_COUNT2LAYOUT(eval->nb_channels) , -1 };
int sample_rates[] = { eval->sample_rate, -1 };
+ AVFilterFormats *formats;
+ AVFilterChannelLayouts *layouts;
+ int ret;
+
+ formats = ff_make_format_list(sample_fmts);
+ if (!formats)
+ return AVERROR(ENOMEM);
+ ret = ff_set_common_formats (ctx, formats);
+ if (ret < 0)
+ return ret;
- ff_set_common_formats (ctx, ff_make_format_list(sample_fmts));
- ff_set_common_channel_layouts(ctx, avfilter_make_format64_list(chlayouts));
- ff_set_common_samplerates(ctx, ff_make_format_list(sample_rates));
+ layouts = avfilter_make_format64_list(chlayouts);
+ if (!layouts)
+ return AVERROR(ENOMEM);
+ ret = ff_set_common_channel_layouts(ctx, layouts);
+ if (ret < 0)
+ return ret;
- return 0;
+ formats = ff_make_format_list(sample_rates);
+ if (!formats)
+ return AVERROR(ENOMEM);
+ return ff_set_common_samplerates(ctx, formats);
}
static int request_frame(AVFilterLink *outlink)