summaryrefslogtreecommitdiffstats
path: root/gst/law
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2008-02-28 08:37:44 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2008-02-28 08:37:44 +0000
commit593528c5f6bde202cf4f420afd077084ca153dd3 (patch)
treed07485ac1074495c4dd64cd8f8ff7d8170b4eeb4 /gst/law
parentc34fa140d0c16ce688e42947a8668049ce22cdb7 (diff)
gst/law/mulaw-decode.c: Return GST_FLOW_NOT_NEGOTIATED when the caps are not set yet on the srcpad. We need rate and ...
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.
Diffstat (limited to 'gst/law')
-rw-r--r--gst/law/mulaw-decode.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gst/law/mulaw-decode.c b/gst/law/mulaw-decode.c
index d7a858e4..c39e26b3 100644
--- a/gst/law/mulaw-decode.c
+++ b/gst/law/mulaw-decode.c
@@ -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;
}