rtspsrc: Add support for group-id in the stream-start event

This commit is contained in:
Sebastian Dröge 2013-07-22 15:23:20 +02:00
parent 5a9f4a3cbc
commit 169b490664

View file

@ -3893,17 +3893,26 @@ gst_rtspsrc_handle_data (GstRTSPSrc * src, GstRTSPMessage * message)
GstEvent *event; GstEvent *event;
GChecksum *cs; GChecksum *cs;
gchar *uri; gchar *uri;
GList *streams;
guint group_id = gst_util_group_id_next ();
/* generate an SHA256 sum of the URI */ /* generate an SHA256 sum of the URI */
cs = g_checksum_new (G_CHECKSUM_SHA256); cs = g_checksum_new (G_CHECKSUM_SHA256);
uri = src->conninfo.location; uri = src->conninfo.location;
g_checksum_update (cs, (const guchar *) uri, strlen (uri)); g_checksum_update (cs, (const guchar *) uri, strlen (uri));
stream_id =
g_strdup_printf ("%s/%d", g_checksum_get_string (cs), stream->id); for (streams = src->streams; streams; streams = g_list_next (streams)) {
g_checksum_free (cs); GstRTSPStream *ostream = (GstRTSPStream *) streams->data;
event = gst_event_new_stream_start (stream_id);
g_free (stream_id); stream_id =
gst_rtspsrc_push_event (src, event); g_strdup_printf ("%s/%d", g_checksum_get_string (cs), ostream->id);
g_checksum_free (cs);
event = gst_event_new_stream_start (stream_id);
gst_event_set_group_id (event, group_id);
g_free (stream_id);
gst_rtspsrc_stream_push_event (src, ostream, event);
}
gst_rtspsrc_activate_streams (src); gst_rtspsrc_activate_streams (src);
src->need_activate = FALSE; src->need_activate = FALSE;