flacdec: Caps may have changed on FLAC metadata change
authorJochen Henneberg <jh@henneberg-systemdesign.com>
Sat, 27 Oct 2018 11:36:16 +0000 (13:36 +0200)
committerSebastian Dröge <slomo@coaxion.net>
Fri, 14 Dec 2018 09:22:33 +0000 (09:22 +0000)
If the decoder signals metadata change we need to update the output
format and negotiate with downstream elements.

ext/flac/gstflacdec.c

index b34baf1..b76b724 100644 (file)
@@ -489,6 +489,11 @@ gst_flac_dec_metadata_cb (const FLAC__StreamDecoder * decoder,
           metadata->data.stream_info.sample_rate,
           metadata->data.stream_info.channels, position);
 
+      gst_audio_decoder_set_output_format (GST_AUDIO_DECODER (flacdec),
+          &flacdec->info);
+
+      gst_audio_decoder_negotiate (GST_AUDIO_DECODER (flacdec));
+
       GST_DEBUG_OBJECT (flacdec, "blocksize: min=%u, max=%u",
           flacdec->min_blocksize, flacdec->max_blocksize);
       GST_DEBUG_OBJECT (flacdec, "sample rate: %u, channels: %u",