ext/lame/gstlame.c: Fix up case where there is no peer, in which case _get_allowed_ca...
authorTim-Philipp Müller <tim@centricular.net>
Wed, 26 Sep 2007 13:40:35 +0000 (13:40 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Wed, 26 Sep 2007 13:40:35 +0000 (13:40 +0000)
Original commit message from CVS:
* ext/lame/gstlame.c:
Fix up case where there is no peer, in which case
_get_allowed_caps() will return NULL.

ext/lame/gstlame.c

index 7986721..a341ef5 100644 (file)
@@ -1162,9 +1162,7 @@ gst_lame_setup (GstLame * lame)
 }G_STMT_END
 
   int retval;
-  GstCaps *src_caps;
-  GstStructure *structure;
-  gint samplerate;
+  GstCaps *allowed_caps;
 
   GST_DEBUG_OBJECT (lame, "starting setup");
 
@@ -1185,15 +1183,24 @@ gst_lame_setup (GstLame * lame)
   lame_set_in_samplerate (lame->lgf, lame->samplerate);
 
   /* let lame choose default samplerate unless outgoing sample rate is fixed */
-  src_caps = gst_pad_get_allowed_caps (lame->srcpad);
-  structure = gst_caps_get_structure (src_caps, 0);
+  allowed_caps = gst_pad_get_allowed_caps (lame->srcpad);
+
+  if (allowed_caps != NULL) {
+    GstStructure *structure;
+    gint samplerate;
 
-  if (gst_structure_get_int (structure, "rate", &samplerate)) {
-    GST_DEBUG_OBJECT (lame, "Setting sample rate to %d as fixed in src caps",
-        samplerate);
-    lame_set_out_samplerate (lame->lgf, samplerate);
+    structure = gst_caps_get_structure (allowed_caps, 0);
+
+    if (gst_structure_get_int (structure, "rate", &samplerate)) {
+      GST_DEBUG_OBJECT (lame, "Setting sample rate to %d as fixed in src caps",
+          samplerate);
+      lame_set_out_samplerate (lame->lgf, samplerate);
+    } else {
+      GST_DEBUG_OBJECT (lame, "Letting lame choose sample rate");
+      lame_set_out_samplerate (lame->lgf, 0);
+    }
   } else {
-    GST_DEBUG_OBJECT (lame, "Letting lame choose sample rate");
+    GST_DEBUG_OBJECT (lame, "No peer yet, letting lame choose sample rate");
     lame_set_out_samplerate (lame->lgf, 0);
   }