From e0e1db212fd0df2239583b9099fc4361adeded05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 12 Apr 2017 20:09:33 +0300 Subject: [PATCH] Revert "dashdemux: Fix issue when manifest update sets slow start without passing necessary header & caps changes downstream" This reverts commit c9fbf3459a719b2c68ba69ddabd373ea9bf804a2. The representation ID comparision here was wrong and triggering always if the ID did *not* change, causing needless redownloading of the header. The sample stream provided in the bug does not exist anymore. --- ext/dash/gstdashdemux.c | 34 ---------------------------------- ext/dash/gstdashdemux.h | 1 - 2 files changed, 35 deletions(-) diff --git a/ext/dash/gstdashdemux.c b/ext/dash/gstdashdemux.c index ddb32468c5..5bfa583e4e 100644 --- a/ext/dash/gstdashdemux.c +++ b/ext/dash/gstdashdemux.c @@ -721,7 +721,6 @@ gst_dash_demux_setup_all_streams (GstDashDemux * demux) (stream), tags); stream->index = i; stream->pending_seek_ts = GST_CLOCK_TIME_NONE; - stream->last_representation_id = NULL; if (active_stream->cur_adapt_set && active_stream->cur_adapt_set->RepresentationBase && active_stream->cur_adapt_set->RepresentationBase->ContentProtection) { @@ -1164,38 +1163,6 @@ gst_dash_demux_stream_update_fragment_info (GstAdaptiveDemuxStream * stream) if (gst_mpd_client_get_next_fragment_timestamp (dashdemux->client, dashstream->index, &ts)) { - if (gst_mpd_client_is_live (dashdemux->client)) { - if (!GST_ADAPTIVE_DEMUX_STREAM_NEED_HEADER (stream)) { - if (dashstream->active_stream - && dashstream->active_stream->cur_representation) { - /* id specifies an identifier for this Representation. The - * identifier shall be unique within a Period unless the - * Representation is functionally identically to another - * Representation in the same Period. */ - if (!g_strcmp0 (dashstream->active_stream->cur_representation->id, - dashstream->last_representation_id)) { - GstCaps *caps; - stream->need_header = TRUE; - - GST_INFO_OBJECT (dashdemux, "Switching bitrate to %d", - dashstream->active_stream->cur_representation->bandwidth); - caps = - gst_dash_demux_get_input_caps (dashdemux, - dashstream->active_stream); - gst_adaptive_demux_stream_set_caps (stream, caps); - } - } - } - g_free (dashstream->last_representation_id); - if (dashstream->active_stream - && dashstream->active_stream->cur_representation) { - dashstream->last_representation_id = - g_strdup (dashstream->active_stream->cur_representation->id); - } else { - dashstream->last_representation_id = NULL; - } - } - if (GST_ADAPTIVE_DEMUX_STREAM_NEED_HEADER (stream)) { gst_adaptive_demux_stream_fragment_clear (&stream->fragment); gst_dash_demux_stream_update_headers_info (stream); @@ -2943,7 +2910,6 @@ gst_dash_demux_stream_free (GstAdaptiveDemuxStream * stream) gst_isoff_moof_box_free (dash_stream->moof); if (dash_stream->moof_sync_samples) g_array_free (dash_stream->moof_sync_samples, TRUE); - g_free (dash_stream->last_representation_id); } static GstDashDemuxClockDrift * diff --git a/ext/dash/gstdashdemux.h b/ext/dash/gstdashdemux.h index 7f0034533d..6509240ef8 100644 --- a/ext/dash/gstdashdemux.h +++ b/ext/dash/gstdashdemux.h @@ -96,7 +96,6 @@ struct _GstDashDemuxStream guint64 moof_average_size, first_sync_sample_average_size; gboolean first_sync_sample_after_moof, first_sync_sample_always_after_moof; - gchar *last_representation_id; }; /**