Merge "Addressing issue about different position of the segmentTemplate in MPD" into...
authorMauro Sardara <[email protected]>
Wed, 8 Nov 2017 11:10:13 +0000 (11:10 +0000)
committerGerrit Code Review <[email protected]>
Wed, 8 Nov 2017 11:10:13 +0000 (11:10 +0000)
1  2 
MPD/MPDWrapper.cpp
MPD/SegmentTemplateStream.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:
Simple merge