gst/law/mulaw-decode.c: Return GST_FLOW_NOT_NEGOTIATED when the caps are not set...
authorSebastian Dröge <slomo@circular-chaos.org>
Thu, 28 Feb 2008 08:37:44 +0000 (08:37 +0000)
committerSebastian Dröge <slomo@circular-chaos.org>
Thu, 28 Feb 2008 08:37:44 +0000 (08:37 +0000)
Original commit message from CVS:
* gst/law/mulaw-decode.c: (gst_mulawdec_chain):
Return GST_FLOW_NOT_NEGOTIATED when the caps are not set
yet on the srcpad. We need rate and channels before we
can do any processing. Fixes bug #519088.

ChangeLog
gst/law/mulaw-decode.c

index 1b4f029..da4876f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-02-28  Sebastian Dröge  <slomo@circular-chaos.org>
+
+       * gst/law/mulaw-decode.c: (gst_mulawdec_chain):
+       Return GST_FLOW_NOT_NEGOTIATED when the caps are not set
+       yet on the srcpad. We need rate and channels before we
+       can do any processing. Fixes bug #519088.
+
 2008-02-26  Jan Schmidt  <jan.schmidt@sun.com>
 
        * configure.ac:
index d7a858e..c39e26b 100644 (file)
@@ -153,7 +153,12 @@ gst_mulawdec_chain (GstPad * pad, GstBuffer * buffer)
   GstBuffer *outbuf;
   GstFlowReturn ret;
 
-  mulawdec = GST_MULAWDEC (gst_pad_get_parent (pad));
+  mulawdec = GST_MULAWDEC (GST_PAD_PARENT (pad));
+
+  if (G_UNLIKELY (mulawdec->srccaps == NULL)) {
+    gst_buffer_unref (buffer);
+    return GST_FLOW_NOT_NEGOTIATED;
+  }
 
   mulaw_data = (guint8 *) GST_BUFFER_DATA (buffer);
   mulaw_size = GST_BUFFER_SIZE (buffer);
@@ -179,8 +184,6 @@ gst_mulawdec_chain (GstPad * pad, GstBuffer * buffer)
 
   ret = gst_pad_push (mulawdec->srcpad, outbuf);
 
-  gst_object_unref (mulawdec);
-
   return ret;
 }