From b0fbb1725f0718b0384c4b4fd61cb072272f34d5 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 13 Jun 2011 13:25:49 +0200 Subject: [PATCH] rtp: fix for API changes in the base classes --- gst/rtp/Makefile.am | 2 - gst/rtp/gstrtp.c | 4 -- gst/rtp/gstrtpac3pay.c | 14 ++-- gst/rtp/gstrtpbvpay.c | 5 +- gst/rtp/gstrtpceltdepay.c | 2 - gst/rtp/gstrtpceltpay.c | 5 +- gst/rtp/gstrtpdepay.c | 159 ---------------------------------------------- gst/rtp/gstrtpdepay.h | 55 ---------------- gst/rtp/gstrtpg722pay.c | 5 +- gst/rtp/gstrtpg726pay.c | 2 +- gst/rtp/gstrtpilbcpay.c | 5 +- gst/rtp/gstrtpmpapay.c | 14 ++-- gst/rtp/gstrtpmpvpay.c | 14 ++-- 13 files changed, 37 insertions(+), 249 deletions(-) delete mode 100644 gst/rtp/gstrtpdepay.c delete mode 100644 gst/rtp/gstrtpdepay.h diff --git a/gst/rtp/Makefile.am b/gst/rtp/Makefile.am index dcccb66..3df2cac 100644 --- a/gst/rtp/Makefile.am +++ b/gst/rtp/Makefile.am @@ -4,7 +4,6 @@ libgstrtp_la_SOURCES = \ fnv1hash.c \ gstrtp.c \ gstrtpchannels.c \ - gstrtpdepay.c \ gstrtpac3depay.c \ gstrtpac3pay.c \ gstrtpbvdepay.c \ @@ -148,7 +147,6 @@ noinst_HEADERS = \ gstrtpmp4gpay.h \ gstrtpmp4adepay.h \ gstrtpmp4apay.h \ - gstrtpdepay.h \ gstasteriskh263.h \ gstrtpqcelpdepay.h \ gstrtpqdmdepay.h \ diff --git a/gst/rtp/gstrtp.c b/gst/rtp/gstrtp.c index 721cee3..7de6da3 100644 --- a/gst/rtp/gstrtp.c +++ b/gst/rtp/gstrtp.c @@ -21,7 +21,6 @@ #include "config.h" #endif -#include "gstrtpdepay.h" #include "gstrtpac3depay.h" #include "gstrtpac3pay.h" #include "gstrtpbvdepay.h" @@ -94,9 +93,6 @@ static gboolean plugin_init (GstPlugin * plugin) { - if (!gst_rtp_depay_plugin_init (plugin)) - return FALSE; - if (!gst_rtp_ac3_depay_plugin_init (plugin)) return FALSE; diff --git a/gst/rtp/gstrtpac3pay.c b/gst/rtp/gstrtpac3pay.c index b29abd7..851b92d 100644 --- a/gst/rtp/gstrtpac3pay.c +++ b/gst/rtp/gstrtpac3pay.c @@ -55,7 +55,8 @@ static GstStateChangeReturn gst_rtp_ac3_pay_change_state (GstElement * element, static gboolean gst_rtp_ac3_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps); -static gboolean gst_rtp_ac3_pay_handle_event (GstPad * pad, GstEvent * event); +static gboolean gst_rtp_ac3_pay_handle_event (GstBaseRTPPayload * payload, + GstEvent * event); static GstFlowReturn gst_rtp_ac3_pay_flush (GstRtpAC3Pay * rtpac3pay); static GstFlowReturn gst_rtp_ac3_pay_handle_buffer (GstBaseRTPPayload * payload, GstBuffer * buffer); @@ -142,11 +143,12 @@ gst_rtp_ac3_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps) } static gboolean -gst_rtp_ac3_pay_handle_event (GstPad * pad, GstEvent * event) +gst_rtp_ac3_pay_handle_event (GstBaseRTPPayload * payload, GstEvent * event) { + gboolean res; GstRtpAC3Pay *rtpac3pay; - rtpac3pay = GST_RTP_AC3_PAY (gst_pad_get_parent (pad)); + rtpac3pay = GST_RTP_AC3_PAY (payload); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_EOS: @@ -160,10 +162,10 @@ gst_rtp_ac3_pay_handle_event (GstPad * pad, GstEvent * event) break; } - gst_object_unref (rtpac3pay); + res = + GST_BASE_RTP_PAYLOAD_CLASS (parent_class)->handle_event (payload, event); - /* FALSE to let the parent handle the event as well */ - return FALSE; + return res; } struct frmsize_s diff --git a/gst/rtp/gstrtpbvpay.c b/gst/rtp/gstrtpbvpay.c index 5184826..2066d9c 100644 --- a/gst/rtp/gstrtpbvpay.c +++ b/gst/rtp/gstrtpbvpay.c @@ -54,7 +54,7 @@ static GstStaticPadTemplate gst_rtp_bv_pay_src_template = static GstCaps *gst_rtp_bv_pay_sink_getcaps (GstBaseRTPPayload * payload, - GstPad * pad); + GstPad * pad, GstCaps * filter); static gboolean gst_rtp_bv_pay_sink_setcaps (GstBaseRTPPayload * payload, GstCaps * caps); @@ -173,7 +173,8 @@ mode_changed: /* we return the padtemplate caps with the mode field fixated to a value if we * can */ static GstCaps * -gst_rtp_bv_pay_sink_getcaps (GstBaseRTPPayload * rtppayload, GstPad * pad) +gst_rtp_bv_pay_sink_getcaps (GstBaseRTPPayload * rtppayload, GstPad * pad, + GstCaps * filter) { GstCaps *otherpadcaps; GstCaps *caps; diff --git a/gst/rtp/gstrtpceltdepay.c b/gst/rtp/gstrtpceltdepay.c index b0a63c1..6472b30 100644 --- a/gst/rtp/gstrtpceltdepay.c +++ b/gst/rtp/gstrtpceltdepay.c @@ -175,13 +175,11 @@ gst_rtp_celt_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps) res = gst_pad_set_caps (depayload->srcpad, srccaps); gst_caps_unref (srccaps); - gst_buffer_set_caps (buf, GST_PAD_CAPS (depayload->srcpad)); gst_base_rtp_depayload_push (GST_BASE_RTP_DEPAYLOAD (rtpceltdepay), buf); buf = gst_buffer_new_and_alloc (sizeof (gst_rtp_celt_comment)); gst_buffer_fill (buf, 0, gst_rtp_celt_comment, sizeof (gst_rtp_celt_comment)); - gst_buffer_set_caps (buf, GST_PAD_CAPS (depayload->srcpad)); gst_base_rtp_depayload_push (GST_BASE_RTP_DEPAYLOAD (rtpceltdepay), buf); return res; diff --git a/gst/rtp/gstrtpceltpay.c b/gst/rtp/gstrtpceltpay.c index 6c8f0b9..176de7e 100644 --- a/gst/rtp/gstrtpceltpay.c +++ b/gst/rtp/gstrtpceltpay.c @@ -58,7 +58,7 @@ static GstStateChangeReturn gst_rtp_celt_pay_change_state (GstElement * static gboolean gst_rtp_celt_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps); static GstCaps *gst_rtp_celt_pay_getcaps (GstBaseRTPPayload * payload, - GstPad * pad); + GstPad * pad, GstCaps * filter); static GstFlowReturn gst_rtp_celt_pay_handle_buffer (GstBaseRTPPayload * payload, GstBuffer * buffer); @@ -157,7 +157,8 @@ gst_rtp_celt_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps) static GstCaps * -gst_rtp_celt_pay_getcaps (GstBaseRTPPayload * payload, GstPad * pad) +gst_rtp_celt_pay_getcaps (GstBaseRTPPayload * payload, GstPad * pad, + GstCaps * filter) { GstCaps *otherpadcaps; GstCaps *caps; diff --git a/gst/rtp/gstrtpdepay.c b/gst/rtp/gstrtpdepay.c deleted file mode 100644 index cabdcda..0000000 --- a/gst/rtp/gstrtpdepay.c +++ /dev/null @@ -1,159 +0,0 @@ -/* GStreamer - * Copyright (C) <2005> Wim Taymans - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ -/* Element-Checklist-Version: 5 */ - -#include "gstrtpdepay.h" - -GST_DEBUG_CATEGORY_STATIC (rtpdepay_debug); -#define GST_CAT_DEFAULT (rtpdepay_debug) - -static GstStaticPadTemplate gst_rtp_depay_src_rtp_template = -GST_STATIC_PAD_TEMPLATE ("srcrtp", - GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("application/x-rtp") - ); - -static GstStaticPadTemplate gst_rtp_depay_src_rtcp_template = -GST_STATIC_PAD_TEMPLATE ("srcrtcp", - GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("application/x-rtcp") - ); - -static GstStaticPadTemplate gst_rtp_depay_sink_rtp_template = -GST_STATIC_PAD_TEMPLATE ("sinkrtp", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("application/x-rtp") - ); - -static GstStaticPadTemplate gst_rtp_depay_sink_rtcp_template = -GST_STATIC_PAD_TEMPLATE ("sinkrtcp", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("application/x-rtcp") - ); - -static GstCaps *gst_rtp_depay_getcaps (GstPad * pad); -static GstFlowReturn gst_rtp_depay_chain_rtp (GstPad * pad, GstBuffer * buffer); -static GstFlowReturn gst_rtp_depay_chain_rtcp (GstPad * pad, - GstBuffer * buffer); - -G_DEFINE_TYPE (GstRTPDepay, gst_rtp_depay, GST_TYPE_ELEMENT); - -static void -gst_rtp_depay_class_init (GstRTPDepayClass * klass) -{ - GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); - - GST_DEBUG_CATEGORY_INIT (rtpdepay_debug, "rtpdepay", 0, "RTP decoder"); - - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_rtp_depay_src_rtp_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_rtp_depay_src_rtcp_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_rtp_depay_sink_rtp_template)); - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_rtp_depay_sink_rtcp_template)); - - gst_element_class_set_details_simple (gstelement_class, - "Dummy RTP session manager", "Codec/Depayloader/Network/RTP", - "Accepts raw RTP and RTCP packets and sends them forward", - "Wim Taymans "); -} - -static void -gst_rtp_depay_init (GstRTPDepay * rtpdepay) -{ - /* the input rtp pad */ - rtpdepay->sink_rtp = - gst_pad_new_from_static_template (&gst_rtp_depay_sink_rtp_template, - "sinkrtp"); - gst_element_add_pad (GST_ELEMENT (rtpdepay), rtpdepay->sink_rtp); - gst_pad_set_getcaps_function (rtpdepay->sink_rtp, gst_rtp_depay_getcaps); - gst_pad_set_chain_function (rtpdepay->sink_rtp, gst_rtp_depay_chain_rtp); - - /* the input rtcp pad */ - rtpdepay->sink_rtcp = - gst_pad_new_from_static_template (&gst_rtp_depay_sink_rtcp_template, - "sinkrtcp"); - gst_element_add_pad (GST_ELEMENT (rtpdepay), rtpdepay->sink_rtcp); - gst_pad_set_chain_function (rtpdepay->sink_rtcp, gst_rtp_depay_chain_rtcp); - - /* the output rtp pad */ - rtpdepay->src_rtp = - gst_pad_new_from_static_template (&gst_rtp_depay_src_rtp_template, - "srcrtp"); - gst_pad_set_getcaps_function (rtpdepay->src_rtp, gst_rtp_depay_getcaps); - gst_element_add_pad (GST_ELEMENT (rtpdepay), rtpdepay->src_rtp); - - /* the output rtcp pad */ - rtpdepay->src_rtcp = - gst_pad_new_from_static_template (&gst_rtp_depay_src_rtcp_template, - "srcrtcp"); - gst_element_add_pad (GST_ELEMENT (rtpdepay), rtpdepay->src_rtcp); -} - -static GstCaps * -gst_rtp_depay_getcaps (GstPad * pad) -{ - GstRTPDepay *src; - GstPad *other; - GstCaps *caps; - - src = GST_RTP_DEPAY (GST_PAD_PARENT (pad)); - - other = pad == src->src_rtp ? src->sink_rtp : src->src_rtp; - - caps = gst_pad_peer_get_caps (other); - - if (caps == NULL) - caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad)); - - return caps; -} - -static GstFlowReturn -gst_rtp_depay_chain_rtp (GstPad * pad, GstBuffer * buffer) -{ - GstRTPDepay *src; - - src = GST_RTP_DEPAY (GST_PAD_PARENT (pad)); - - GST_DEBUG ("got rtp packet"); - return gst_pad_push (src->src_rtp, buffer); -} - -static GstFlowReturn -gst_rtp_depay_chain_rtcp (GstPad * pad, GstBuffer * buffer) -{ - GST_DEBUG ("got rtcp packet"); - - gst_buffer_unref (buffer); - return GST_FLOW_OK; -} - -gboolean -gst_rtp_depay_plugin_init (GstPlugin * plugin) -{ - return gst_element_register (plugin, "rtpdepay", - GST_RANK_SECONDARY, GST_TYPE_RTP_DEPAY); -} diff --git a/gst/rtp/gstrtpdepay.h b/gst/rtp/gstrtpdepay.h deleted file mode 100644 index b2b4683..0000000 --- a/gst/rtp/gstrtpdepay.h +++ /dev/null @@ -1,55 +0,0 @@ -/* GStreamer - * Copyright (C) <2005> Wim Taymans - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __GST_RTP_DEPAY_H__ -#define __GST_RTP_DEPAY_H__ - -#include - -G_BEGIN_DECLS - -#define GST_TYPE_RTP_DEPAY (gst_rtp_depay_get_type()) -#define GST_IS_RTP_DEPAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_DEPAY)) -#define GST_IS_RTP_DEPAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_DEPAY)) -#define GST_RTP_DEPAY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_DEPAY, GstRTPDepay)) -#define GST_RTP_DEPAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_DEPAY, GstRTPDepayClass)) - -typedef struct _GstRTPDepay GstRTPDepay; -typedef struct _GstRTPDepayClass GstRTPDepayClass; - -struct _GstRTPDepay { - GstElement element; - - GstPad *sink_rtp; - GstPad *sink_rtcp; - GstPad *src_rtp; - GstPad *src_rtcp; -}; - -struct _GstRTPDepayClass { - GstElementClass parent_class; -}; - -gboolean gst_rtp_depay_plugin_init (GstPlugin * plugin); - -GType gst_rtp_depay_get_type(void); - -G_END_DECLS - -#endif /* __GST_RTP_DEPAY_H__ */ diff --git a/gst/rtp/gstrtpg722pay.c b/gst/rtp/gstrtpg722pay.c index b2c8ff4..362e4bc 100644 --- a/gst/rtp/gstrtpg722pay.c +++ b/gst/rtp/gstrtpg722pay.c @@ -54,7 +54,7 @@ GST_STATIC_PAD_TEMPLATE ("src", static gboolean gst_rtp_g722_pay_setcaps (GstBaseRTPPayload * basepayload, GstCaps * caps); static GstCaps *gst_rtp_g722_pay_getcaps (GstBaseRTPPayload * rtppayload, - GstPad * pad); + GstPad * pad, GstCaps * filter); #define gst_rtp_g722_pay_parent_class parent_class G_DEFINE_TYPE (GstRtpG722Pay, gst_rtp_g722_pay, @@ -177,7 +177,8 @@ no_channels: } static GstCaps * -gst_rtp_g722_pay_getcaps (GstBaseRTPPayload * rtppayload, GstPad * pad) +gst_rtp_g722_pay_getcaps (GstBaseRTPPayload * rtppayload, GstPad * pad, + GstCaps * filter) { GstCaps *otherpadcaps; GstCaps *caps; diff --git a/gst/rtp/gstrtpg726pay.c b/gst/rtp/gstrtpg726pay.c index 71ac107..12b772f 100644 --- a/gst/rtp/gstrtpg726pay.c +++ b/gst/rtp/gstrtpg726pay.c @@ -181,7 +181,7 @@ gst_rtp_g726_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps) GST_DEBUG_OBJECT (payload, "selected base encoding %s", encoding_name); /* now see if we need to produce AAL2 or not */ - peercaps = gst_pad_peer_get_caps (payload->srcpad); + peercaps = gst_pad_peer_get_caps (payload->srcpad, NULL); if (peercaps) { GstCaps *filter, *intersect; gchar *capsstr; diff --git a/gst/rtp/gstrtpilbcpay.c b/gst/rtp/gstrtpilbcpay.c index 0fb0429..3460e7f 100644 --- a/gst/rtp/gstrtpilbcpay.c +++ b/gst/rtp/gstrtpilbcpay.c @@ -49,7 +49,7 @@ GST_STATIC_PAD_TEMPLATE ("src", static GstCaps *gst_rtp_ilbc_pay_sink_getcaps (GstBaseRTPPayload * payload, - GstPad * pad); + GstPad * pad, GstCaps * filter); static gboolean gst_rtp_ilbc_pay_sink_setcaps (GstBaseRTPPayload * payload, GstCaps * caps); @@ -175,7 +175,8 @@ mode_changed: /* we return the padtemplate caps with the mode field fixated to a value if we * can */ static GstCaps * -gst_rtp_ilbc_pay_sink_getcaps (GstBaseRTPPayload * rtppayload, GstPad * pad) +gst_rtp_ilbc_pay_sink_getcaps (GstBaseRTPPayload * rtppayload, GstPad * pad, + GstCaps * filter) { GstCaps *otherpadcaps; GstCaps *caps; diff --git a/gst/rtp/gstrtpmpapay.c b/gst/rtp/gstrtpmpapay.c index 4bfd55f..d4ab883 100644 --- a/gst/rtp/gstrtpmpapay.c +++ b/gst/rtp/gstrtpmpapay.c @@ -58,7 +58,8 @@ static GstStateChangeReturn gst_rtp_mpa_pay_change_state (GstElement * element, static gboolean gst_rtp_mpa_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps); -static gboolean gst_rtp_mpa_pay_handle_event (GstPad * pad, GstEvent * event); +static gboolean gst_rtp_mpa_pay_handle_event (GstBaseRTPPayload * payload, + GstEvent * event); static GstFlowReturn gst_rtp_mpa_pay_flush (GstRtpMPAPay * rtpmpapay); static GstFlowReturn gst_rtp_mpa_pay_handle_buffer (GstBaseRTPPayload * payload, GstBuffer * buffer); @@ -139,11 +140,12 @@ gst_rtp_mpa_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps) } static gboolean -gst_rtp_mpa_pay_handle_event (GstPad * pad, GstEvent * event) +gst_rtp_mpa_pay_handle_event (GstBaseRTPPayload * payload, GstEvent * event) { + gboolean ret; GstRtpMPAPay *rtpmpapay; - rtpmpapay = GST_RTP_MPA_PAY (gst_pad_get_parent (pad)); + rtpmpapay = GST_RTP_MPA_PAY (payload); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_EOS: @@ -157,10 +159,10 @@ gst_rtp_mpa_pay_handle_event (GstPad * pad, GstEvent * event) break; } - gst_object_unref (rtpmpapay); + ret = + GST_BASE_RTP_PAYLOAD_CLASS (parent_class)->handle_event (payload, event); - /* FALSE to let the parent handle the event as well */ - return FALSE; + return ret; } static GstFlowReturn diff --git a/gst/rtp/gstrtpmpvpay.c b/gst/rtp/gstrtpmpvpay.c index d66968c..1d32e9a 100644 --- a/gst/rtp/gstrtpmpvpay.c +++ b/gst/rtp/gstrtpmpvpay.c @@ -58,7 +58,8 @@ static gboolean gst_rtp_mpv_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps); static GstFlowReturn gst_rtp_mpv_pay_handle_buffer (GstBaseRTPPayload * payload, GstBuffer * buffer); -static gboolean gst_rtp_mpv_pay_handle_event (GstPad * pad, GstEvent * event); +static gboolean gst_rtp_mpv_pay_handle_event (GstBaseRTPPayload * payload, + GstEvent * event); #define gst_rtp_mpv_pay_parent_class parent_class G_DEFINE_TYPE (GstRTPMPVPay, gst_rtp_mpv_pay, GST_TYPE_BASE_RTP_PAYLOAD); @@ -135,11 +136,12 @@ gst_rtp_mpv_pay_setcaps (GstBaseRTPPayload * payload, GstCaps * caps) } static gboolean -gst_rtp_mpv_pay_handle_event (GstPad * pad, GstEvent * event) +gst_rtp_mpv_pay_handle_event (GstBaseRTPPayload * payload, GstEvent * event) { + gboolean ret; GstRTPMPVPay *rtpmpvpay; - rtpmpvpay = GST_RTP_MPV_PAY (gst_pad_get_parent (pad)); + rtpmpvpay = GST_RTP_MPV_PAY (payload); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_EOS: @@ -153,10 +155,10 @@ gst_rtp_mpv_pay_handle_event (GstPad * pad, GstEvent * event) break; } - gst_object_unref (rtpmpvpay); + ret = + GST_BASE_RTP_PAYLOAD_CLASS (parent_class)->handle_event (payload, event); - /* FALSE to let the parent handle the event as well */ - return FALSE; + return ret; } static GstFlowReturn -- 2.7.4