2005-06-28 Wim Taymans <wim@fluendo.com>
+ * gst/base/gstbasesink.c: (gst_basesink_set_pad_functions),
+ (gst_basesink_preroll_queue_flush):
+ * gst/base/gstbasesrc.c: (gst_basesrc_set_dataflow_funcs):
+ * gst/elements/gsttee.c: (gst_tee_update_pad_functions):
+ * gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
+ (gst_proxy_pad_do_acceptcaps), (gst_proxy_pad_do_fixatecaps),
+ (gst_proxy_pad_set_property):
+ * gst/gstpad.c:
+ * gst/gstpad.h:
+ * gst/gstqueue.c: (gst_queue_init):
+ The deprecated pad loop function is removed now.
+
+2005-06-28 Wim Taymans <wim@fluendo.com>
+
* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_flush),
(gst_basesink_event), (gst_basesink_deactivate):
Flushing the preroll queue always needs to unlock the waiters.
gst_pad_set_chain_function (pad, GST_DEBUG_FUNCPTR (gst_basesink_chain));
else
gst_pad_set_chain_function (pad, NULL);
-
- if (this->has_loop)
- gst_pad_set_loop_function (pad, GST_DEBUG_FUNCPTR (gst_basesink_loop));
- else
- gst_pad_set_loop_function (pad, NULL);
}
static void
{
GST_DEBUG ("updating dataflow functions");
- if (this->has_loop)
- gst_pad_set_loop_function (this->srcpad, gst_basesrc_loop);
- else
- gst_pad_set_loop_function (this->srcpad, NULL);
-
if (this->has_getrange)
gst_pad_set_getrange_function (this->srcpad, gst_basesrc_get_range);
else
GST_DEBUG_FUNCPTR (gst_tee_chain));
else
gst_pad_set_chain_function (tee->sinkpad, NULL);
-
- if (tee->has_sink_loop)
- gst_pad_set_loop_function (tee->sinkpad, GST_DEBUG_FUNCPTR (gst_tee_loop));
- else
- gst_pad_set_loop_function (tee->sinkpad, NULL);
}
static GstPad *
return gst_pad_activate_push (target, active);
}
-static void
-gst_proxy_pad_do_loop (GstPad * pad)
-{
- GstPad *target = GST_PROXY_PAD_TARGET (pad);
-
- g_return_if_fail (target != NULL);
-
- target->loopfunc (target);
-}
-
static GstFlowReturn
gst_proxy_pad_do_chain (GstPad * pad, GstBuffer * buffer)
{
SETFUNC (activatefunc, activate);
SETFUNC (activatepullfunc, activatepull);
SETFUNC (activatepushfunc, activatepush);
- SETFUNC (loopfunc, loop);
SETFUNC (getcapsfunc, getcaps);
SETFUNC (acceptcapsfunc, acceptcaps);
SETFUNC (fixatecapsfunc, fixatecaps);
}
/**
- * gst_pad_set_loop_function:
- * @pad: a sink #GstPad.
- * @chain: the #GstPadLoopFunction to set.
- *
- * Sets the given loop function for the pad. The loop function is called
- * repeadedly to pull/push buffers from/to the peer pad.
- */
-void
-gst_pad_set_loop_function (GstPad * pad, GstPadLoopFunction loop)
-{
- g_return_if_fail (GST_IS_PAD (pad));
-
- GST_PAD_LOOPFUNC (pad) = loop;
- GST_CAT_DEBUG (GST_CAT_PADS, "loopfunc for %s:%s set to %s",
- GST_DEBUG_PAD_NAME (pad), GST_DEBUG_FUNCPTR_NAME (loop));
-}
-
-/**
* gst_pad_set_chain_function:
* @pad: a sink #GstPad.
* @chain: the #GstPadChainFunction to set.
guint length, GstBuffer **buffer);
typedef gboolean (*GstPadEventFunction) (GstPad *pad, GstEvent *event);
-/* deprecate me, check range should use seeking query, loop function is internal */
+/* deprecate me, check range should use seeking query */
typedef gboolean (*GstPadCheckGetRangeFunction) (GstPad *pad);
-typedef void (*GstPadLoopFunction) (GstPad *pad);
/* internal links */
typedef GList* (*GstPadIntLinkFunction) (GstPad *pad);
gpointer sched_private;
/* data transport functions */
- GstPadLoopFunction loopfunc;
GstPadChainFunction chainfunc;
GstPadCheckGetRangeFunction checkgetrangefunc;
GstPadGetRangeFunction getrangefunc;
#define GST_PAD_ACTIVATEFUNC(pad) (GST_PAD_CAST(pad)->activatefunc)
#define GST_PAD_ACTIVATEPUSHFUNC(pad) (GST_PAD_CAST(pad)->activatepushfunc)
#define GST_PAD_ACTIVATEPULLFUNC(pad) (GST_PAD_CAST(pad)->activatepullfunc)
-#define GST_PAD_LOOPFUNC(pad) (GST_PAD_CAST(pad)->loopfunc)
#define GST_PAD_CHAINFUNC(pad) (GST_PAD_CAST(pad)->chainfunc)
#define GST_PAD_CHECKGETRANGEFUNC(pad) (GST_PAD_CAST(pad)->checkgetrangefunc)
#define GST_PAD_GETRANGEFUNC(pad) (GST_PAD_CAST(pad)->getrangefunc)
void gst_pad_set_activate_function (GstPad *pad, GstPadActivateFunction activate);
void gst_pad_set_activatepull_function (GstPad *pad, GstPadActivateModeFunction activatepull);
void gst_pad_set_activatepush_function (GstPad *pad, GstPadActivateModeFunction activatepush);
-void gst_pad_set_loop_function (GstPad *pad, GstPadLoopFunction loop);
void gst_pad_set_chain_function (GstPad *pad, GstPadChainFunction chain);
void gst_pad_set_getrange_function (GstPad *pad, GstPadGetRangeFunction get);
void gst_pad_set_checkgetrange_function (GstPad *pad, GstPadCheckGetRangeFunction check);
queue->srcpad =
gst_pad_new_from_template (gst_static_pad_template_get (&srctemplate),
"src");
- gst_pad_set_loop_function (queue->srcpad, GST_DEBUG_FUNCPTR (gst_queue_loop));
gst_pad_set_activatepush_function (queue->srcpad,
GST_DEBUG_FUNCPTR (gst_queue_src_activate_push));
gst_pad_set_link_function (queue->srcpad,
gst_pad_set_chain_function (pad, GST_DEBUG_FUNCPTR (gst_basesink_chain));
else
gst_pad_set_chain_function (pad, NULL);
-
- if (this->has_loop)
- gst_pad_set_loop_function (pad, GST_DEBUG_FUNCPTR (gst_basesink_loop));
- else
- gst_pad_set_loop_function (pad, NULL);
}
static void
{
GST_DEBUG ("updating dataflow functions");
- if (this->has_loop)
- gst_pad_set_loop_function (this->srcpad, gst_basesrc_loop);
- else
- gst_pad_set_loop_function (this->srcpad, NULL);
-
if (this->has_getrange)
gst_pad_set_getrange_function (this->srcpad, gst_basesrc_get_range);
else
queue->srcpad =
gst_pad_new_from_template (gst_static_pad_template_get (&srctemplate),
"src");
- gst_pad_set_loop_function (queue->srcpad, GST_DEBUG_FUNCPTR (gst_queue_loop));
gst_pad_set_activatepush_function (queue->srcpad,
GST_DEBUG_FUNCPTR (gst_queue_src_activate_push));
gst_pad_set_link_function (queue->srcpad,
GST_DEBUG_FUNCPTR (gst_tee_chain));
else
gst_pad_set_chain_function (tee->sinkpad, NULL);
-
- if (tee->has_sink_loop)
- gst_pad_set_loop_function (tee->sinkpad, GST_DEBUG_FUNCPTR (gst_tee_loop));
- else
- gst_pad_set_loop_function (tee->sinkpad, NULL);
}
static GstPad *