lavfi/buffersrc: set channel layout if it is known.
If buffersrc was configured for frames with an unknown layout, the incoming frames will have channel_layout = 0. If the format negotiation has selected a known (and compatible) channel layout for the link, the frame is assumed to have that layout, the field must be set before injecting the frame in the filters.
This commit is contained in:
parent
d714576037
commit
01649c79c8
@ -121,6 +121,8 @@ int av_buffersrc_add_ref(AVFilterContext *s, AVFilterBufferRef *buf, int flags)
|
||||
CHECK_VIDEO_PARAM_CHANGE(s, c, buf->video->w, buf->video->h, buf->format);
|
||||
break;
|
||||
case AVMEDIA_TYPE_AUDIO:
|
||||
if (!buf->audio->channel_layout)
|
||||
buf->audio->channel_layout = c->channel_layout;
|
||||
CHECK_AUDIO_PARAM_CHANGE(s, c, buf->audio->sample_rate, buf->audio->channel_layout,
|
||||
buf->format);
|
||||
break;
|
||||
@ -370,6 +372,8 @@ static int config_props(AVFilterLink *link)
|
||||
link->sample_aspect_ratio = c->pixel_aspect;
|
||||
break;
|
||||
case AVMEDIA_TYPE_AUDIO:
|
||||
if (!c->channel_layout)
|
||||
c->channel_layout = link->channel_layout;
|
||||
break;
|
||||
default:
|
||||
return AVERROR(EINVAL);
|
||||
|
Loading…
Reference in New Issue
Block a user