GstObject * parent, GstPadMode mode, gboolean active);
static gboolean gst_base_sink_default_event (GstBaseSink * basesink,
GstEvent * event);
-static GstFlowReturn gst_base_sink_default_wait_eos (GstBaseSink * basesink,
+static GstFlowReturn gst_base_sink_default_wait_event (GstBaseSink * basesink,
GstEvent * event);
static gboolean gst_base_sink_event (GstPad * pad, GstObject * parent,
GstEvent * event);
klass->get_times = GST_DEBUG_FUNCPTR (gst_base_sink_default_get_times);
klass->query = GST_DEBUG_FUNCPTR (gst_base_sink_default_query);
klass->event = GST_DEBUG_FUNCPTR (gst_base_sink_default_event);
- klass->wait_eos = GST_DEBUG_FUNCPTR (gst_base_sink_default_wait_eos);
+ klass->wait_eos = GST_DEBUG_FUNCPTR (gst_base_sink_default_wait_event);
/* Registering debug symbols for function pointers */
GST_DEBUG_REGISTER_FUNCPTR (gst_base_sink_fixate);
GstClockTime timestamp, duration;
gst_event_parse_gap (event, ×tamp, &duration);
+ GST_DEBUG_OBJECT (basesink, "Got Gap time %" GST_TIME_FORMAT
+ " duration %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (timestamp), GST_TIME_ARGS (duration));
+
if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
start = timestamp;
if (GST_CLOCK_TIME_IS_VALID (duration))
/* FIXME: Casting to GstClockEntry only works because the types
* are the same */
if (G_LIKELY (sink->priv->cached_clock_id != NULL
- && GST_CLOCK_ENTRY_CLOCK ((GstClockEntry *) sink->priv->
- cached_clock_id) == clock)) {
+ && GST_CLOCK_ENTRY_CLOCK ((GstClockEntry *) sink->
+ priv->cached_clock_id) == clock)) {
if (!gst_clock_single_shot_id_reinit (clock, sink->priv->cached_clock_id,
time)) {
gst_clock_id_unref (sink->priv->cached_clock_id);
}
static GstFlowReturn
-gst_base_sink_default_wait_eos (GstBaseSink * basesink, GstEvent * event)
+gst_base_sink_default_wait_event (GstBaseSink * basesink, GstEvent * event)
{
GstFlowReturn ret;
gboolean late, step_end;
basesink->have_newsegment = TRUE;
GST_OBJECT_UNLOCK (basesink);
break;
+ case GST_EVENT_GAP:
+ {
+ /* FIXME: Rename ->wait_eos to wait_event() and pass GAP to subclass? */
+ gst_base_sink_default_wait_event (basesink, event);
+#if 0
+ if (G_LIKELY (bclass->wait_eos)) {
+ GstFlowReturn ret;
+
+ ret = bclass->wait_eos (basesink, event);
+ if (G_UNLIKELY (ret != GST_FLOW_OK)) {
+ result = FALSE;
+ goto done;
+ }
+ }
+#endif
+ break;
+ }
case GST_EVENT_TAG:
{
GstTagList *taglist;