mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-28 11:55:39 +00:00
event: Update for stream-start event API changes
This commit is contained in:
parent
41954ff8cd
commit
0d22988e5c
5 changed files with 29 additions and 11 deletions
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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");
|
||||
|
|
Loading…
Reference in a new issue