hlsdemux2: Use gst_hls_media_playlist_recalculate_stream_time()
Instead of recalculating stream times manually in a playlist, let the playlist do it, so that it fixes up partial segment stream times too. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3883>
This commit is contained in:
parent
d76aacfb82
commit
2c82fdf276
@ -2186,21 +2186,17 @@ gst_hls_update_time_mappings (GstHLSDemux * demux,
|
|||||||
static void
|
static void
|
||||||
setup_initial_playlist (GstHLSDemux * demux, GstHLSMediaPlaylist * playlist)
|
setup_initial_playlist (GstHLSDemux * demux, GstHLSMediaPlaylist * playlist)
|
||||||
{
|
{
|
||||||
guint idx, len = playlist->segments->len;
|
|
||||||
GstM3U8MediaSegment *segment;
|
GstM3U8MediaSegment *segment;
|
||||||
GstClockTimeDiff pos = 0;
|
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (demux,
|
GST_DEBUG_OBJECT (demux,
|
||||||
"Setting up initial variant segment and time mapping");
|
"Setting up initial variant segment and time mapping");
|
||||||
|
|
||||||
/* This is the initial variant playlist. We will use it to base all our timing
|
/* This is the initial variant playlist. We will use it to base all our timing
|
||||||
* from. */
|
* from. */
|
||||||
|
segment = g_ptr_array_index (playlist->segments, 0);
|
||||||
for (idx = 0; idx < len; idx++) {
|
if (segment) {
|
||||||
segment = g_ptr_array_index (playlist->segments, idx);
|
segment->stream_time = 0;
|
||||||
|
gst_hls_media_playlist_recalculate_stream_time (playlist, segment);
|
||||||
segment->stream_time = pos;
|
|
||||||
pos += segment->duration;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user