зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1261900: [MSE] P4. Only evict no longer used data from resource. r=gerald
This commit is contained in:
Родитель
d52e089910
Коммит
f0d5590b9d
|
@ -1269,9 +1269,21 @@ TrackBuffersManager::CompleteCodedFrameProcessing()
|
|||
|
||||
// 6. Remove the media segment bytes from the beginning of the input buffer.
|
||||
// Clear our demuxer from any already processed data.
|
||||
// As we have handled a complete media segment, it is safe to evict all data
|
||||
// from the resource.
|
||||
mCurrentInputBuffer->EvictAll();
|
||||
int64_t safeToEvict = std::min(
|
||||
HasVideo()
|
||||
? mVideoTracks.mDemuxer->GetEvictionOffset(mVideoTracks.mLastParsedEndTime)
|
||||
: INT64_MAX,
|
||||
HasAudio()
|
||||
? mAudioTracks.mDemuxer->GetEvictionOffset(mAudioTracks.mLastParsedEndTime)
|
||||
: INT64_MAX);
|
||||
ErrorResult rv;
|
||||
mCurrentInputBuffer->EvictBefore(safeToEvict, rv);
|
||||
if (rv.Failed()) {
|
||||
rv.SuppressException();
|
||||
RejectProcessing(NS_ERROR_OUT_OF_MEMORY, __func__);
|
||||
return;
|
||||
}
|
||||
|
||||
mInputDemuxer->NotifyDataRemoved();
|
||||
RecreateParser(true);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче