mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
dashdemux: Set stream need_header after seek and has_data_queued to FALSE when flushing stream.
This commit is contained in:
parent
4a9d7f0a9f
commit
daea47d3f4
1 changed files with 11 additions and 2 deletions
|
@ -592,10 +592,15 @@ gst_dash_demux_src_event (GstPad * pad, GstEvent * event)
|
||||||
chunk = list->data;
|
chunk = list->data;
|
||||||
current_pos = chunk->start_time;
|
current_pos = chunk->start_time;
|
||||||
//current_sequence = chunk->number;
|
//current_sequence = chunk->number;
|
||||||
GST_WARNING_OBJECT (demux, "%llu <= %llu (%llu)", current_pos,
|
GST_WARNING_OBJECT (demux, "current_pos:%" GST_TIME_FORMAT
|
||||||
target_pos, chunk->duration);
|
" <= target_pos:%" GST_TIME_FORMAT " duration:%"
|
||||||
|
GST_TIME_FORMAT, GST_TIME_ARGS (current_pos),
|
||||||
|
GST_TIME_ARGS (target_pos), GST_TIME_ARGS (chunk->duration));
|
||||||
if (current_pos <= target_pos
|
if (current_pos <= target_pos
|
||||||
&& target_pos < current_pos + chunk->duration) {
|
&& target_pos < current_pos + chunk->duration) {
|
||||||
|
GST_DEBUG_OBJECT (demux,
|
||||||
|
"selecting sequence %d for stream %" GST_PTR_FORMAT,
|
||||||
|
current_sequence, stream);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
current_sequence++;
|
current_sequence++;
|
||||||
|
@ -613,6 +618,7 @@ gst_dash_demux_src_event (GstPad * pad, GstEvent * event)
|
||||||
GstDashDemuxStream *stream;
|
GstDashDemuxStream *stream;
|
||||||
|
|
||||||
stream = iter->data;
|
stream = iter->data;
|
||||||
|
stream->need_header = TRUE;
|
||||||
gst_pad_push_event (stream->pad, gst_event_new_flush_stop ());
|
gst_pad_push_event (stream->pad, gst_event_new_flush_stop ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -918,6 +924,7 @@ gst_dash_demux_stop (GstDashDemux * demux)
|
||||||
GstDashDemuxStream *stream = iter->data;
|
GstDashDemuxStream *stream = iter->data;
|
||||||
|
|
||||||
gst_data_queue_flush (stream->queue);
|
gst_data_queue_flush (stream->queue);
|
||||||
|
stream->has_data_queued = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1332,6 +1339,8 @@ gst_dash_demux_download_loop (GstDashDemux * demux)
|
||||||
GstClock *clock = gst_element_get_clock (GST_ELEMENT (demux));
|
GstClock *clock = gst_element_get_clock (GST_ELEMENT (demux));
|
||||||
gint64 update_period = demux->client->mpd_node->minimumUpdatePeriod;
|
gint64 update_period = demux->client->mpd_node->minimumUpdatePeriod;
|
||||||
|
|
||||||
|
GST_LOG_OBJECT (demux, "Starting download loop");
|
||||||
|
|
||||||
if (clock && gst_mpd_client_is_live (demux->client)
|
if (clock && gst_mpd_client_is_live (demux->client)
|
||||||
&& demux->client->mpd_uri != NULL && update_period != -1) {
|
&& demux->client->mpd_uri != NULL && update_period != -1) {
|
||||||
GstFragment *download;
|
GstFragment *download;
|
||||||
|
|
Loading…
Reference in a new issue