aboutsummaryrefslogtreecommitdiffstats
path: root/MPD/AbstractRepresentationStream.cpp
diff options
context:
space:
mode:
authorLuca Muscariello <lumuscar+fdio@cisco.com>2017-06-23 14:51:19 +0000
committerGerrit Code Review <gerrit@fd.io>2017-06-23 14:51:19 +0000
commitea99c36cadfab26fe4bf523931f87132c01a54a2 (patch)
tree13fc8ff2f6072add96f987a1a68a15c22d68d911 /MPD/AbstractRepresentationStream.cpp
parente207b82a2b7e70e2700cf1c4237a2e819c655809 (diff)
parenta644414fd2c3a3f7f41e716b6875a78981e4cfe1 (diff)
Merge "adding mpd live handling + automatic mpd fetching" into viper/master
Diffstat (limited to 'MPD/AbstractRepresentationStream.cpp')
-rw-r--r--MPD/AbstractRepresentationStream.cpp32
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;
+}