opusdec: Take channels and sample rate from the caps if we have no stream header
authorSebastian Dröge <sebastian@centricular.com>
Mon, 23 Mar 2015 11:09:25 +0000 (12:09 +0100)
committerSebastian Dröge <sebastian@centricular.com>
Mon, 23 Mar 2015 11:09:25 +0000 (12:09 +0100)
ext/opus/gstopusdec.c

index 7cffd17..d3c8e8d 100644 (file)
@@ -582,6 +582,22 @@ gst_opus_dec_set_format (GstAudioDecoder * bdec, GstCaps * caps)
         goto done;
       gst_buffer_replace (&dec->vorbiscomment, buf);
     }
+  } else {
+    /* defaults if not in the caps */
+    dec->n_channels = 2;
+    dec->sample_rate = 48000;
+
+    gst_structure_get_int (s, "channels", &dec->n_channels);
+    gst_structure_get_int (s, "rate", &dec->sample_rate);
+
+    /* default stereo mapping */
+    dec->channel_mapping_family = 0;
+    dec->channel_mapping[0] = 0;
+    dec->channel_mapping[1] = 1;
+    dec->n_streams = 1;
+    dec->n_stereo_streams = 1;
+
+    gst_opus_dec_negotiate (dec, NULL);
   }
 
 done: