vlc | branch: master | Francois Cartegnie <[email protected]> | Thu Jan 14 14:03:26 2021 +0100| [37f75e10ccd43949c71eaa76887a8a853d0dc3c1] | committer: Francois Cartegnie
demux: adaptive: refactor getting available buffering > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=37f75e10ccd43949c71eaa76887a8a853d0dc3c1 --- modules/demux/adaptive/PlaylistManager.cpp | 15 +++++++++++++++ modules/demux/adaptive/PlaylistManager.h | 1 + modules/demux/dash/DASHManager.cpp | 11 +---------- modules/demux/smooth/SmoothManager.cpp | 14 +------------- 4 files changed, 18 insertions(+), 23 deletions(-) diff --git a/modules/demux/adaptive/PlaylistManager.cpp b/modules/demux/adaptive/PlaylistManager.cpp index 8f05521b9a..9f007892bc 100644 --- a/modules/demux/adaptive/PlaylistManager.cpp +++ b/modules/demux/adaptive/PlaylistManager.cpp @@ -405,6 +405,21 @@ vlc_tick_t PlaylistManager::getCurrentDemuxTime() const return demux.i_nzpcr; } +vlc_tick_t PlaylistManager::getMinAheadTime() const +{ + vlc_tick_t minbuffer = 0; + std::for_each(streams.cbegin(), streams.cend(), + [&minbuffer](const AbstractStream *st) { + if(st->isValid() && !st->isDisabled() && st->isSelected()) + { + const vlc_tick_t m = st->getMinAheadTime(); + if(m > 0 && (m < minbuffer || minbuffer == 0)) + minbuffer = m; + } + }); + return minbuffer; +} + bool PlaylistManager::reactivateStream(AbstractStream *stream) { return stream->reactivate(getResumeTime()); diff --git a/modules/demux/adaptive/PlaylistManager.h b/modules/demux/adaptive/PlaylistManager.h index 9484f3cf60..e1ab594e46 100644 --- a/modules/demux/adaptive/PlaylistManager.h +++ b/modules/demux/adaptive/PlaylistManager.h @@ -83,6 +83,7 @@ namespace adaptive virtual vlc_tick_t getFirstPlaybackTime() const; vlc_tick_t getCurrentDemuxTime() const; + vlc_tick_t getMinAheadTime() const; virtual bool reactivateStream(AbstractStream *); bool setupPeriod(); diff --git a/modules/demux/dash/DASHManager.cpp b/modules/demux/dash/DASHManager.cpp index 79a5384296..7b2d3adb81 100644 --- a/modules/demux/dash/DASHManager.cpp +++ b/modules/demux/dash/DASHManager.cpp @@ -67,16 +67,7 @@ void DASHManager::scheduleNextUpdate() { time_t now = time(nullptr); - vlc_tick_t minbuffer = 0; - std::vector<AbstractStream *>::const_iterator it; - for(it=streams.begin(); it!=streams.end(); ++it) - { - const AbstractStream *st = *it; - const vlc_tick_t m = st->getMinAheadTime(); - if(m > 0 && (m < minbuffer || minbuffer == 0)) - minbuffer = m; - } - minbuffer /= 2; + vlc_tick_t minbuffer = getMinAheadTime() / 2; if(playlist->minUpdatePeriod.Get() > minbuffer) minbuffer = playlist->minUpdatePeriod.Get(); diff --git a/modules/demux/smooth/SmoothManager.cpp b/modules/demux/smooth/SmoothManager.cpp index c36236946e..90bc6481fd 100644 --- a/modules/demux/smooth/SmoothManager.cpp +++ b/modules/demux/smooth/SmoothManager.cpp @@ -119,19 +119,7 @@ void SmoothManager::scheduleNextUpdate() { time_t now = time(nullptr); - vlc_tick_t minbuffer = 0; - std::vector<AbstractStream *>::const_iterator it; - for(it=streams.begin(); it!=streams.end(); ++it) - { - const AbstractStream *st = *it; - if(!st->isValid() || st->isDisabled() || !st->isSelected()) - continue; - const vlc_tick_t m = st->getMinAheadTime(); - if(m > 0 && (m < minbuffer || minbuffer == 0)) - minbuffer = m; - } - - minbuffer /= 2; + vlc_tick_t minbuffer = getMinAheadTime() / 2; if(playlist->minUpdatePeriod.Get() > minbuffer) minbuffer = playlist->minUpdatePeriod.Get(); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
