Bug 1134064 - Part 2: Drop current reader when seeking outside range. r=mattwoodrow, a=lsblakk
--- a/dom/media/mediasource/MediaSourceReader.cpp
+++ b/dom/media/mediasource/MediaSourceReader.cpp
@@ -839,17 +839,22 @@ MediaSourceReader::OnAudioSeekFailed(nsr
void
MediaSourceReader::AttemptSeek()
{
// Make sure we don't hold the monitor while calling into the reader
// Seek methods since it can deadlock.
{
ReentrantMonitorAutoEnter mon(mDecoder->GetReentrantMonitor());
- if (!mWaitingForSeekData || !TrackBuffersContainTime(mPendingSeekTime)) {
+ if (!mWaitingForSeekData) {
+ return;
+ }
+ if (!TrackBuffersContainTime(mPendingSeekTime)) {
+ mVideoSourceDecoder = nullptr;
+ mAudioSourceDecoder = nullptr;
return;
}
mWaitingForSeekData = false;
}
ResetDecode();
for (uint32_t i = 0; i < mTrackBuffers.Length(); ++i) {
mTrackBuffers[i]->ResetDecode();