Commit 22d7d975 authored by Francois Cartegnie's avatar Francois Cartegnie

demux: adaptative: add setPosition by segment number

parent b40ef139
......@@ -133,14 +133,21 @@ SegmentChunk * SegmentTracker::getNextChunk(bool switch_allowed)
return chunk;
}
bool SegmentTracker::setPosition(mtime_t time, bool restarted, bool tryonly)
bool SegmentTracker::setPositionByTime(mtime_t time, bool restarted, bool tryonly)
{
uint64_t segnumber;
if(prevRepresentation &&
prevRepresentation->getSegmentNumberByTime(time, &segnumber))
{
if(!tryonly)
{
setPositionByNumber(segnumber, restarted);
return true;
}
return false;
}
void SegmentTracker::setPositionByNumber(uint64_t segnumber, bool restarted)
{
if(restarted)
{
initializing = true;
......@@ -149,10 +156,6 @@ bool SegmentTracker::setPosition(mtime_t time, bool restarted, bool tryonly)
}
count = segnumber;
sequence_set = true;
}
return true;
}
return false;
}
mtime_t SegmentTracker::getSegmentStart() const
......
......@@ -287,7 +287,7 @@ bool Stream::setPosition(mtime_t time, bool tryonly)
if(!output)
return false;
bool ret = segmentTracker->setPosition(time, output->reinitsOnSeek(), tryonly);
bool ret = segmentTracker->setPositionByTime(time, output->reinitsOnSeek(), tryonly);
if(!tryonly && ret)
{
output->setPosition(time);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment