Bug 1314526. Part 1 - fix HandleCDMProxyReady().
MozReview-Commit-ID: 9PyeBUXadud
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -188,18 +188,17 @@ class MediaDecoderStateMachine::StateObj
{
public:
virtual ~StateObject() {}
virtual void Exit() {}; // Exit action.
virtual void Step() {} // Perform a 'cycle' of this state object.
virtual State GetState() const = 0;
// Event handlers for various events.
- // Return true if the event is handled by this state object.
- virtual bool HandleCDMProxyReady() { return false; }
+ virtual void HandleCDMProxyReady() {}
virtual bool HandleAudioDecoded(MediaData* aAudio) { return false; }
virtual bool HandleVideoDecoded(MediaData* aVideo, TimeStamp aDecodeStart)
{
return false;
}
@@ -369,17 +368,17 @@ public:
mPendingSeek.RejectIfExists(__func__);
}
State GetState() const override
{
return DECODER_STATE_WAIT_FOR_CDM;
}
- bool HandleCDMProxyReady() override;
+ void HandleCDMProxyReady() override;
RefPtr<MediaDecoder::SeekPromise> HandleSeek(SeekTarget aTarget) override
{
SLOG("Not Enough Data to seek at this stage, queuing seek");
mPendingSeek.RejectIfExists(__func__);
mPendingSeek.mTarget = aTarget;
return mPendingSeek.mPromise.Ensure(__func__);
}
@@ -1312,22 +1311,21 @@ DormantState::HandlePlayStateChanged(Med
{
if (aPlayState == MediaDecoder::PLAY_STATE_PLAYING) {
// Exit dormant when the user wants to play.
MOZ_ASSERT(!Info().IsEncrypted() || mMaster->mCDMProxy);
SetState<DecodingFirstFrameState>(Move(mPendingSeek));
}
}
-bool
+void
MediaDecoderStateMachine::
WaitForCDMState::HandleCDMProxyReady()
{
SetState<DecodingFirstFrameState>(Move(mPendingSeek));
- return true;
}
void
MediaDecoderStateMachine::
DecodingFirstFrameState::Enter(SeekJob aPendingSeek)
{
// Handle pending seek.
if (aPendingSeek.Exists() &&