Bug 1112822 - Don't allow MP4Reader to decode if someone shut it down. r=mattwoodrow

This commit is contained in:
Chris Pearce 2015-01-15 15:49:38 +13:00
Родитель 0c1b1063c8
Коммит 2d7d331a93
1 изменённых файлов: 14 добавлений и 1 удалений

Просмотреть файл

@ -525,6 +525,14 @@ MP4Reader::RequestVideoData(bool aSkipToNextKeyframe,
MOZ_ASSERT(GetTaskQueue()->IsCurrentThreadIn());
VLOG("RequestVideoData skip=%d time=%lld", aSkipToNextKeyframe, aTimeThreshold);
if (mShutdown) {
NS_WARNING("RequestVideoData on shutdown MP4Reader!");
MonitorAutoLock lock(mVideo.mMonitor);
nsRefPtr<VideoDataPromise> p = mVideo.mPromise.Ensure(__func__);
p->Reject(CANCELED, __func__);
return p;
}
MOZ_ASSERT(HasVideo() && mPlatform && mVideo.mDecoder);
bool eos = false;
@ -555,7 +563,12 @@ MP4Reader::RequestAudioData()
VLOG("RequestAudioData");
MonitorAutoLock lock(mAudio.mMonitor);
nsRefPtr<AudioDataPromise> p = mAudio.mPromise.Ensure(__func__);
ScheduleUpdate(kAudio);
if (!mShutdown) {
ScheduleUpdate(kAudio);
} else {
NS_WARNING("RequestAudioData on shutdown MP4Reader!");
p->Reject(CANCELED, __func__);
}
return p;
}