From 497500dbfe72834270b6106183e6e7eb3ce2fc83 Mon Sep 17 00:00:00 2001 From: "Andre Moreira Magalhaes (andrunko)" Date: Tue, 12 Feb 2013 18:50:51 -0200 Subject: [PATCH] dashdemux: Only send newsegment on seek. --- ext/dash/gstdashdemux.c | 7 +++---- ext/dash/gstdashdemux.h | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/ext/dash/gstdashdemux.c b/ext/dash/gstdashdemux.c index 7c1fd07c25..96520b64b4 100644 --- a/ext/dash/gstdashdemux.c +++ b/ext/dash/gstdashdemux.c @@ -612,9 +612,9 @@ gst_dash_demux_src_event (GstPad * pad, GstEvent * event) demux->end_of_manifest = FALSE; for (iter = demux->streams; iter; iter = g_slist_next (iter)) { GstDashDemuxStream *stream = iter->data; - stream->need_segment = TRUE; gst_data_queue_set_flushing (stream->queue, FALSE); } + demux->need_segment = TRUE; gst_uri_downloader_reset (demux->downloader); gst_dash_demux_resume_download_task (demux); gst_dash_demux_resume_stream_task (demux); @@ -926,7 +926,6 @@ gst_dash_demux_create_pads (GstDashDemux * demux) g_assert (stream->pad == NULL); - stream->need_segment = TRUE; stream->pad = gst_pad_new_from_static_template (&srctemplate, NULL); gst_pad_set_event_function (stream->pad, GST_DEBUG_FUNCPTR (gst_dash_demux_src_event)); @@ -1033,7 +1032,7 @@ gst_dash_demux_stream_loop (GstDashDemux * demux) active_stream = gst_mpdparser_get_active_stream_by_index (demux->client, selected_stream->index); - if (selected_stream->need_segment) { + if (demux->need_segment) { /* And send a newsegment */ for (iter = demux->streams, i = 0; iter; i++, iter = g_slist_next (iter)) { @@ -1043,7 +1042,7 @@ gst_dash_demux_stream_loop (GstDashDemux * demux) GST_FORMAT_TIME, demux->segment.start, demux->segment.stop, demux->segment.time)); } - selected_stream->need_segment = FALSE; + demux->need_segment = FALSE; demux->position_shift = 0; } diff --git a/ext/dash/gstdashdemux.h b/ext/dash/gstdashdemux.h index e7629f9686..2329a88615 100644 --- a/ext/dash/gstdashdemux.h +++ b/ext/dash/gstdashdemux.h @@ -79,7 +79,6 @@ struct _GstDashDemuxStream gboolean stream_eos; gboolean need_header; - gboolean need_segment; /* tracks if a stream has enqueued data * after a pad switch. @@ -110,6 +109,7 @@ struct _GstDashDemux GSList *streams; GstSegment segment; + gboolean need_segment; GstBuffer *manifest; GstUriDownloader *downloader;