diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2006-05-24 10:00:50 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2006-05-24 10:00:50 +0000 |
commit | 7b39d55850d32a2ecfb5c7552d2cd542f7897db5 (patch) | |
tree | 1a198a70d86b2c44b6042344d2b0c650aea20b81 /gst/law/mulaw-decode.c | |
parent | d4e266cd6dd1d0aad4942f48fe427f2a6ccf870e (diff) |
gst/law/: Some cleanups in the chain functions.
Original commit message from CVS:
* gst/law/alaw-decode.c: (gst_alawdec_chain):
* gst/law/alaw-decode.h:
* gst/law/alaw-encode.c: (gst_alawenc_chain):
* gst/law/alaw-encode.h:
* gst/law/mulaw-decode.c: (gst_mulawdec_chain):
* gst/law/mulaw-decode.h:
* gst/law/mulaw-encode.c: (gst_mulawenc_chain):
* gst/law/mulaw-encode.h:
Some cleanups in the chain functions.
Remove some GStreamer 0.0.2 bits.
Diffstat (limited to 'gst/law/mulaw-decode.c')
-rw-r--r-- | gst/law/mulaw-decode.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/gst/law/mulaw-decode.c b/gst/law/mulaw-decode.c index 983c814b..d9babea4 100644 --- a/gst/law/mulaw-decode.c +++ b/gst/law/mulaw-decode.c @@ -205,20 +205,33 @@ gst_mulawdec_chain (GstPad * pad, GstBuffer * buffer) GstMuLawDec *mulawdec; gint16 *linear_data; guint8 *mulaw_data; + guint mulaw_size; GstBuffer *outbuf; + GstFlowReturn ret; - mulawdec = GST_MULAWDEC (GST_OBJECT_PARENT (pad)); + mulawdec = GST_MULAWDEC (gst_pad_get_parent (pad)); mulaw_data = (guint8 *) GST_BUFFER_DATA (buffer); - outbuf = gst_buffer_new_and_alloc (GST_BUFFER_SIZE (buffer) * 2); + mulaw_size = GST_BUFFER_SIZE (buffer); + + outbuf = gst_buffer_new_and_alloc (mulaw_size * 2); + linear_data = (gint16 *) GST_BUFFER_DATA (outbuf); + + /* copy discont flag */ + if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT)) + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buffer); GST_BUFFER_DURATION (outbuf) = GST_BUFFER_DURATION (buffer); gst_buffer_set_caps (outbuf, GST_PAD_CAPS (mulawdec->srcpad)); - linear_data = (gint16 *) GST_BUFFER_DATA (outbuf); - mulaw_decode (mulaw_data, linear_data, GST_BUFFER_SIZE (buffer)); + mulaw_decode (mulaw_data, linear_data, mulaw_size); gst_buffer_unref (buffer); - return gst_pad_push (mulawdec->srcpad, outbuf); + ret = gst_pad_push (mulawdec->srcpad, outbuf); + + gst_object_unref (mulawdec); + + return ret; } |