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_channelmap.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'libavfilter/af_channelmap.c') diff --git a/libavfilter/af_channelmap.c b/libavfilter/af_channelmap.c index 0dfffaa..1d32d2a 100644 --- a/libavfilter/af_channelmap.c +++ b/libavfilter/af_channelmap.c @@ -313,7 +313,7 @@ static int channelmap_query_formats(AVFilterContext *ctx) return 0; } -static void channelmap_filter_samples(AVFilterLink *inlink, AVFilterBufferRef *buf) +static int channelmap_filter_samples(AVFilterLink *inlink, AVFilterBufferRef *buf) { AVFilterContext *ctx = inlink->dst; AVFilterLink *outlink = ctx->outputs[0]; @@ -330,8 +330,10 @@ static void channelmap_filter_samples(AVFilterLink *inlink, AVFilterBufferRef *b if (nch_out > FF_ARRAY_ELEMS(buf->data)) { uint8_t **new_extended_data = av_mallocz(nch_out * sizeof(*buf->extended_data)); - if (!new_extended_data) - return; + if (!new_extended_data) { + avfilter_unref_buffer(buf); + return AVERROR(ENOMEM); + } if (buf->extended_data == buf->data) { buf->extended_data = new_extended_data; } else { @@ -353,7 +355,7 @@ static void channelmap_filter_samples(AVFilterLink *inlink, AVFilterBufferRef *b memcpy(buf->data, buf->extended_data, FFMIN(FF_ARRAY_ELEMS(buf->data), nch_out) * sizeof(buf->data[0])); - ff_filter_samples(outlink, buf); + return ff_filter_samples(outlink, buf); } static int channelmap_config_input(AVFilterLink *inlink) -- cgit v1.1