diff options
author | Luca Muscariello <lumuscar+fdio@cisco.com> | 2017-06-23 14:51:19 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@fd.io> | 2017-06-23 14:51:19 +0000 |
commit | ea99c36cadfab26fe4bf523931f87132c01a54a2 (patch) | |
tree | 13fc8ff2f6072add96f987a1a68a15c22d68d911 /MPD/AbstractRepresentationStream.cpp | |
parent | e207b82a2b7e70e2700cf1c4237a2e819c655809 (diff) | |
parent | a644414fd2c3a3f7f41e716b6875a78981e4cfe1 (diff) |
Merge "adding mpd live handling + automatic mpd fetching" into viper/master
Diffstat (limited to 'MPD/AbstractRepresentationStream.cpp')
-rw-r--r-- | MPD/AbstractRepresentationStream.cpp | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/MPD/AbstractRepresentationStream.cpp b/MPD/AbstractRepresentationStream.cpp index 346938f4..e02f65cb 100644 --- a/MPD/AbstractRepresentationStream.cpp +++ b/MPD/AbstractRepresentationStream.cpp @@ -14,8 +14,9 @@ using namespace libdash::framework::mpd; using namespace dash::mpd; -AbstractRepresentationStream::AbstractRepresentationStream(IMPD *mpd, IPeriod *period, IAdaptationSet *adaptationSet, IRepresentation *representation) : - mpd (mpd), +AbstractRepresentationStream::AbstractRepresentationStream(viper::managers::StreamType type, IMPDWrapper *mpdWrapper, IPeriod *period, IAdaptationSet *adaptationSet, IRepresentation *representation) : + type (type), + mpdWrapper (mpdWrapper), period (period), adaptationSet (adaptationSet), representation (representation) @@ -40,12 +41,12 @@ uint32_t AbstractRepresentationStream::getSize() uint32_t AbstractRepresentationStream::getFirstSegmentNumber() { - if (this->mpd->GetType() == "dynamic") + if (this->mpdWrapper->getTypeWithoutLock() == "dynamic") { uint32_t currTime = TimeResolver::getCurrentTimeInSec(); - uint32_t availStT = TimeResolver::getUTCDateTimeInSec(this->mpd->GetAvailabilityStarttime()); + uint32_t availStT = TimeResolver::getUTCDateTimeInSec(this->mpdWrapper->getAvailabilityStarttime()); uint32_t duration = this->getAverageSegmentDuration(); - uint32_t timeshift = TimeResolver::getDurationInSec(this->mpd->GetTimeShiftBufferDepth()); + uint32_t timeshift = TimeResolver::getDurationInSec(this->mpdWrapper->getTimeShiftBufferDepth()); uint32_t timescale = this->getTimescale(); return (double)((double)currTime - (double)availStT - (double)timeshift ) < 0? 0 : (currTime - availStT - timeshift ); } @@ -54,11 +55,11 @@ uint32_t AbstractRepresentationStream::getFirstSegmentNumber() uint32_t AbstractRepresentationStream::getCurrentSegmentNumber() { - if (this->mpd->GetType() == "dynamic") + if (this->mpdWrapper->getTypeWithoutLock() == "dynamic") { uint32_t currTime = TimeResolver::getCurrentTimeInSec(); uint32_t duration = this->getAverageSegmentDuration(); - uint32_t availStT = TimeResolver::getUTCDateTimeInSec(this->mpd->GetAvailabilityStarttime()); + uint32_t availStT = TimeResolver::getUTCDateTimeInSec(this->mpdWrapper->getAvailabilityStarttime()); return (double)((double)currTime - (double)availStT) < 0 ? 0 : (currTime - availStT); // return (currTime - duration - availStT) / duration; @@ -68,13 +69,13 @@ uint32_t AbstractRepresentationStream::getCurrentSegmentNumber() uint32_t AbstractRepresentationStream::getLastSegmentNumber () { - if (this->mpd->GetType() == "dynamic") + if (this->mpdWrapper->getTypeWithoutLock() == "dynamic") { uint32_t currTime = TimeResolver::getCurrentTimeInSec(); uint32_t duration = this->getAverageSegmentDuration(); - uint32_t availStT = TimeResolver::getUTCDateTimeInSec(this->mpd->GetAvailabilityStarttime()); - uint32_t checkTime = mpd->GetFetchTime() + - TimeResolver::getDurationInSec(this->mpd->GetMinimumUpdatePeriod()); + uint32_t availStT = TimeResolver::getUTCDateTimeInSec(this->mpdWrapper->getAvailabilityStarttime()); + uint32_t checkTime = mpdWrapper->getFetchTime() + + TimeResolver::getDurationInSec(this->mpdWrapper->getMinimumUpdatePeriodWithoutLock()); return ( ((checkTime > currTime) ? currTime : checkTime) - duration - availStT) / duration; } return 0; @@ -92,3 +93,12 @@ void AbstractRepresentationStream::setSegmentOffset (uint32_t offset) { this->segmentOffset = offset; } + +uint32_t AbstractRepresentationStream::getTime(size_t segmentNumber) +{ + return 0; +} +size_t AbstractRepresentationStream::getSegmentNumber(uint32_t time) +{ + return 0; +} |