]> git.sesse.net Git - casparcg/commitdiff
Protect from channel_layout not being set in AVFrame
authorHelge Norberg <helge.norberg@svt.se>
Fri, 17 Jun 2016 11:44:33 +0000 (13:44 +0200)
committerHelge Norberg <helge.norberg@svt.se>
Fri, 17 Jun 2016 11:44:33 +0000 (13:44 +0200)
modules/ffmpeg/ffmpeg_pipeline_backend_internal.cpp

index 6fe13ee7e5c02b01d072d23c1ad07ca7e10793d5..feac4e0eafb6693544f713b27ea07cfdb40fd65a 100644 (file)
@@ -1195,9 +1195,13 @@ private:
                        auto& av_frame  = *av_frames_per_stream.at(i);
                        auto& stream    = source_audio_streams_.at(i);
 
+                       auto channel_layout = av_frame.channel_layout == 0
+                                       ? av_get_default_channel_layout(av_frame.channels)
+                                       : av_frame.channel_layout;
+
                        set_if_changed(changed, stream.sampleformat, static_cast<AVSampleFormat>(av_frame.format));
                        set_if_changed(changed, stream.num_channels, av_frame.channels);
-                       set_if_changed(changed, stream.channel_layout, av_frame.channel_layout);
+                       set_if_changed(changed, stream.channel_layout, channel_layout);
                }
 
                if (changed)