Bug 1325905. Part 1 - add assertions to MDSM::Request{Audio,Video}Data.
MozReview-Commit-ID: JjRsv2wdLUq
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -1094,26 +1094,22 @@ private:
MOZ_ASSERT(NS_FAILED(aReject.mError), "Cancels should also disconnect mSeekRequest");
mMaster->DecodeError(aReject.mError);
}
void RequestAudioData()
{
MOZ_ASSERT(!mDoneAudioSeeking);
- MOZ_ASSERT(!mMaster->IsRequestingAudioData());
- MOZ_ASSERT(!mMaster->IsWaitingAudioData());
mMaster->RequestAudioData();
}
void RequestVideoData()
{
MOZ_ASSERT(!mDoneVideoSeeking);
- MOZ_ASSERT(!mMaster->IsRequestingVideoData());
- MOZ_ASSERT(!mMaster->IsWaitingVideoData());
mMaster->RequestVideoData(false, media::TimeUnit());
}
void AdjustFastSeekIfNeeded(MediaData* aSample)
{
if (mSeekJob.mTarget->IsFast() &&
mSeekJob.mTarget->GetTime() > mCurrentTimeBeforeSeek &&
aSample->mTime < mCurrentTimeBeforeSeek.ToMicroseconds()) {
@@ -2992,16 +2988,19 @@ MediaDecoderStateMachine::EnsureAudioDec
RequestAudioData();
}
void
MediaDecoderStateMachine::RequestAudioData()
{
MOZ_ASSERT(OnTaskQueue());
+ MOZ_ASSERT(IsAudioDecoding());
+ MOZ_ASSERT(!IsRequestingAudioData());
+ MOZ_ASSERT(!IsWaitingAudioData());
SAMPLE_LOG("Queueing audio task - queued=%i, decoder-queued=%o",
AudioQueue().GetSize(), mReader->SizeOfAudioQueueInFrames());
mAudioDataRequest.Begin(
mReader->RequestAudioData()->Then(
OwnerThread(), __func__,
[this] (MediaData* aAudio) {
MOZ_ASSERT(aAudio);
@@ -3053,16 +3052,19 @@ MediaDecoderStateMachine::EnsureVideoDec
media::TimeUnit::FromMicroseconds(GetMediaTime()));
}
void
MediaDecoderStateMachine::RequestVideoData(bool aSkipToNextKeyframe,
const media::TimeUnit& aCurrentTime)
{
MOZ_ASSERT(OnTaskQueue());
+ MOZ_ASSERT(IsVideoDecoding());
+ MOZ_ASSERT(!IsRequestingVideoData());
+ MOZ_ASSERT(!IsWaitingVideoData());
SAMPLE_LOG("Queueing video task - queued=%i, decoder-queued=%o, skip=%i, time=%lld",
VideoQueue().GetSize(), mReader->SizeOfVideoQueueInFrames(), aSkipToNextKeyframe,
aCurrentTime.ToMicroseconds());
TimeStamp videoDecodeStartTime = TimeStamp::Now();
mVideoDataRequest.Begin(
mReader->RequestVideoData(aSkipToNextKeyframe, aCurrentTime)->Then(
OwnerThread(), __func__,