lavfi/buffersrc: check channel count changes.

This commit is contained in:
Nicolas George 2013-03-16 17:45:22 +01:00
parent 3cd342636f
commit f29c28a884

View File

@ -68,9 +68,9 @@ typedef struct {
av_log(s, AV_LOG_INFO, "Changing frame properties on the fly is not supported by all filters.\n");\ av_log(s, AV_LOG_INFO, "Changing frame properties on the fly is not supported by all filters.\n");\
} }
#define CHECK_AUDIO_PARAM_CHANGE(s, c, srate, ch_layout, format)\ #define CHECK_AUDIO_PARAM_CHANGE(s, c, srate, ch_layout, ch_count, format)\
if (c->sample_fmt != format || c->sample_rate != srate ||\ if (c->sample_fmt != format || c->sample_rate != srate ||\
c->channel_layout != ch_layout) {\ c->channel_layout != ch_layout || c->channels != ch_count) {\
av_log(s, AV_LOG_ERROR, "Changing frame properties on the fly is not supported.\n");\ av_log(s, AV_LOG_ERROR, "Changing frame properties on the fly is not supported.\n");\
return AVERROR(EINVAL);\ return AVERROR(EINVAL);\
} }
@ -138,7 +138,7 @@ static int attribute_align_arg av_buffersrc_add_frame_internal(AVFilterContext *
if (!frame->channel_layout) if (!frame->channel_layout)
frame->channel_layout = s->channel_layout; frame->channel_layout = s->channel_layout;
CHECK_AUDIO_PARAM_CHANGE(ctx, s, frame->sample_rate, frame->channel_layout, CHECK_AUDIO_PARAM_CHANGE(ctx, s, frame->sample_rate, frame->channel_layout,
frame->format); av_frame_get_channels(frame), frame->format);
break; break;
default: default:
return AVERROR(EINVAL); return AVERROR(EINVAL);