From cd99146253cf9de5dad5694b97027d5612fdc61d Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Mon, 2 Jul 2012 20:13:40 +0200 Subject: lavfi: add error handling to filter_samples(). --- libavfilter/af_channelsplit.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'libavfilter/af_channelsplit.c') diff --git a/libavfilter/af_channelsplit.c b/libavfilter/af_channelsplit.c index ed134d2885..32b85d82f8 100644 --- a/libavfilter/af_channelsplit.c +++ b/libavfilter/af_channelsplit.c @@ -110,24 +110,29 @@ static int query_formats(AVFilterContext *ctx) return 0; } -static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *buf) +static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *buf) { AVFilterContext *ctx = inlink->dst; - int i; + int i, ret = 0; for (i = 0; i < ctx->nb_outputs; i++) { AVFilterBufferRef *buf_out = avfilter_ref_buffer(buf, ~AV_PERM_WRITE); - if (!buf_out) - return; + if (!buf_out) { + ret = AVERROR(ENOMEM); + break; + } buf_out->data[0] = buf_out->extended_data[0] = buf_out->extended_data[i]; buf_out->audio->channel_layout = av_channel_layout_extract_channel(buf->audio->channel_layout, i); - ff_filter_samples(ctx->outputs[i], buf_out); + ret = ff_filter_samples(ctx->outputs[i], buf_out); + if (ret < 0) + break; } avfilter_unref_buffer(buf); + return ret; } AVFilter avfilter_af_channelsplit = { -- cgit v1.2.3