зеркало из https://github.com/mozilla/gecko-dev.git
Backed out 2 changesets (bug 1487797) for introducing regressions a=backout
Backed out changeset e9549537063a (bug 1487797) Backed out changeset c629e51dda10 (bug 1487797) --HG-- extra : rebase_source : dc2c88cdc5db487786a53d997ad28199992cc69c
This commit is contained in:
Родитель
05f0ad659c
Коммит
eb80f3addd
|
@ -62,9 +62,8 @@ ReaderProxy::OnAudioDataRequestCompleted(RefPtr<AudioData> aAudio)
|
|||
int64_t offset =
|
||||
StartTime().ToMicroseconds() - mLoopingOffset.ToMicroseconds();
|
||||
aAudio->AdjustForStartTime(offset);
|
||||
if (aAudio->mTime.IsValid() && aAudio->GetEndTime().IsValid() &&
|
||||
CorrectTimeOfAudioDataIfNeeded(aAudio)) {
|
||||
UpdateLastAudioEndTime(aAudio);
|
||||
if (aAudio->mTime.IsValid()) {
|
||||
mLastAudioEndTime = aAudio->mTime;
|
||||
return AudioDataPromise::CreateAndResolve(aAudio.forget(), __func__);
|
||||
}
|
||||
return AudioDataPromise::CreateAndReject(NS_ERROR_DOM_MEDIA_OVERFLOW_ERR,
|
||||
|
@ -115,28 +114,6 @@ ReaderProxy::OnAudioDataRequestFailed(const MediaResult& aError)
|
|||
});
|
||||
}
|
||||
|
||||
bool
|
||||
ReaderProxy::CorrectTimeOfAudioDataIfNeeded(const RefPtr<AudioData>& aAudio)
|
||||
{
|
||||
MOZ_ASSERT(aAudio->mTime.IsValid() && mLastAudioEndTime.IsValid());
|
||||
// The start time of the current audio data should be greater than the end
|
||||
// time of the previous audio data.
|
||||
if (aAudio->mTime < mLastAudioEndTime) {
|
||||
aAudio->mTime = mLastAudioEndTime;
|
||||
}
|
||||
return aAudio->GetEndTime().IsValid();
|
||||
}
|
||||
|
||||
void
|
||||
ReaderProxy::UpdateLastAudioEndTime(const AudioData* aAudio)
|
||||
{
|
||||
MOZ_ASSERT(aAudio);
|
||||
MOZ_ASSERT(aAudio->GetEndTime().IsValid() && mLastAudioEndTime.IsValid());
|
||||
// Make sure the end time of the audio data are non-decreasing.
|
||||
MOZ_ASSERT(aAudio->GetEndTime() >= mLastAudioEndTime);
|
||||
mLastAudioEndTime = aAudio->GetEndTime();
|
||||
}
|
||||
|
||||
RefPtr<ReaderProxy::AudioDataPromise>
|
||||
ReaderProxy::RequestAudioData()
|
||||
{
|
||||
|
|
|
@ -100,12 +100,6 @@ private:
|
|||
RefPtr<ReaderProxy::AudioDataPromise> OnAudioDataRequestFailed(
|
||||
const MediaResult& aError);
|
||||
|
||||
// Make sure the timestamp of the audio data increase monotonically by
|
||||
// adjusting it according to mLastAudioEndTime. Returns true if the
|
||||
// endtime is valid after correction and false otherwise.
|
||||
bool CorrectTimeOfAudioDataIfNeeded(const RefPtr<AudioData>& aAudio);
|
||||
void UpdateLastAudioEndTime(const AudioData* aAudio);
|
||||
|
||||
const RefPtr<AbstractThread> mOwnerThread;
|
||||
const RefPtr<MediaFormatReader> mReader;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче