Bug 1378085 p5 - override HandleWaitingForAudio(), HandleAudioCanceled(), and HandleEndOfAudio(); r?jwwang
MozReview-Commit-ID: Jyw3yyutGjn
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -1101,38 +1101,32 @@ public:
RequestVideoData();
return;
}
MaybeFinishSeek();
}
void HandleWaitingForAudio() override
{
- if (!mSeekJob.mTarget->IsVideoOnly()) {
- MOZ_ASSERT(!mDoneAudioSeeking);
- mMaster->WaitForData(MediaData::AUDIO_DATA);
- }
+ MOZ_ASSERT(!mDoneAudioSeeking);
+ mMaster->WaitForData(MediaData::AUDIO_DATA);
}
void HandleAudioCanceled() override
{
- if (!mSeekJob.mTarget->IsVideoOnly()) {
- MOZ_ASSERT(!mDoneAudioSeeking);
- RequestAudioData();
- }
+ MOZ_ASSERT(!mDoneAudioSeeking);
+ RequestAudioData();
}
void HandleEndOfAudio() override
{
- if (!mSeekJob.mTarget->IsVideoOnly()) {
- MOZ_ASSERT(!mDoneAudioSeeking);
- AudioQueue().Finish();
- mDoneAudioSeeking = true;
- MaybeFinishSeek();
- }
+ MOZ_ASSERT(!mDoneAudioSeeking);
+ AudioQueue().Finish();
+ mDoneAudioSeeking = true;
+ MaybeFinishSeek();
}
void HandleWaitingForVideo() override
{
MOZ_ASSERT(!mDoneVideoSeeking);
mMaster->WaitForData(MediaData::VIDEO_DATA);
}
@@ -1786,16 +1780,22 @@ public:
MOZ_ASSERT(aAudio);
// Video-only seek doesn't reset audio decoder. There might be pending audio
// requests when AccurateSeekTask::Seek() begins. We will just store the
// data without checking |mDiscontinuity| or calling
// DropAudioUpToSeekTarget().
mMaster->PushAudio(aAudio);
}
+
+ void HandleWaitingForAudio() override { }
+
+ void HandleAudioCanceled() override { }
+
+ void HandleEndOfAudio() override { }
};
RefPtr<MediaDecoder::SeekPromise>
MediaDecoderStateMachine::DormantState::HandleSeek(SeekTarget aTarget)
{
if (aTarget.IsNextFrame()) {
// NextFrameSeekingState doesn't reset the decoder unlike
// AccurateSeekingState. So we first must come out of dormant by seeking to