Bug 1328811. Part 3 - inline NeedToDecode{Audio,Video} for DispatchDecodeTasksIfNeeded is the only caller.
MozReview-Commit-ID: H1K6LJCjk4B
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -2514,28 +2514,16 @@ MediaDecoderStateMachine::HaveEnoughDeco
bool
MediaDecoderStateMachine::HaveEnoughDecodedVideo()
{
MOZ_ASSERT(OnTaskQueue());
return VideoQueue().GetSize() >= GetAmpleVideoFrames() * mPlaybackRate + 1;
}
bool
-MediaDecoderStateMachine::NeedToDecodeVideo()
-{
- MOZ_ASSERT(OnTaskQueue());
- SAMPLE_LOG("NeedToDecodeVideo() isDec=%d minPrl=%d enufVid=%d",
- IsVideoDecoding(), mMinimizePreroll, HaveEnoughDecodedVideo());
- return IsVideoDecoding() &&
- mState != DECODER_STATE_SEEKING &&
- ((!mSentFirstFrameLoadedEvent && VideoQueue().GetSize() == 0) ||
- (!mMinimizePreroll && !HaveEnoughDecodedVideo()));
-}
-
-bool
MediaDecoderStateMachine::NeedToSkipToNextKeyframe()
{
MOZ_ASSERT(OnTaskQueue());
// Don't skip when we're still decoding first frames.
if (!mSentFirstFrameLoadedEvent) {
return false;
}
MOZ_ASSERT(mState == DECODER_STATE_DECODING ||
@@ -2581,29 +2569,16 @@ MediaDecoderStateMachine::NeedToSkipToNe
DECODER_LOG("Skipping video decode to the next keyframe lowAudio=%d lowVideo=%d lowUndecoded=%d async=%d",
isLowOnDecodedAudio, isLowOnDecodedVideo, lowBuffered, mReader->IsAsync());
return true;
}
return false;
}
-bool
-MediaDecoderStateMachine::NeedToDecodeAudio()
-{
- MOZ_ASSERT(OnTaskQueue());
- SAMPLE_LOG("NeedToDecodeAudio() isDec=%d minPrl=%d enufAud=%d",
- IsAudioDecoding(), mMinimizePreroll, HaveEnoughDecodedAudio());
-
- return IsAudioDecoding() &&
- mState != DECODER_STATE_SEEKING &&
- ((!mSentFirstFrameLoadedEvent && AudioQueue().GetSize() == 0) ||
- (!mMinimizePreroll && !HaveEnoughDecodedAudio()));
-}
-
void
MediaDecoderStateMachine::PushAudio(MediaData* aSample)
{
MOZ_ASSERT(OnTaskQueue());
MOZ_ASSERT(aSample);
AudioQueue().Push(aSample);
}
@@ -2962,18 +2937,27 @@ MediaDecoderStateMachine::DispatchDecode
if (mState != DECODER_STATE_DECODING &&
mState != DECODER_STATE_DECODING_FIRSTFRAME &&
mState != DECODER_STATE_BUFFERING &&
mState != DECODER_STATE_SEEKING) {
return;
}
- const bool needToDecodeAudio = NeedToDecodeAudio();
- const bool needToDecodeVideo = NeedToDecodeVideo();
+ const bool needToDecodeAudio =
+ IsAudioDecoding() &&
+ mState != DECODER_STATE_SEEKING &&
+ ((!mSentFirstFrameLoadedEvent && AudioQueue().GetSize() == 0) ||
+ (!mMinimizePreroll && !HaveEnoughDecodedAudio()));
+
+ const bool needToDecodeVideo =
+ IsVideoDecoding() &&
+ mState != DECODER_STATE_SEEKING &&
+ ((!mSentFirstFrameLoadedEvent && VideoQueue().GetSize() == 0) ||
+ (!mMinimizePreroll && !HaveEnoughDecodedVideo()));
SAMPLE_LOG("DispatchDecodeTasksIfNeeded needAudio=%d audioStatus=%s needVideo=%d videoStatus=%s",
needToDecodeAudio, AudioRequestStatus(),
needToDecodeVideo, VideoRequestStatus());
if (needToDecodeAudio) {
EnsureAudioDecodeTaskQueued();
}
--- a/dom/media/MediaDecoderStateMachine.h
+++ b/dom/media/MediaDecoderStateMachine.h
@@ -336,24 +336,16 @@ protected:
void VolumeChanged();
void SetPlaybackRate(double aPlaybackRate);
void PreservesPitchChanged();
MediaQueue<MediaData>& AudioQueue() { return mAudioQueue; }
MediaQueue<MediaData>& VideoQueue() { return mVideoQueue; }
- // True if our buffers of decoded audio are not full, and we should
- // decode more.
- bool NeedToDecodeAudio();
-
- // True if our buffers of decoded video are not full, and we should
- // decode more.
- bool NeedToDecodeVideo();
-
// True if we are low in decoded audio/video data.
// May not be invoked when mReader->UseBufferingHeuristics() is false.
bool HasLowDecodedData();
bool HasLowDecodedAudio();
bool HasLowDecodedVideo();