Skip to content

Commit ca51f49

Browse files
committed
demux: dash: enable passive seek for templates as well
1 parent 652977b commit ca51f49

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

modules/demux/dash/mpd/SegmentInformation.cpp

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -159,15 +159,29 @@ ISegment * SegmentInformation::getSegment(SegmentInfoType type, uint64_t pos) co
159159

160160
bool SegmentInformation::getSegmentNumberByTime(mtime_t time, uint64_t *ret) const
161161
{
162-
SegmentList *segList = inheritSegmentList();
163-
if ( segList->getDuration() )
162+
SegmentList *segList;
163+
SegmentTemplate *segTemplate;
164+
uint64_t timescale;
165+
mtime_t duration = 0;
166+
if ( (segList = inheritSegmentList()) )
167+
{
168+
timescale = segList->timescale.Get();
169+
duration = segList->getDuration();
170+
}
171+
else if( (segTemplate = inheritSegmentTemplate(INFOTYPE_MEDIA)) )
172+
{
173+
timescale = segTemplate->timescale.Get();
174+
duration = segTemplate->duration.Get();
175+
}
176+
177+
if(duration)
164178
{
165-
uint64_t timescale = segList->timescale.Get();
166179
if(!timescale)
167-
timescale = getTimescale();
168-
*ret = time / (CLOCK_FREQ * segList->getDuration() / timescale);
180+
timescale = getTimescale(); /* inherit */
181+
*ret = time / (CLOCK_FREQ * duration / timescale);
169182
return true;
170183
}
184+
171185
return false;
172186
}
173187

0 commit comments

Comments
 (0)