]> git.sesse.net Git - ffmpeg/blobdiff - libavutil/frame.c
Merge remote-tracking branch 'qatar/master'
[ffmpeg] / libavutil / frame.c
index 39e2a1313a6a8e48fb3f63e4fe2069393fa193cb..62a4a6d2868e6e05bd495bbe1a5e2046bbefd537 100644 (file)
@@ -183,11 +183,17 @@ fail:
 
 static int get_audio_buffer(AVFrame *frame, int align)
 {
-    int channels = frame->channels;
+    int channels;
     int planar   = av_sample_fmt_is_planar(frame->format);
-    int planes   = planar ? channels : 1;
+    int planes;
     int ret, i;
 
+    if (!frame->channels)
+        frame->channels = av_get_channel_layout_nb_channels(frame->channel_layout);
+
+    channels = frame->channels;
+    planes = planar ? channels : 1;
+
     CHECK_CHANNELS_CONSISTENCY(frame);
     if (!frame->linesize[0]) {
         ret = av_samples_get_buffer_size(&frame->linesize[0], channels,