avauddec: fix unnecessary reconfiguration if the audio layout isn't specified
authorTim-Philipp Müller <tim@centricular.com>
Thu, 29 Sep 2022 11:42:21 +0000 (12:42 +0100)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Sat, 1 Oct 2022 09:28:40 +0000 (09:28 +0000)
It would constantly want to renegotiate (and spam the debug log) even
though the channel layout hasn't actually changed. We use the same
fallback in gst_ffmpegauddec_negotiate() already.

This happens with WMA files for example.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3103>

subprojects/gst-libav/ext/libav/gstavauddec.c

index 4bdb197..68ab1dc 100644 (file)
@@ -358,6 +358,9 @@ settings_changed (GstFFMpegAudDec * ffmpegdec, AVFrame * frame)
   GstAudioLayout layout;
   gint channels = av_get_channel_layout_nb_channels (frame->channel_layout);
 
+  if (channels == 0)
+    channels = frame->channels;
+
   format = gst_ffmpeg_smpfmt_to_audioformat (frame->format, &layout);
   if (format == GST_AUDIO_FORMAT_UNKNOWN)
     return TRUE;