aboutsummaryrefslogtreecommitdiffstats
path: root/Input
diff options
context:
space:
mode:
authorLuca Muscariello <lumuscar+fdio@cisco.com>2017-06-19 12:30:20 +0000
committerGerrit Code Review <gerrit@fd.io>2017-06-19 12:30:20 +0000
commite207b82a2b7e70e2700cf1c4237a2e819c655809 (patch)
treead1565a5d9aabb3c699a80404f60aa68ea56d914 /Input
parent0b0fe36cbc95a483d205d3f86fea579f0cdd5f59 (diff)
parentf8907f0a7a84928800adbbfd8e66e500794aa5d5 (diff)
Merge "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)" into viper/master
Diffstat (limited to 'Input')
-rw-r--r--Input/DASHReceiver.cpp26
-rw-r--r--Input/ICNConnectionConsumerApi.cpp2
2 files changed, 15 insertions, 13 deletions
diff --git a/Input/DASHReceiver.cpp b/Input/DASHReceiver.cpp
index df9d019b..bbfe3e35 100644
--- a/Input/DASHReceiver.cpp
+++ b/Input/DASHReceiver.cpp
@@ -55,6 +55,7 @@ DASHReceiver::DASHReceiver (IMPD *mpd, IDASHReceiverObserver *obs, Buff
this->adaptationSetStream = new AdaptationSetStream(mpd, period, adaptationSet);
this->representationStream = adaptationSetStream->getRepresentationStream(this->representation);
this->segmentOffset = CalculateSegmentOffset();
+ this->representationStream->setSegmentOffset(this->segmentOffset);
this->conn = NULL;
this->initConn = NULL;
@@ -131,20 +132,23 @@ MediaObject* DASHReceiver::GetNextSegment ()
while(this->isPaused)
SleepConditionVariableCS(&this->paused, &this->monitorPausedMutex, INFINITE);
- if(this->segmentNumber >= this->representationStream->getSize())
+ if(!strcmp(this->mpd->GetType().c_str(), "static"))
{
- qDebug("looping? : %s\n", this->isLooping ? "YES" : "NO");
- if(this->isLooping)
+ if(this->segmentNumber >= this->representationStream->getSize())
{
- this->segmentNumber = 0;
- }
- else
- {
- LeaveCriticalSection(&this->monitorPausedMutex);
- return NULL;
+ qDebug("looping? : %s\n", this->isLooping ? "YES" : "NO");
+ if(this->isLooping)
+ {
+ this->segmentNumber = 0;
+ }
+ else
+ {
+ LeaveCriticalSection(&this->monitorPausedMutex);
+ return NULL;
+ }
}
}
- seg = this->representationStream->getMediaSegment(this->segmentNumber + this->segmentOffset);
+ seg = this->representationStream->getMediaSegment(this->segmentNumber);
if (seg != NULL)
{
@@ -167,7 +171,7 @@ MediaObject* DASHReceiver::GetSegment (uint32_t segNum)
if(segNum >= this->representationStream->getSize())
return NULL;
- seg = this->representationStream->getMediaSegment(segNum + segmentOffset);
+ seg = this->representationStream->getMediaSegment(segNum);
if (seg != NULL)
{
diff --git a/Input/ICNConnectionConsumerApi.cpp b/Input/ICNConnectionConsumerApi.cpp
index d0b0c8c3..8f28e5ce 100644
--- a/Input/ICNConnectionConsumerApi.cpp
+++ b/Input/ICNConnectionConsumerApi.cpp
@@ -112,7 +112,6 @@ void ICNConnectionConsumerApi::InitForMPD(const std::string& url)
{
m_first = 1;
sizeDownloaded = 0;
- printf("initmpd %s\n", url.c_str());
m_name = url;
m_isFinished = false;
@@ -120,7 +119,6 @@ void ICNConnectionConsumerApi::InitForMPD(const std::string& url)
dataPos = 0;
datSize = 0;
- printf("initiated for mpd\n");
Debug("ICN_Connection:\tINTIATED_for_mpd %s\n", m_name.c_str());
}