summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2017-04-12 20:09:33 +0300
committerSebastian Dröge <sebastian@centricular.com>2017-04-12 20:11:16 +0300
commite0e1db212fd0df2239583b9099fc4361adeded05 (patch)
tree3b633819ea03f985e85980d4e131b93f83ab5192
parent78022a6e0c05ce482b798cf638cbd3f901a5094e (diff)
downloadgstreamer-plugins-bad-e0e1db212fd0df2239583b9099fc4361adeded05.tar.gz
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.
-rw-r--r--ext/dash/gstdashdemux.c34
-rw-r--r--ext/dash/gstdashdemux.h1
2 files changed, 0 insertions, 35 deletions
diff --git a/ext/dash/gstdashdemux.c b/ext/dash/gstdashdemux.c
index ddb32468c..5bfa583e4 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 7f0034533..6509240ef 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;
};
/**