From: Mauro Sardara Date: Wed, 8 Nov 2017 11:10:13 +0000 (+0000) Subject: Merge "Addressing issue about different position of the segmentTemplate in MPD" into... X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=3abd95a2501be987eca0fa5c59f01e84a98cf202;p=cicn.git Merge "Addressing issue about different position of the segmentTemplate in MPD" into viper/master --- 3abd95a2501be987eca0fa5c59f01e84a98cf202 diff --cc MPD/MPDWrapper.cpp index 6d6fa9e5,1e085546..0b1d9596 --- a/MPD/MPDWrapper.cpp +++ b/MPD/MPDWrapper.cpp @@@ -671,9 -656,37 +676,38 @@@ MediaObject* MPDWrapper::getNextSegmen if(seg != NULL) { MediaObject *media = new MediaObject(seg, representation, withFeedBack); + if(segDuration == 0) + { + uint32_t duration = 0; + uint32_t timescale = 0; + + if(representation->GetSegmentTemplate()) + { + duration = representation->GetSegmentTemplate()->GetDuration(); + timescale = representation->GetSegmentTemplate()->GetTimescale(); + } + else + { + if(adaptationSet->GetSegmentTemplate()) + { + duration = adaptationSet->GetSegmentTemplate()->GetDuration(); + timescale = adaptationSet->GetSegmentTemplate()->GetTimescale(); + } + else + { + if(this->period->GetSegmentTemplate()) + { + duration = this->period->GetSegmentTemplate()->GetDuration(); + timescale = this->period->GetSegmentTemplate()->GetTimescale(); + } + } + } + segDuration = 1.0*duration/(1.0*timescale) * 1000; + + } media->SetSegmentDuration(segDuration); segmentNumber++; + switch(type) { case viper::managers::StreamType::AUDIO: