event: Update for stream-start event API changes

This commit is contained in:
Sebastian Dröge 2012-07-29 14:25:34 +02:00
parent 41954ff8cd
commit 0d22988e5c
5 changed files with 29 additions and 11 deletions

View file

@ -2850,9 +2850,16 @@ gst_base_parse_loop (GstPad * pad)
GST_DEBUG_OBJECT (parse, "hello");
if (G_UNLIKELY (parse->priv->push_stream_start)) {
gchar *stream_id;
stream_id =
gst_pad_create_stream_id (parse->srcpad, GST_ELEMENT_CAST (parse),
NULL);
GST_DEBUG_OBJECT (parse, "Pushing STREAM_START");
gst_pad_push_event (parse->srcpad, gst_event_new_stream_start ());
gst_pad_push_event (parse->srcpad, gst_event_new_stream_start (stream_id));
parse->priv->push_stream_start = FALSE;
g_free (stream_id);
}
/* reverse playback:

View file

@ -823,8 +823,17 @@ gst_base_src_send_stream_start (GstBaseSrc * src)
gboolean ret = TRUE;
if (src->priv->stream_start_pending) {
ret = gst_pad_push_event (src->srcpad, gst_event_new_stream_start ());
gchar *stream_id;
stream_id =
gst_pad_create_stream_id (src->srcpad, GST_ELEMENT_CAST (src), NULL);
GST_DEBUG_OBJECT (src, "Pushing STREAM_START");
ret =
gst_pad_push_event (src->srcpad,
gst_event_new_stream_start (stream_id));
src->priv->stream_start_pending = FALSE;
g_free (stream_id);
}
return ret;
@ -3519,12 +3528,16 @@ gst_base_src_activate_mode (GstPad * pad, GstObject * parent,
GstPadMode mode, gboolean active)
{
gboolean res;
GstBaseSrc *src = GST_BASE_SRC (parent);
src->priv->stream_start_pending = FALSE;
switch (mode) {
case GST_PAD_MODE_PULL:
res = gst_base_src_activate_pull (pad, parent, active);
break;
case GST_PAD_MODE_PUSH:
src->priv->stream_start_pending = active;
res = gst_base_src_activate_push (pad, parent, active);
break;
default:
@ -3549,7 +3562,6 @@ gst_base_src_change_state (GstElement * element, GstStateChange transition)
case GST_STATE_CHANGE_NULL_TO_READY:
break;
case GST_STATE_CHANGE_READY_TO_PAUSED:
basesrc->priv->stream_start_pending = TRUE;
no_preroll = gst_base_src_is_live (basesrc);
break;
case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
@ -3583,7 +3595,6 @@ gst_base_src_change_state (GstElement * element, GstStateChange transition)
* already did this */
g_atomic_int_set (&basesrc->priv->pending_eos, FALSE);
gst_event_replace (&basesrc->pending_seek, NULL);
basesrc->priv->stream_start_pending = FALSE;
break;
}
case GST_STATE_CHANGE_READY_TO_NULL:

View file

@ -246,7 +246,7 @@ GST_START_TEST (test_non_leaky_overrun)
UNDERRUN_WAIT ();
UNDERRUN_UNLOCK ();
gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
fail_unless (underrun_count == 1);
fail_unless (overrun_count == 0);
@ -338,7 +338,7 @@ GST_START_TEST (test_leaky_upstream)
UNDERRUN_WAIT ();
UNDERRUN_UNLOCK ();
gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
fail_unless (overrun_count == 0);
fail_unless (underrun_count == 1);
@ -424,7 +424,7 @@ GST_START_TEST (test_leaky_downstream)
UNDERRUN_WAIT ();
UNDERRUN_UNLOCK ();
gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
fail_unless (overrun_count == 0);
fail_unless (underrun_count == 1);
@ -507,7 +507,7 @@ GST_START_TEST (test_time_level)
UNDERRUN_WAIT ();
UNDERRUN_UNLOCK ();
gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
/* push buffer without duration */
buffer = gst_buffer_new_and_alloc (4);
@ -606,7 +606,7 @@ GST_START_TEST (test_time_level_task_not_started)
UNDERRUN_WAIT ();
UNDERRUN_UNLOCK ();
gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
gst_segment_init (&segment, GST_FORMAT_TIME);
segment.start = 1 * GST_SECOND;

View file

@ -75,7 +75,7 @@ static gpointer
push_one_stream_start (GstPad * pad)
{
GST_DEBUG_OBJECT (pad, "Pushing STREAM_START event");
gst_pad_push_event (pad, gst_event_new_stream_start ());
gst_pad_push_event (pad, gst_event_new_stream_start ("test"));
return NULL;
}

View file

@ -1438,7 +1438,7 @@ GST_START_TEST (test_sticky_events)
gst_pad_set_active (srcpad, TRUE);
/* push an event, it should be sticky on the srcpad */
gst_pad_push_event (srcpad, gst_event_new_stream_start ());
gst_pad_push_event (srcpad, gst_event_new_stream_start ("test"));
/* make a caps event */
caps = gst_caps_new_empty_simple ("foo/bar");