From 49668d6a1ab2dd1600de237546539f16794e83df Mon Sep 17 00:00:00 2001 From: Helge Norberg Date: Fri, 17 Jun 2016 13:44:33 +0200 Subject: [PATCH] Protect from channel_layout not being set in AVFrame --- modules/ffmpeg/ffmpeg_pipeline_backend_internal.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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) -- 2.39.2