[FFmpeg-cvslog] lavfi/buffersrc: set channel layout if it is known.

Nicolas George git at videolan.org
Thu Feb 21 12:38:43 CET 2013


ffmpeg | branch: master | Nicolas George <nicolas.george at normalesup.org> | Sun Feb 17 15:45:12 2013 +0100| [01649c79c87cb8c12b2e7e5ab64b5ec4fd5e97ca] | committer: Nicolas George

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.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=01649c79c87cb8c12b2e7e5ab64b5ec4fd5e97ca
---

 libavfilter/buffersrc.c |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c
index 3fdf8d3..d150357 100644
--- a/libavfilter/buffersrc.c
+++ b/libavfilter/buffersrc.c
@@ -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);



More information about the ffmpeg-cvslog mailing list