diff options
author | Paul B Mahol <onemda@gmail.com> | 2015-04-03 20:55:18 +0300 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2015-04-08 16:05:06 +0300 |
commit | a0854c084ea1541591c54aaab1f993ebaf92ffaf (patch) | |
tree | 1ebc69023a4f7eb471ce60ff4784b146a8b9973f /libavfilter/aeval.c | |
parent | 21e034a47a2b407f0896114a995fd507f0f5230f (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.c | 24 |
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) |