flacenc: fix get_caps function some more so that all structures have channel info
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Wed, 22 Feb 2012 17:39:16 +0000 (17:39 +0000)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Wed, 22 Feb 2012 17:39:16 +0000 (17:39 +0000)
Set channels and channel-layout on the right structure; that is, the
structure we are going to append to the caps we are building, and not
the structure we are using as a template for all the structures. Fixes
first structure of the returned caps not having any channel info set
on it.

ext/flac/gstflacenc.c

index 858d097..f53a241 100644 (file)
@@ -644,13 +644,13 @@ gst_flac_enc_getcaps (GstAudioEncoder * enc, GstCaps * filter)
       s2 = gst_structure_copy (s);
 
       if (i == 1) {
-        gst_structure_set (s, "channels", G_TYPE_INT, 1, NULL);
+        gst_structure_set (s2, "channels", G_TYPE_INT, 1, NULL);
       } else {
         guint64 channel_mask;
 
         gst_audio_channel_positions_to_mask (channel_positions[i - 1], i,
             &channel_mask);
-        gst_structure_set (s, "channels", G_TYPE_INT, i, "channel-mask",
+        gst_structure_set (s2, "channels", G_TYPE_INT, i, "channel-mask",
             GST_TYPE_BITMASK, channel_mask, NULL);
       }