aboutsummaryrefslogtreecommitdiffstats
path: root/MPD
diff options
context:
space:
mode:
Diffstat (limited to 'MPD')
-rw-r--r--MPD/AbstractRepresentationStream.cpp4
-rw-r--r--MPD/AbstractRepresentationStream.h32
-rw-r--r--MPD/IMPDWrapper.h18
-rw-r--r--MPD/IRepresentationStream.h4
-rw-r--r--MPD/MPDWrapper.cpp6
-rw-r--r--MPD/SegmentTemplateStream.cpp11
-rw-r--r--MPD/SegmentTemplateStream.h6
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;