aboutsummaryrefslogtreecommitdiffstats
path: root/MPD/SegmentListStream.cpp
diff options
context:
space:
mode:
authorjacko <jsamain+fdio@cisco.com>2017-06-23 16:12:18 +0200
committerjacko <jsamain+fdio@cisco.com>2017-06-23 16:12:18 +0200
commita644414fd2c3a3f7f41e716b6875a78981e4cfe1 (patch)
tree13fc8ff2f6072add96f987a1a68a15c22d68d911 /MPD/SegmentListStream.cpp
parentf8907f0a7a84928800adbbfd8e66e500794aa5d5 (diff)
adding mpd live handling + automatic mpd fetching
Change-Id: I2c05bdf6a4d940ad22bb8632268f4b63a08a80a8 Signed-off-by: jacko <jsamain+fdio@cisco.com>
Diffstat (limited to 'MPD/SegmentListStream.cpp')
-rw-r--r--MPD/SegmentListStream.cpp22
1 files changed, 17 insertions, 5 deletions
diff --git a/MPD/SegmentListStream.cpp b/MPD/SegmentListStream.cpp
index 3a475e71..c3530086 100644
--- a/MPD/SegmentListStream.cpp
+++ b/MPD/SegmentListStream.cpp
@@ -14,10 +14,19 @@
using namespace dash::mpd;
using namespace libdash::framework::mpd;
-SegmentListStream::SegmentListStream(IMPD *mpd, IPeriod *period, IAdaptationSet *adaptationSet, IRepresentation *representation) :
- AbstractRepresentationStream (mpd, period, adaptationSet, representation)
+SegmentListStream::SegmentListStream(viper::managers::StreamType type, MPDWrapper *mpdWrapper, dash::mpd::IPeriod *period, dash::mpd::IAdaptationSet *adaptationSet, dash::mpd::IRepresentation *representation) :
+ AbstractRepresentationStream (type, mpdWrapper, period, adaptationSet, representation)
{
- this->baseUrls = BaseUrlResolver::resolveBaseUrl(mpd, period, adaptationSet, 0, 0, 0);
+ this->baseUrls = BaseUrlResolver::resolveBaseUrl(type, mpdWrapper, 0, 0, 0);
+// this->baseUrls = mpdWrapper->resolveBaseUrl(type, mpdWrapper, 0, 0, 0);
+ this->segmentList = findSegmentList();
+}
+
+SegmentListStream::SegmentListStream(viper::managers::StreamType type, MPDWrapper *mpdWrapper, dash::mpd::IPeriod *period, dash::mpd::IAdaptationSet *adaptationSet, dash::mpd::IRepresentation *representation, dash::mpd::IMPD* mpd) :
+ AbstractRepresentationStream (type, mpdWrapper, period, adaptationSet, representation)
+{
+ this->baseUrls = BaseUrlResolver::resolveBaseUrl(type, mpdWrapper, 0, 0, 0, mpd);
+// this->baseUrls = mpdWrapper->resolveBaseUrl(type, mpdWrapper, 0, 0, 0);
this->segmentList = findSegmentList();
}
@@ -28,16 +37,19 @@ SegmentListStream::~SegmentListStream()
ISegment* SegmentListStream::getInitializationSegment()
{
if (this->segmentList->GetInitialization())
+ {
return this->segmentList->GetInitialization()->ToSegment(this->baseUrls);
-
+ }
return NULL;
}
ISegment* SegmentListStream::getIndexSegment(size_t segmentNumber)
{
if (this->segmentList->GetSegmentURLs().size() > segmentNumber)
+ {
+ this->mpdWrapper->releaseLock();
return this->segmentList->GetSegmentURLs().at(segmentNumber)->ToIndexSegment(this->baseUrls);
-
+ }
return NULL;
}