From 7964bd1ed81985a5a639f2640fdd9c2459b70dda Mon Sep 17 00:00:00 2001 From: mersad Date: Tue, 1 Apr 2008 11:00:43 +0000 Subject: gst/law/: Make negotiation a bit modern. Original commit message from CVS: Based on patch by: mersad * gst/law/alaw-decode.c: (gst_alaw_dec_sink_setcaps), (gst_alaw_dec_chain), (gst_alaw_dec_change_state): * gst/law/alaw-decode.h: * gst/law/alaw-encode.c: (gst_alaw_enc_chain): * gst/law/mulaw-decode.c: (mulawdec_sink_setcaps), (gst_mulawdec_chain), (gst_mulawdec_change_state): * gst/law/mulaw-decode.h: * gst/law/mulaw-encode.c: (gst_mulawenc_chain): Make negotiation a bit modern. Use pad_alloc. Fixes #525359. --- gst/law/mulaw-encode.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'gst/law/mulaw-encode.c') diff --git a/gst/law/mulaw-encode.c b/gst/law/mulaw-encode.c index 73360285..e926b992 100644 --- a/gst/law/mulaw-encode.c +++ b/gst/law/mulaw-encode.c @@ -230,7 +230,13 @@ gst_mulawenc_chain (GstPad * pad, GstBuffer * buffer) GST_SECOND, mulawenc->rate * mulawenc->channels); } - outbuf = gst_buffer_new_and_alloc (mulaw_size); + ret = + gst_pad_alloc_buffer_and_set_caps (mulawenc->srcpad, + GST_BUFFER_OFFSET_NONE, mulaw_size, GST_PAD_CAPS (mulawenc->srcpad), + &outbuf); + if (ret != GST_FLOW_OK) + goto alloc_failed; + mulaw_data = (guint8 *) GST_BUFFER_DATA (outbuf); /* copy discont flag */ @@ -255,7 +261,15 @@ done: not_negotiated: { + GST_DEBUG_OBJECT (mulawenc, "no format negotiated"); ret = GST_FLOW_NOT_NEGOTIATED; + gst_buffer_unref (buffer); + goto done; + } +alloc_failed: + { + GST_DEBUG_OBJECT (mulawenc, "pad alloc failed"); + gst_buffer_unref (buffer); goto done; } } -- cgit