From 5e193730dbef17aa11d982c4d8b31268834d2f99 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Fri, 3 Feb 2023 11:23:50 +0100 Subject: [PATCH] adaptivedemux2: Split track id from event stream-id The id is used for naming of the various objects and debugging. We don't want/need it to be obfuscated with the massive upstream id. Part-of: --- .../ext/adaptivedemux2/dash/gstdashdemux.c | 3 +- .../adaptivedemux2/gstadaptivedemux-track.c | 30 ++++++++----------- .../ext/adaptivedemux2/gstadaptivedemux.h | 3 ++ 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstdashdemux.c b/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstdashdemux.c index 0d277539cf..14b6f0ae4b 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstdashdemux.c +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstdashdemux.c @@ -874,8 +874,7 @@ gst_dash_demux_setup_all_streams (GstDashDemux2 * demux) track = gst_adaptive_demux_track_new (GST_ADAPTIVE_DEMUX_CAST (demux), streamtype, GST_STREAM_FLAG_NONE, stream_id, codec_caps, tags); - stream = - gst_dash_demux_stream_new (demux->client->period_idx, track->stream_id); + stream = gst_dash_demux_stream_new (demux->client->period_idx, stream_id); GST_ADAPTIVE_DEMUX2_STREAM_CAST (stream)->stream_type = streamtype; g_free (stream_id); diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/gstadaptivedemux-track.c b/subprojects/gst-plugins-good/ext/adaptivedemux2/gstadaptivedemux-track.c index c616459682..8e0d1b9dcc 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/gstadaptivedemux-track.c +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/gstadaptivedemux-track.c @@ -787,11 +787,11 @@ gst_adaptive_demux_track_update_level_locked (GstAdaptiveDemuxTrack * track) static void _demux_track_free (GstAdaptiveDemuxTrack * track) { - GST_DEBUG_OBJECT (track->demux, "freeing track %p '%s'", track, - track->stream_id); + GST_DEBUG_ID (track->id, "freeing track"); g_free (track->stream_id); g_free (track->upstream_stream_id); + g_free (track->id); if (track->pending_srcpad) gst_object_unref (track->pending_srcpad); @@ -849,31 +849,24 @@ gst_adaptive_demux_track_add_elements (GstAdaptiveDemuxTrack * track, guint period_num) { GstAdaptiveDemux *demux = track->demux; - gchar *internal_name; + gchar *tmpid; guint i, len; /* Store the period number for debugging output */ track->period_num = period_num; - internal_name = - g_strdup_printf ("track-period%d-%s", period_num, track->stream_id); - len = strlen (internal_name); + tmpid = g_strdup_printf ("%s-period%d", track->id, period_num); + g_free (track->id); + track->id = tmpid; + len = strlen (track->id); for (i = 0; i < len; i++) - if (internal_name[i] == ' ') - internal_name[i] = '_'; - track->element = gst_bin_new (internal_name); - g_free (internal_name); + if (track->id[i] == ' ') + track->id[i] = '_'; + track->element = gst_bin_new (track->id); - internal_name = - g_strdup_printf ("track-period%d-sink-%s", period_num, track->stream_id); - len = strlen (internal_name); - for (i = 0; i < len; i++) - if (internal_name[i] == ' ') - internal_name[i] = '_'; - track->sinkpad = gst_pad_new (internal_name, GST_PAD_SINK); + track->sinkpad = gst_pad_new ("sink", GST_PAD_SINK); g_signal_connect (track->sinkpad, "unlinked", (GCallback) track_sinkpad_unlinked_cb, track); - g_free (internal_name); gst_element_add_pad (GST_ELEMENT_CAST (track->element), track->sinkpad); gst_pad_set_element_private (track->sinkpad, track); gst_pad_set_chain_function (track->sinkpad, _track_sink_chain_function); @@ -923,6 +916,7 @@ gst_adaptive_demux_track_new (GstAdaptiveDemux * demux, track->flags = flags; track->stream_id = gst_element_decorate_stream_id (GST_ELEMENT (demux), stream_id); + track->id = g_strdup_printf ("track-%s", stream_id); track->period_num = (guint) (-1); track->generic_caps = caps; track->stream_object = gst_stream_new (track->stream_id, caps, type, flags); diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/gstadaptivedemux.h b/subprojects/gst-plugins-good/ext/adaptivedemux2/gstadaptivedemux.h index b3ffd21cf3..e740699081 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/gstadaptivedemux.h +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/gstadaptivedemux.h @@ -104,6 +104,9 @@ struct _GstAdaptiveDemuxTrack /* Stream flags */ GstStreamFlags flags; + /* Unique identifier (for naming and debugging) */ + gchar *id; + /* Unique identifier */ gchar *stream_id;