зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1307699. Part 4 - move DiscardSeekTaskIfExist() into the exit action of SeekingState. r=kaku
MozReview-Commit-ID: 9FDgZLHg8Wj --HG-- extra : rebase_source : a9bd00682c8de6dae29a5ca0e9e5fd7988341cfe
This commit is contained in:
Родитель
96d4a513a3
Коммит
52c66ad894
|
@ -400,7 +400,6 @@ public:
|
|||
|
||||
void Enter() override
|
||||
{
|
||||
mMaster->DiscardSeekTaskIfExist();
|
||||
if (mMaster->IsPlaying()) {
|
||||
mMaster->StopPlayback();
|
||||
}
|
||||
|
@ -672,9 +671,6 @@ public:
|
|||
|
||||
void Enter() override
|
||||
{
|
||||
// Discard the existing seek task.
|
||||
mMaster->DiscardSeekTaskIfExist();
|
||||
|
||||
// SeekTask will register its callbacks to MediaDecoderReaderWrapper.
|
||||
mMaster->CancelMediaDecoderReaderWrapperCallback();
|
||||
|
||||
|
@ -737,6 +733,15 @@ public:
|
|||
void Exit() override
|
||||
{
|
||||
mSeekTaskRequest.DisconnectIfExists();
|
||||
|
||||
if (mMaster->mSeekTask) {
|
||||
mMaster->mCurrentSeek.RejectIfExists(__func__);
|
||||
mMaster->mSeekTask->Discard();
|
||||
mMaster->mSeekTask = nullptr;
|
||||
|
||||
// Reset the MediaDecoderReaderWrapper's callbask.
|
||||
mMaster->SetMediaDecoderReaderWrapperCallback();
|
||||
}
|
||||
}
|
||||
|
||||
State GetState() const override
|
||||
|
@ -828,8 +833,6 @@ private:
|
|||
}
|
||||
|
||||
mMaster->DecodeError(aValue.mError);
|
||||
|
||||
mMaster->DiscardSeekTaskIfExist();
|
||||
}
|
||||
|
||||
void SeekCompleted()
|
||||
|
@ -879,10 +882,6 @@ private:
|
|||
// to ensure that the seeked event is fired prior loadeded.
|
||||
mMaster->mCurrentSeek.Resolve(nextState == DECODER_STATE_COMPLETED, __func__);
|
||||
|
||||
// Discard and nullify the seek task.
|
||||
// Reset the MediaDecoderReaderWrapper's callbask.
|
||||
mMaster->DiscardSeekTaskIfExist();
|
||||
|
||||
// NOTE: Discarding the mSeekTask must be done before here. The following code
|
||||
// might ask the MediaDecoderReaderWrapper to request media data, however, the
|
||||
// SeekTask::Discard() will ask MediaDecoderReaderWrapper to discard media
|
||||
|
@ -1967,8 +1966,6 @@ MediaDecoderStateMachine::Shutdown()
|
|||
|
||||
mQueuedSeek.RejectIfExists(__func__);
|
||||
|
||||
DiscardSeekTaskIfExist();
|
||||
|
||||
// Shutdown happens will decode timer is active, we need to disconnect and
|
||||
// dispose of the timer.
|
||||
mVideoDecodeSuspendTimer.Reset();
|
||||
|
@ -2316,19 +2313,6 @@ MediaDecoderStateMachine::InitiateSeek(SeekJob aSeekJob)
|
|||
mStateObj->Enter();
|
||||
}
|
||||
|
||||
void
|
||||
MediaDecoderStateMachine::DiscardSeekTaskIfExist()
|
||||
{
|
||||
if (mSeekTask) {
|
||||
mCurrentSeek.RejectIfExists(__func__);
|
||||
mSeekTask->Discard();
|
||||
mSeekTask = nullptr;
|
||||
|
||||
// Reset the MediaDecoderReaderWrapper's callbask.
|
||||
SetMediaDecoderReaderWrapperCallback();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
MediaDecoderStateMachine::DispatchAudioDecodeTaskIfNeeded()
|
||||
{
|
||||
|
|
|
@ -622,10 +622,6 @@ private:
|
|||
// mSeekTask is responsible for executing the current seek request.
|
||||
RefPtr<SeekTask> mSeekTask;
|
||||
|
||||
// This method discards the seek task and then get the ownership of
|
||||
// MedaiDecoderReaderWarpper back via registering MDSM's callback into it.
|
||||
void DiscardSeekTaskIfExist();
|
||||
|
||||
// Media Fragment end time in microseconds. Access controlled by decoder monitor.
|
||||
int64_t mFragmentEndTime;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче