From 4b6bcfb3bfd2031f11dc444898d5a2664668e5e2 Mon Sep 17 00:00:00 2001 From: Flavio Oliveira Date: Wed, 21 Sep 2005 20:33:42 +0000 Subject: Setting caps on the outgoing buffers. Original commit message from CVS: Setting caps on the outgoing buffers. --- ChangeLog | 6 ++++++ ext/gsm/gstgsmenc.c | 17 ++++++++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 453903da..137a66ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,10 @@ +2005-09-20 Flavio Oliveira + + * ext/gsm/gstgsmenc.c: + Setting caps on the outgoing buffers. + Need to fix: rtpencoder does not know what it is handling and errors out + 2005-09-20 Edgard Lima * configure.ac: diff --git a/ext/gsm/gstgsmenc.c b/ext/gsm/gstgsmenc.c index 7911b47d..6a8f24ee 100644 --- a/ext/gsm/gstgsmenc.c +++ b/ext/gsm/gstgsmenc.c @@ -153,11 +153,6 @@ gst_gsmenc_chain (GstPad * pad, GstBuffer * buf) { GstGSMEnc *gsmenc; -/* - g_return_if_fail (pad != NULL); - g_return_if_fail (GST_IS_PAD (pad)); - g_return_if_fail (_data != NULL); -*/ gsmenc = GST_GSMENC (GST_OBJECT_PARENT (pad)); if (GST_IS_EVENT (buf)) { @@ -182,6 +177,7 @@ gst_gsmenc_chain (GstPad * pad, GstBuffer * buf) } else if (GST_IS_BUFFER (buf)) { gsm_signal *data; guint size; + GstCaps *tempcaps = NULL; data = (gsm_signal *) GST_BUFFER_DATA (buf); size = GST_BUFFER_SIZE (buf) / sizeof (gsm_signal); @@ -200,6 +196,10 @@ gst_gsmenc_chain (GstPad * pad, GstBuffer * buf) gsm_encode (gsmenc->state, gsmenc->buffer, (gsm_byte *) GST_BUFFER_DATA (outbuf)); + tempcaps = gst_caps_new_simple ("audio/x-gsm", + "rate", G_TYPE_INT, 8000, "channels", G_TYPE_INT, 1, NULL); + + gst_buffer_set_caps (outbuf, tempcaps); gst_pad_push (gsmenc->srcpad, outbuf); size -= (160 - gsmenc->bufsize); @@ -217,6 +217,13 @@ gst_gsmenc_chain (GstPad * pad, GstBuffer * buf) gsm_encode (gsmenc->state, data, (gsm_byte *) GST_BUFFER_DATA (outbuf)); + /* I was wondering that gst_buffer_set_caps (outbuf, GST_PAD_CAPS (gsmenc->srcpad)); + * could work, but it doens't work */ + + tempcaps = gst_caps_new_simple ("audio/x-gsm", + "rate", G_TYPE_INT, 8000, "channels", G_TYPE_INT, 1, NULL); + + gst_buffer_set_caps (outbuf, tempcaps); gst_pad_push (gsmenc->srcpad, outbuf); size -= 160; -- cgit v1.2.1