aboutsummaryrefslogtreecommitdiffstats
path: root/MPD/AbstractRepresentationStream.cpp
diff options
context:
space:
mode:
authorjacko <jsamain+fdio@cisco.com>2017-06-08 19:54:24 +0200
committerjacko <jsamain+fdio@cisco.com>2017-06-08 19:59:02 +0200
commitf8907f0a7a84928800adbbfd8e66e500794aa5d5 (patch)
treead1565a5d9aabb3c699a80404f60aa68ea56d914 /MPD/AbstractRepresentationStream.cpp
parente3bff273518853e34c86719ce86fa72f1b5ba3b1 (diff)
Adding handling for different kind of MPDs (previously the front end could only handle MPD with SegmentList)
Now can handle: MPD with SegmentTemplate in Representation (VOD) MPD with SegmentTemplate and SegmentTimeline (live) Change-Id: Ie32e0e1823c94b1412990192595b16d3e2df1cfd Plus: removed some printf Signed-off-by: jacko <jsamain+fdio@cisco.com>
Diffstat (limited to 'MPD/AbstractRepresentationStream.cpp')
-rw-r--r--MPD/AbstractRepresentationStream.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/MPD/AbstractRepresentationStream.cpp b/MPD/AbstractRepresentationStream.cpp
index 449c6aa8..346938f4 100644
--- a/MPD/AbstractRepresentationStream.cpp
+++ b/MPD/AbstractRepresentationStream.cpp
@@ -46,7 +46,8 @@ uint32_t AbstractRepresentationStream::getFirstSegmentNumber()
uint32_t availStT = TimeResolver::getUTCDateTimeInSec(this->mpd->GetAvailabilityStarttime());
uint32_t duration = this->getAverageSegmentDuration();
uint32_t timeshift = TimeResolver::getDurationInSec(this->mpd->GetTimeShiftBufferDepth());
- return (currTime - duration - availStT - timeshift ) / duration;
+ uint32_t timescale = this->getTimescale();
+ return (double)((double)currTime - (double)availStT - (double)timeshift ) < 0? 0 : (currTime - availStT - timeshift );
}
return 0;
}
@@ -59,7 +60,8 @@ uint32_t AbstractRepresentationStream::getCurrentSegmentNumber()
uint32_t duration = this->getAverageSegmentDuration();
uint32_t availStT = TimeResolver::getUTCDateTimeInSec(this->mpd->GetAvailabilityStarttime());
- return (currTime - duration - availStT) / duration;
+ return (double)((double)currTime - (double)availStT) < 0 ? 0 : (currTime - availStT);
+ // return (currTime - duration - availStT) / duration;
}
return 0;
}
@@ -82,3 +84,11 @@ uint32_t AbstractRepresentationStream::getAverageSegmentDuration()
{
return 1;
}
+uint32_t AbstractRepresentationStream::getTimescale ()
+{
+ return 1;
+}
+void AbstractRepresentationStream::setSegmentOffset (uint32_t offset)
+{
+ this->segmentOffset = offset;
+}