From f8907f0a7a84928800adbbfd8e66e500794aa5d5 Mon Sep 17 00:00:00 2001 From: jacko Date: Thu, 8 Jun 2017 19:54:24 +0200 Subject: 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 --- MPD/AbstractRepresentationStream.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'MPD/AbstractRepresentationStream.cpp') 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; +} -- cgit 1.2.3-korg