diff options
Diffstat (limited to 'MPD')
-rw-r--r-- | MPD/AbstractRepresentationStream.cpp | 4 | ||||
-rw-r--r-- | MPD/AbstractRepresentationStream.h | 32 | ||||
-rw-r--r-- | MPD/IMPDWrapper.h | 18 | ||||
-rw-r--r-- | MPD/IRepresentationStream.h | 4 | ||||
-rw-r--r-- | MPD/MPDWrapper.cpp | 6 | ||||
-rw-r--r-- | MPD/SegmentTemplateStream.cpp | 11 | ||||
-rw-r--r-- | MPD/SegmentTemplateStream.h | 6 |
7 files changed, 40 insertions, 41 deletions
diff --git a/MPD/AbstractRepresentationStream.cpp b/MPD/AbstractRepresentationStream.cpp index e02f65cb..1ffee924 100644 --- a/MPD/AbstractRepresentationStream.cpp +++ b/MPD/AbstractRepresentationStream.cpp @@ -94,11 +94,11 @@ void AbstractRepresentationStream::setSegmentOffset (uint32_t offset) this->segmentOffset = offset; } -uint32_t AbstractRepresentationStream::getTime(size_t segmentNumber) +uint64_t AbstractRepresentationStream::getTime(size_t segmentNumber) { return 0; } -size_t AbstractRepresentationStream::getSegmentNumber(uint32_t time) +size_t AbstractRepresentationStream::getSegmentNumber(uint64_t time) { return 0; } diff --git a/MPD/AbstractRepresentationStream.h b/MPD/AbstractRepresentationStream.h index 87400c0c..113720ed 100644 --- a/MPD/AbstractRepresentationStream.h +++ b/MPD/AbstractRepresentationStream.h @@ -47,27 +47,27 @@ public: virtual dash::mpd::ISegment* getBitstreamSwitchingSegment() = 0; virtual RepresentationStreamType getStreamType() = 0; - virtual uint32_t getSize(); - virtual uint32_t getFirstSegmentNumber(); - virtual uint32_t getCurrentSegmentNumber(); - virtual uint32_t getLastSegmentNumber(); - virtual uint32_t getAverageSegmentDuration(); + virtual uint32_t getSize(); + virtual uint32_t getFirstSegmentNumber(); + virtual uint32_t getCurrentSegmentNumber(); + virtual uint32_t getLastSegmentNumber(); + virtual uint32_t getAverageSegmentDuration(); - virtual uint32_t getTimescale(); - virtual void setSegmentOffset(uint32_t offset); - virtual uint32_t getTime(size_t segmentNumber); - virtual size_t getSegmentNumber(uint32_t time); + virtual uint32_t getTimescale(); + virtual void setSegmentOffset(uint32_t offset); + virtual uint64_t getTime(size_t segmentNumber); + virtual size_t getSegmentNumber(uint64_t time); protected: virtual void setBaseUrls(const std::vector<dash::mpd::IBaseUrl *> baseurls); - std::vector<dash::mpd::IBaseUrl *> baseUrls; - libdash::framework::mpd::IMPDWrapper *mpdWrapper; - dash::mpd::IPeriod *period; - dash::mpd::IAdaptationSet *adaptationSet; - dash::mpd::IRepresentation *representation; - uint32_t segmentOffset; - viper::managers::StreamType type; + std::vector<dash::mpd::IBaseUrl *> baseUrls; + libdash::framework::mpd::IMPDWrapper *mpdWrapper; + dash::mpd::IPeriod *period; + dash::mpd::IAdaptationSet *adaptationSet; + dash::mpd::IRepresentation *representation; + uint32_t segmentOffset; + viper::managers::StreamType type; }; } } diff --git a/MPD/IMPDWrapper.h b/MPD/IMPDWrapper.h index 7390494e..61a8a1c3 100644 --- a/MPD/IMPDWrapper.h +++ b/MPD/IMPDWrapper.h @@ -28,15 +28,15 @@ namespace mpd class IMPDWrapper { public: - virtual std::string getAvailabilityStarttime() = 0; - virtual std::string getTimeShiftBufferDepth() = 0; - virtual std::string getTypeWithoutLock() = 0; - virtual uint32_t getFetchTime() = 0; - virtual std::string getMinimumUpdatePeriodWithoutLock() = 0; - virtual std::vector<dash::mpd::IBaseUrl *> resolveBaseUrl(viper::managers::StreamType type, size_t mpdBaseUrl, size_t periodBaseUrl, size_t adaptationSetBaseUrl) = 0; - virtual std::vector<dash::mpd::IBaseUrl *> resolveBaseUrl(viper::managers::StreamType type, size_t mpdBaseUrl, size_t periodBaseUrl, size_t adaptationSetBaseUrl, dash::mpd::IMPD* mpd) = 0; - virtual void releaseLock() = 0; - virtual std::string getMediaPresentationDuration() = 0; + virtual std::string getAvailabilityStarttime() = 0; + virtual std::string getTimeShiftBufferDepth() = 0; + virtual std::string getTypeWithoutLock() = 0; + virtual uint32_t getFetchTime() = 0; + virtual std::string getMinimumUpdatePeriodWithoutLock() = 0; + virtual std::vector<dash::mpd::IBaseUrl *> resolveBaseUrl(viper::managers::StreamType type, size_t mpdBaseUrl, size_t periodBaseUrl, size_t adaptationSetBaseUrl) = 0; + virtual std::vector<dash::mpd::IBaseUrl *> resolveBaseUrl(viper::managers::StreamType type, size_t mpdBaseUrl, size_t periodBaseUrl, size_t adaptationSetBaseUrl, dash::mpd::IMPD* mpd) = 0; + virtual void releaseLock() = 0; + virtual std::string getMediaPresentationDuration() = 0; }; } } diff --git a/MPD/IRepresentationStream.h b/MPD/IRepresentationStream.h index 5734c4cf..bf8b08c4 100644 --- a/MPD/IRepresentationStream.h +++ b/MPD/IRepresentationStream.h @@ -44,8 +44,8 @@ public: virtual uint32_t getLastSegmentNumber() = 0; virtual uint32_t getAverageSegmentDuration() = 0; virtual void setSegmentOffset(uint32_t offset) = 0; - virtual uint32_t getTime(size_t segmentNumber) = 0; - virtual size_t getSegmentNumber(uint32_t time) = 0; + virtual uint64_t getTime(size_t segmentNumber) = 0; + virtual size_t getSegmentNumber(uint64_t time) = 0; }; diff --git a/MPD/MPDWrapper.cpp b/MPD/MPDWrapper.cpp index 4c8baa6b..163ed19d 100644 --- a/MPD/MPDWrapper.cpp +++ b/MPD/MPDWrapper.cpp @@ -141,7 +141,7 @@ void MPDWrapper::findVideoRepresentation (IMPD* mpd) } this->videoRepresentation = representations.at(0); this->initializeAdaptationSetStreamWithoutLock(viper::managers::StreamType::VIDEO, mpd); - this->videoSegmentNumber = this->videoRepresentations->find(this->videoRepresentation)->second->getSegmentNumber(time); + this->videoSegmentNumber = 0; } else { @@ -162,7 +162,7 @@ void MPDWrapper::findAudioRepresentation (IMPD* mpd) { if(id == std::stoi(representations.at(i)->GetId())) { - this->videoRepresentation = representations.at(i); + this->audioRepresentation = representations.at(i); this->destroyAdaptationSetStream(viper::managers::StreamType::AUDIO); this->initializeAdaptationSetStreamWithoutLock(viper::managers::StreamType::AUDIO, mpd); this->audioSegmentNumber = this->audioRepresentations->find(this->audioRepresentation)->second->getSegmentNumber(time); @@ -173,7 +173,7 @@ void MPDWrapper::findAudioRepresentation (IMPD* mpd) } this->audioRepresentation = representations.at(0); this->initializeAdaptationSetStreamWithoutLock(viper::managers::StreamType::AUDIO,mpd); - this->audioSegmentNumber = this->audioRepresentations->find(this->audioRepresentation)->second->getSegmentNumber(time); + this->audioSegmentNumber = 0; } else { diff --git a/MPD/SegmentTemplateStream.cpp b/MPD/SegmentTemplateStream.cpp index a62a9bab..409d8e59 100644 --- a/MPD/SegmentTemplateStream.cpp +++ b/MPD/SegmentTemplateStream.cpp @@ -179,10 +179,10 @@ void SegmentTemplateStream::calculateSegmentStartTimes() return; size_t numOfTimelines = 0; - uint32_t segStartTime = 0; - uint32_t segDuration = 0; + uint64_t segStartTime = 0; + uint64_t segDuration = 0; size_t repeatCount = 0; - uint32_t totalDuration = 0; + uint64_t totalDuration = 0; numOfTimelines = this->segmentTemplate->GetSegmentTimeline()->GetTimelines().size(); @@ -192,7 +192,6 @@ void SegmentTemplateStream::calculateSegmentStartTimes() segStartTime = this->segmentTemplate->GetSegmentTimeline()->GetTimelines().at(i)->GetStartTime(); segDuration = this->segmentTemplate->GetSegmentTimeline()->GetTimelines().at(i)->GetDuration(); totalDuration = totalDuration + segDuration; - if (repeatCount > 0) { for (size_t j = 0; j <= repeatCount; j++) @@ -215,7 +214,7 @@ void SegmentTemplateStream::calculateSegmentStartTimes() this->averageDuration = totalDuration / numOfTimelines; } -uint32_t SegmentTemplateStream::getTime(size_t segmentNumber) +uint64_t SegmentTemplateStream::getTime(size_t segmentNumber) { if(segmentNumber < this->segmentStartTimes.size()) return this->segmentStartTimes.at(segmentNumber); @@ -223,7 +222,7 @@ uint32_t SegmentTemplateStream::getTime(size_t segmentNumber) return 0; } -size_t SegmentTemplateStream::getSegmentNumber(uint32_t time) +size_t SegmentTemplateStream::getSegmentNumber(uint64_t time) { size_t i; for(i = 0; i < this->segmentStartTimes.size(); i ++) diff --git a/MPD/SegmentTemplateStream.h b/MPD/SegmentTemplateStream.h index 68d4f848..0bd0ad13 100644 --- a/MPD/SegmentTemplateStream.h +++ b/MPD/SegmentTemplateStream.h @@ -40,15 +40,15 @@ public: virtual uint32_t getSize(); virtual uint32_t getAverageSegmentDuration(); virtual uint32_t getTimescale(); - virtual uint32_t getTime(size_t segmentNumber); - virtual size_t getSegmentNumber(uint32_t time); + virtual uint64_t getTime(size_t segmentNumber); + virtual size_t getSegmentNumber(uint64_t time); private: dash::mpd::ISegmentTemplate* findSegmentTemplate(); void calculateSegmentStartTimes(); dash::mpd::ISegmentTemplate *segmentTemplate; - std::vector<uint32_t> segmentStartTimes; + std::vector<uint64_t> segmentStartTimes; uint32_t averageDuration; bool inSync; uint32_t currentSegment; |