mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 11:25:00 +00:00
Bug 1189138
: [MSE] P3. Properly shift our demuxing index when data is added. r=gerald
Should frames be added before our current demuxing position, we must shift the index ; otherwise the next retrieved frames will be the wrong one.
This commit is contained in:
parent
1885ed42a2
commit
fa6675ed02
@ -1516,6 +1516,14 @@ TrackBuffersManager::InsertFrames(TrackBuffer& aSamples,
|
||||
CheckNextInsertionIndex(aTrackData,
|
||||
TimeUnit::FromMicroseconds(aSamples[0]->mTime));
|
||||
|
||||
// Adjust our demuxing index if necessary.
|
||||
if (trackBuffer.mNextGetSampleIndex.isSome() &&
|
||||
(trackBuffer.mNextInsertionIndex.ref() < trackBuffer.mNextGetSampleIndex.ref() ||
|
||||
(trackBuffer.mNextInsertionIndex.ref() == trackBuffer.mNextGetSampleIndex.ref() &&
|
||||
aIntervals.GetEnd() < trackBuffer.mNextSampleTime))) {
|
||||
trackBuffer.mNextGetSampleIndex.ref() += aSamples.Length();
|
||||
}
|
||||
|
||||
TrackBuffer& data = trackBuffer.mBuffers.LastElement();
|
||||
data.InsertElementsAt(trackBuffer.mNextInsertionIndex.ref(), aSamples);
|
||||
trackBuffer.mNextInsertionIndex.ref() += aSamples.Length();
|
||||
|
Loading…
Reference in New Issue
Block a user