From e8be1a4ef4ab7f57873e7a2566d1a789ab390986 Mon Sep 17 00:00:00 2001 From: Francois Cartegnie Date: Thu, 10 Mar 2022 16:02:36 +0100 Subject: [PATCH] demux: adaptive: force early output of first demuxed times --- modules/demux/adaptive/Streams.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/demux/adaptive/Streams.cpp b/modules/demux/adaptive/Streams.cpp index d2d3e98444..b74eb3f486 100644 --- a/modules/demux/adaptive/Streams.cpp +++ b/modules/demux/adaptive/Streams.cpp @@ -538,8 +538,18 @@ AbstractStream::BufferingStatus AbstractStream::doBufferize(Times deadline, vlc_mutex_unlock(&lock); return BufferingStatus::End; } - i_demuxed = fakeEsOut()->commandsQueue()->getDemuxedAmount(deadline).continuous; - segmentTracker->notifyBufferingLevel(i_min_buffering, i_max_buffering, i_demuxed, i_target_buffering); + + if(deadline.continuous != VLC_TICK_INVALID) + { + i_demuxed = fakeEsOut()->commandsQueue()->getDemuxedAmount(deadline).continuous; + segmentTracker->notifyBufferingLevel(i_min_buffering, i_max_buffering, i_demuxed, i_target_buffering); + } + else + { + /* On initial pass, there's no demux time known, we need to fake it */ + if(fakeEsOut()->commandsQueue()->getBufferingLevel().continuous != VLC_TICK_INVALID) + i_demuxed = i_min_buffering; + } } vlc_mutex_unlock(&lock);