From 63ea74d79292e1f6d1b3aee6e468577a75a80246 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Fri, 2 Sep 2016 14:31:54 +0200 Subject: [PATCH] Added/improved start/endTime functions in Output class --- src/output/output.cpp | 27 ++++++++++++++++++++++----- src/output/output.h | 1 + 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/output/output.cpp b/src/output/output.cpp index afe4aded..517a3801 100644 --- a/src/output/output.cpp +++ b/src/output/output.cpp @@ -466,14 +466,31 @@ namespace Mist { return buffer.begin()->time; } - ///Return the end time of the VoD asset, or 0 if unknown. + ///Return the start time of the selected tracks. + uint64_t Output::startTime(){ + uint64_t start = 0xFFFFFFFFFFFFFFFFull; + if (selectedTracks.size()){ + for (std::set::iterator it = selectedTracks.begin(); it != selectedTracks.end(); it++){ + if (myMeta.tracks.count(*it)){ + if (start < myMeta.tracks[*it].firstms){ + start = myMeta.tracks[*it].firstms; + } + } + } + } + return start; + } + + ///Return the end time of the selected tracks, or 0 if unknown or live. uint64_t Output::endTime(){ if (myMeta.live){return 0;} uint64_t end = 0; - for (std::set::iterator it = selectedTracks.begin(); it != selectedTracks.end(); it++){ - if (myMeta.tracks.count(*it)){ - if (end < myMeta.tracks[*it].lastms){ - end = myMeta.tracks[*it].lastms; + if (selectedTracks.size()){ + for (std::set::iterator it = selectedTracks.begin(); it != selectedTracks.end(); it++){ + if (myMeta.tracks.count(*it)){ + if (end < myMeta.tracks[*it].lastms){ + end = myMeta.tracks[*it].lastms; + } } } } diff --git a/src/output/output.h b/src/output/output.h index 718856a7..b19df26d 100644 --- a/src/output/output.h +++ b/src/output/output.h @@ -47,6 +47,7 @@ namespace Mist { bool seek(unsigned int tid, unsigned long long pos, bool getNextKey = false); void stop(); uint64_t currentTime(); + uint64_t startTime(); uint64_t endTime(); void setBlocking(bool blocking); long unsigned int getMainSelectedTrack();