Bug 1325905. Part 2 - move IsWaitForDataSupported() assertions into MediaDecoderReaderWrapper. r=kaku

MozReview-Commit-ID: 6KwjHONHKo

--HG--
extra : rebase_source : f6da0198c63f27d002d5118ac8a12d436d9c2586
extra : intermediate-source : 1100a896ff400a101ac166cc82e75e28b37e2c5e
extra : source : 19cab6225fc2969fd5f1f445f48c90b2de2481e7
This commit is contained in:
JW Wang 2016-12-21 17:37:56 +08:00
Родитель 9d8e66b8c1
Коммит 6b395243f2
3 изменённых файлов: 8 добавлений и 9 удалений

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

@ -13,7 +13,11 @@ MediaDecoderReaderWrapper::MediaDecoderReaderWrapper(AbstractThread* aOwnerThrea
MediaDecoderReader* aReader)
: mOwnerThread(aOwnerThread)
, mReader(aReader)
{}
{
// Must support either heuristic buffering or WaitForData().
MOZ_ASSERT(mReader->UseBufferingHeuristics() ||
mReader->IsWaitForDataSupported());
}
MediaDecoderReaderWrapper::~MediaDecoderReaderWrapper()
{}
@ -92,6 +96,7 @@ RefPtr<MediaDecoderReaderWrapper::WaitForDataPromise>
MediaDecoderReaderWrapper::WaitForData(MediaData::Type aType)
{
MOZ_ASSERT(mOwnerThread->IsCurrentThreadIn());
MOZ_ASSERT(mReader->IsWaitForDataSupported());
return InvokeAsync(mReader->OwnerThread(), mReader.get(), __func__,
&MediaDecoderReader::WaitForData, aType);
}

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

@ -52,7 +52,6 @@ public:
void ResetDecode(TrackSet aTracks);
nsresult Init() { return mReader->Init(); }
bool IsWaitForDataSupported() const { return mReader->IsWaitForDataSupported(); }
bool IsAsync() const { return mReader->IsAsync(); }
bool UseBufferingHeuristics() const { return mReader->UseBufferingHeuristics(); }

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

@ -236,8 +236,8 @@ protected:
// We are expecting more data if either the resource states so, or if we
// have a waiting promise pending (such as with non-MSE EME).
return Resource()->IsExpectingMoreData() ||
(Reader()->IsWaitForDataSupported() &&
(mMaster->IsWaitingAudioData() || mMaster->IsWaitingVideoData()));
mMaster->IsWaitingAudioData() ||
mMaster->IsWaitingVideoData();
}
MediaQueue<MediaData>& AudioQueue() const { return mMaster->mAudioQueue; }
MediaQueue<MediaData>& VideoQueue() const { return mMaster->mVideoQueue; }
@ -1746,8 +1746,6 @@ StateObject::HandleNotDecoded(MediaData::Type aType, const MediaResult& aError)
// If the decoder is waiting for data, we tell it to call us back when the
// data arrives.
if (aError == NS_ERROR_DOM_MEDIA_WAITING_FOR_DATA) {
MOZ_ASSERT(Reader()->IsWaitForDataSupported(),
"Readers that send WAITING_FOR_DATA need to implement WaitForData");
mMaster->WaitForData(aType);
HandleWaitingForData();
return;
@ -2077,7 +2075,6 @@ DecodingState::MaybeStartBuffering()
mMaster->HasLowDecodedData() &&
mMaster->HasLowBufferedData();
} else {
MOZ_ASSERT(Reader()->IsWaitForDataSupported());
shouldBuffer =
(mMaster->OutOfDecodedAudio() && mMaster->IsWaitingAudioData()) ||
(mMaster->OutOfDecodedVideo() && mMaster->IsWaitingVideoData());
@ -2165,8 +2162,6 @@ BufferingState::Step()
return;
}
} else if (mMaster->OutOfDecodedAudio() || mMaster->OutOfDecodedVideo()) {
MOZ_ASSERT(Reader()->IsWaitForDataSupported(),
"Don't yet have a strategy for non-heuristic + non-WaitForData");
mMaster->DispatchDecodeTasksIfNeeded();
MOZ_ASSERT(mMaster->mMinimizePreroll ||
!mMaster->OutOfDecodedAudio() ||