зеркало из https://github.com/mozilla/gecko-dev.git
Bug 525401 - Fix resuming from pause when playing poorly muxed videos. r=chris.double
--HG-- extra : rebase_source : 36bed71b92803c1b2f864cdd090db7d575b58d6b
This commit is contained in:
Родитель
2483ac7833
Коммит
0087b72a49
|
@ -1084,9 +1084,6 @@ void nsOggDecodeStateMachine::StartPlayback()
|
||||||
// Null out mPauseStartTime
|
// Null out mPauseStartTime
|
||||||
mPauseStartTime = TimeStamp();
|
mPauseStartTime = TimeStamp();
|
||||||
}
|
}
|
||||||
mPlayStartTime = TimeStamp::Now();
|
|
||||||
mPauseDuration = 0;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void nsOggDecodeStateMachine::StopPlayback()
|
void nsOggDecodeStateMachine::StopPlayback()
|
||||||
|
@ -1107,9 +1104,6 @@ void nsOggDecodeStateMachine::PausePlayback()
|
||||||
mAudioStream->Pause();
|
mAudioStream->Pause();
|
||||||
mPlaying = PR_FALSE;
|
mPlaying = PR_FALSE;
|
||||||
mPauseStartTime = TimeStamp::Now();
|
mPauseStartTime = TimeStamp::Now();
|
||||||
if (mAudioStream->GetPosition() < 0) {
|
|
||||||
mLastFrame = mDecodedFrames.ResetTimes(mCallbackPeriod);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void nsOggDecodeStateMachine::ResumePlayback()
|
void nsOggDecodeStateMachine::ResumePlayback()
|
||||||
|
@ -1128,8 +1122,6 @@ void nsOggDecodeStateMachine::ResumePlayback()
|
||||||
// Null out mPauseStartTime
|
// Null out mPauseStartTime
|
||||||
mPauseStartTime = TimeStamp();
|
mPauseStartTime = TimeStamp();
|
||||||
}
|
}
|
||||||
mPlayStartTime = TimeStamp::Now();
|
|
||||||
mPauseDuration = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void nsOggDecodeStateMachine::UpdatePlaybackPosition(float aTime)
|
void nsOggDecodeStateMachine::UpdatePlaybackPosition(float aTime)
|
||||||
|
@ -1509,6 +1501,9 @@ nsresult nsOggDecodeStateMachine::Run()
|
||||||
QueueDecodedFrames();
|
QueueDecodedFrames();
|
||||||
while (mDecodedFrames.IsEmpty() && !mDecodingCompleted &&
|
while (mDecodedFrames.IsEmpty() && !mDecodingCompleted &&
|
||||||
!mBufferExhausted) {
|
!mBufferExhausted) {
|
||||||
|
if (mPlaying) {
|
||||||
|
PausePlayback();
|
||||||
|
}
|
||||||
mon.Wait(PR_MillisecondsToInterval(PRInt64(mCallbackPeriod*500)));
|
mon.Wait(PR_MillisecondsToInterval(PRInt64(mCallbackPeriod*500)));
|
||||||
if (mState != DECODER_STATE_DECODING)
|
if (mState != DECODER_STATE_DECODING)
|
||||||
break;
|
break;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче