Skip to content

avauddec: fix unnecessary reconfiguration if the audio layout isn't specified

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:

Debug log
gstavauddec.c:671:gst_ffmpegauddec_handle_frame:<avdec_wmav2-0> Received new data of size 5945, offset:18446744073709551615, ts:0:03:39.149000000, dur:0:00:00.368156500
 gstavauddec.c:394:gst_ffmpegauddec_negotiate:<avdec_wmav2-0> Renegotiating audio from 44100Hz@2channels (28, interleaved=0) to 44100Hz@2channels (28, interleaved=0)
 gstavauddec.c:496:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> Creating output buffer
 gstavauddec.c:520:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> Buffer created. Size: 131072
 gstavauddec.c:546:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> return flow 0, out 0x7fb8d8003b40, got_frame 1
 gstavauddec.c:573:gst_ffmpegauddec_frame:<avdec_wmav2-0> Decoded data, buffer buffer: 0x7fb8d8003b40, pts 99:99:99.999999999, dts 99:99:99.999999999, dur 99:99:99.999999999, size 131072, offset none, offset_end none, flags 0x0
 gstavauddec.c:546:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> return flow 0, out (nil), got_frame 0
 gstavauddec.c:578:gst_ffmpegauddec_frame:<avdec_wmav2-0> We didn't get a decoded buffer
 gstavauddec.c:671:gst_ffmpegauddec_handle_frame:<avdec_wmav2-0> Received new data of size 5945, offset:18446744073709551615, ts:0:03:39.521000000, dur:0:00:00.368156500
 gstavauddec.c:394:gst_ffmpegauddec_negotiate:<avdec_wmav2-0> Renegotiating audio from 44100Hz@2channels (28, interleaved=0) to 44100Hz@2channels (28, interleaved=0)
 gstavauddec.c:496:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> Creating output buffer
 gstavauddec.c:520:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> Buffer created. Size: 131072
 gstavauddec.c:546:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> return flow 0, out 0x7fb8d8003120, got_frame 1
 gstavauddec.c:573:gst_ffmpegauddec_frame:<avdec_wmav2-0> Decoded data, buffer buffer: 0x7fb8d8003120, pts 99:99:99.999999999, dts 99:99:99.999999999, dur 99:99:99.999999999, size 131072, offset none, offset_end none, flags 0x0
 gstavauddec.c:546:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> return flow 0, out (nil), got_frame 0
 gstavauddec.c:578:gst_ffmpegauddec_frame:<avdec_wmav2-0> We didn't get a decoded buffer
 gstavauddec.c:671:gst_ffmpegauddec_handle_frame:<avdec_wmav2-0> Received new data of size 5945, offset:18446744073709551615, ts:0:03:39.892000000, dur:0:00:00.368156500
 gstavauddec.c:394:gst_ffmpegauddec_negotiate:<avdec_wmav2-0> Renegotiating audio from 44100Hz@2channels (28, interleaved=0) to 44100Hz@2channels (28, interleaved=0)
 gstavauddec.c:496:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> Creating output buffer

Merge request reports