From: Helge Norberg Date: Fri, 17 Jun 2016 11:44:33 +0000 (+0200) Subject: Protect from channel_layout not being set in AVFrame X-Git-Tag: 2.1.0_Beta1~74 X-Git-Url: https://git.sesse.net/?p=casparcg;a=commitdiff_plain;h=49668d6a1ab2dd1600de237546539f16794e83df Protect from channel_layout not being set in AVFrame --- diff --git a/modules/ffmpeg/ffmpeg_pipeline_backend_internal.cpp b/modules/ffmpeg/ffmpeg_pipeline_backend_internal.cpp index 6fe13ee7e..feac4e0ea 100644 --- a/modules/ffmpeg/ffmpeg_pipeline_backend_internal.cpp +++ b/modules/ffmpeg/ffmpeg_pipeline_backend_internal.cpp @@ -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(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)