Bug 1322800 part 11 - use SeekingState::mSeekJob.mTarget to replace NextFrameSeekTask::mTarget; r?jwwang
MozReview-Commit-ID: DkkOoAEgNfH
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -1540,17 +1540,17 @@ private:
MOZ_ASSERT_UNREACHABLE("We cannot handle RAW_DATA or NULL_DATA here.");
}
}
int64_t CalculateNewCurrentTime() const override
{
// The HTMLMediaElement.currentTime should be updated to the seek target
// which has been updated to the next frame's time.
- return mTask->mTarget.GetTime().ToMicroseconds();
+ return mSeekJob.mTarget.GetTime().ToMicroseconds();
}
void OnSeekTaskResolved(const SeekTaskResolveValue& aValue)
{
mSeekTaskRequest.Complete();
if (aValue.mSeekedAudioData) {
mMaster->Push(aValue.mSeekedAudioData);
@@ -1624,32 +1624,32 @@ private:
}
// Update the seek target's time before resolving this seek task, the updated
// time will be used in the MDSM::SeekCompleted() to update the MDSM's position.
void UpdateSeekTargetTime()
{
RefPtr<MediaData> data = VideoQueue().PeekFront();
if (data) {
- mTask->mTarget.SetTime(TimeUnit::FromMicroseconds(data->mTime));
+ mSeekJob.mTarget.SetTime(TimeUnit::FromMicroseconds(data->mTime));
} else if (mTask->mSeekedVideoData) {
- mTask->mTarget.SetTime(TimeUnit::FromMicroseconds(mTask->mSeekedVideoData->mTime));
+ mSeekJob.mTarget.SetTime(TimeUnit::FromMicroseconds(mTask->mSeekedVideoData->mTime));
} else if (mTask->mIsVideoQueueFinished || VideoQueue().AtEndOfStream()) {
- mTask->mTarget.SetTime(mTask->mDuration);
+ mSeekJob.mTarget.SetTime(mTask->mDuration);
} else {
MOZ_ASSERT(false, "No data!");
}
}
void MaybeFinishSeek()
{
if (IsAudioSeekComplete() && IsVideoSeekComplete()) {
UpdateSeekTargetTime();
- auto time = mTask->mTarget.GetTime().ToMicroseconds();
+ auto time = mSeekJob.mTarget.GetTime().ToMicroseconds();
DiscardFrames(AudioQueue(), [time] (int64_t aSampleTime) {
return aSampleTime < time;
});
mTask->Resolve(__func__); // Call to MDSM::SeekCompleted();
}
}