add parent to pad functions

This commit is contained in:
Wim Taymans 2011-11-17 12:48:25 +01:00 committed by Tim-Philipp Müller
parent 89af03a2b9
commit f751de2850
2 changed files with 25 additions and 24 deletions

View file

@ -69,10 +69,13 @@ GST_DEBUG_CATEGORY_STATIC (gst_gdp_depay_debug);
G_DEFINE_TYPE_WITH_CODE (GstGDPDepay, gst_gdp_depay, G_DEFINE_TYPE_WITH_CODE (GstGDPDepay, gst_gdp_depay,
GST_TYPE_ELEMENT, _do_init); GST_TYPE_ELEMENT, _do_init);
static gboolean gst_gdp_depay_sink_event (GstPad * pad, GstEvent * event); static gboolean gst_gdp_depay_sink_event (GstPad * pad, GstObject * parent,
static gboolean gst_gdp_depay_src_event (GstPad * pad, GstEvent * event); GstEvent * event);
static gboolean gst_gdp_depay_src_event (GstPad * pad, GstObject * parent,
GstEvent * event);
static GstFlowReturn gst_gdp_depay_chain (GstPad * pad, GstBuffer * buffer); static GstFlowReturn gst_gdp_depay_chain (GstPad * pad, GstObject * parent,
GstBuffer * buffer);
static GstStateChangeReturn gst_gdp_depay_change_state (GstElement * static GstStateChangeReturn gst_gdp_depay_change_state (GstElement *
element, GstStateChange transition); element, GstStateChange transition);
@ -141,12 +144,12 @@ gst_gdp_depay_finalize (GObject * gobject)
} }
static gboolean static gboolean
gst_gdp_depay_sink_event (GstPad * pad, GstEvent * event) gst_gdp_depay_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
{ {
GstGDPDepay *this; GstGDPDepay *this;
gboolean res = TRUE; gboolean res = TRUE;
this = GST_GDP_DEPAY (gst_pad_get_parent (pad)); this = GST_GDP_DEPAY (parent);
switch (GST_EVENT_TYPE (event)) { switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_FLUSH_START: case GST_EVENT_FLUSH_START:
@ -171,18 +174,17 @@ gst_gdp_depay_sink_event (GstPad * pad, GstEvent * event)
gst_event_unref (event); gst_event_unref (event);
break; break;
} }
gst_object_unref (this);
return res; return res;
} }
static gboolean static gboolean
gst_gdp_depay_src_event (GstPad * pad, GstEvent * event) gst_gdp_depay_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
{ {
GstGDPDepay *this; GstGDPDepay *this;
gboolean res = TRUE; gboolean res = TRUE;
this = GST_GDP_DEPAY (gst_pad_get_parent (pad)); this = GST_GDP_DEPAY (parent);
switch (GST_EVENT_TYPE (event)) { switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_SEEK: case GST_EVENT_SEEK:
@ -197,13 +199,12 @@ gst_gdp_depay_src_event (GstPad * pad, GstEvent * event)
res = gst_pad_push_event (this->sinkpad, event); res = gst_pad_push_event (this->sinkpad, event);
break; break;
} }
gst_object_unref (this);
return res; return res;
} }
static GstFlowReturn static GstFlowReturn
gst_gdp_depay_chain (GstPad * pad, GstBuffer * buffer) gst_gdp_depay_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
{ {
GstGDPDepay *this; GstGDPDepay *this;
GstFlowReturn ret = GST_FLOW_OK; GstFlowReturn ret = GST_FLOW_OK;
@ -212,7 +213,7 @@ gst_gdp_depay_chain (GstPad * pad, GstBuffer * buffer)
GstEvent *event; GstEvent *event;
guint available; guint available;
this = GST_GDP_DEPAY (gst_pad_get_parent (pad)); this = GST_GDP_DEPAY (parent);
/* On DISCONT, get rid of accumulated data. We assume a buffer after the /* On DISCONT, get rid of accumulated data. We assume a buffer after the
* DISCONT contains (part of) a new valid header, if not we error because we * DISCONT contains (part of) a new valid header, if not we error because we
@ -386,7 +387,6 @@ gst_gdp_depay_chain (GstPad * pad, GstBuffer * buffer)
} }
done: done:
gst_object_unref (this);
return ret; return ret;
/* ERRORS */ /* ERRORS */

View file

@ -75,9 +75,12 @@ G_DEFINE_TYPE_WITH_CODE (GstGDPPay, gst_gdp_pay, GST_TYPE_ELEMENT, _do_init);
static void gst_gdp_pay_reset (GstGDPPay * this); static void gst_gdp_pay_reset (GstGDPPay * this);
static GstFlowReturn gst_gdp_pay_chain (GstPad * pad, GstBuffer * buffer); static GstFlowReturn gst_gdp_pay_chain (GstPad * pad, GstObject * parent,
static gboolean gst_gdp_pay_src_event (GstPad * pad, GstEvent * event); GstBuffer * buffer);
static gboolean gst_gdp_pay_sink_event (GstPad * pad, GstEvent * event); static gboolean gst_gdp_pay_src_event (GstPad * pad, GstObject * parent,
GstEvent * event);
static gboolean gst_gdp_pay_sink_event (GstPad * pad, GstObject * parent,
GstEvent * event);
static GstStateChangeReturn gst_gdp_pay_change_state (GstElement * static GstStateChangeReturn gst_gdp_pay_change_state (GstElement *
element, GstStateChange transition); element, GstStateChange transition);
@ -548,7 +551,7 @@ gst_gdp_queue_buffer (GstGDPPay * this, GstBuffer * buffer)
} }
static GstFlowReturn static GstFlowReturn
gst_gdp_pay_chain (GstPad * pad, GstBuffer * buffer) gst_gdp_pay_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
{ {
GstGDPPay *this; GstGDPPay *this;
#if 0 #if 0
@ -557,7 +560,7 @@ gst_gdp_pay_chain (GstPad * pad, GstBuffer * buffer)
GstBuffer *outbuffer; GstBuffer *outbuffer;
GstFlowReturn ret; GstFlowReturn ret;
this = GST_GDP_PAY (gst_pad_get_parent (pad)); this = GST_GDP_PAY (parent);
/* we should have received a new_segment before, otherwise it's a bug. /* we should have received a new_segment before, otherwise it's a bug.
* fake one in that case */ * fake one in that case */
@ -636,7 +639,7 @@ gst_gdp_pay_chain (GstPad * pad, GstBuffer * buffer)
done: done:
gst_buffer_unref (buffer); gst_buffer_unref (buffer);
gst_object_unref (this);
return ret; return ret;
/* ERRORS */ /* ERRORS */
@ -671,10 +674,10 @@ no_buffer:
} }
static gboolean static gboolean
gst_gdp_pay_sink_event (GstPad * pad, GstEvent * event) gst_gdp_pay_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
{ {
GstBuffer *outbuffer; GstBuffer *outbuffer;
GstGDPPay *this = GST_GDP_PAY (gst_pad_get_parent (pad)); GstGDPPay *this = GST_GDP_PAY (parent);
GstFlowReturn flowret; GstFlowReturn flowret;
GstCaps *caps; GstCaps *caps;
gboolean ret = TRUE; gboolean ret = TRUE;
@ -751,7 +754,6 @@ gst_gdp_pay_sink_event (GstPad * pad, GstEvent * event)
done: done:
gst_event_unref (event); gst_event_unref (event);
gst_object_unref (this);
return ret; return ret;
@ -780,12 +782,12 @@ push_error:
} }
static gboolean static gboolean
gst_gdp_pay_src_event (GstPad * pad, GstEvent * event) gst_gdp_pay_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
{ {
GstGDPPay *this; GstGDPPay *this;
gboolean res = TRUE; gboolean res = TRUE;
this = GST_GDP_PAY (gst_pad_get_parent (pad)); this = GST_GDP_PAY (parent);
switch (GST_EVENT_TYPE (event)) { switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_SEEK: case GST_EVENT_SEEK:
@ -800,7 +802,6 @@ gst_gdp_pay_src_event (GstPad * pad, GstEvent * event)
res = gst_pad_push_event (this->sinkpad, event); res = gst_pad_push_event (this->sinkpad, event);
break; break;
} }
gst_object_unref (this);
return res; return res;
} }