diff --git a/dom/media/MediaData.cpp b/dom/media/MediaData.cpp index 57f63f969b0a..bbe38650f4c8 100644 --- a/dom/media/MediaData.cpp +++ b/dom/media/MediaData.cpp @@ -56,12 +56,10 @@ Span AudioData::Data() const { return MakeSpan(GetAdjustedData(), mFrames * mChannels); } -bool AudioData::AdjustForStartTime(int64_t aStartTime) { - const TimeUnit startTimeOffset = - media::TimeUnit::FromMicroseconds(aStartTime); - mOriginalTime -= startTimeOffset; +bool AudioData::AdjustForStartTime(const media::TimeUnit& aStartTime) { + mOriginalTime -= aStartTime; if (mTrimWindow) { - *mTrimWindow -= startTimeOffset; + *mTrimWindow -= aStartTime; } return MediaData::AdjustForStartTime(aStartTime) && mOriginalTime.IsValid(); } diff --git a/dom/media/MediaData.h b/dom/media/MediaData.h index c2775370217a..d908fe67bfd5 100644 --- a/dom/media/MediaData.h +++ b/dom/media/MediaData.h @@ -298,8 +298,8 @@ class MediaData { // Return true if the adjusted time is valid. Caller should handle error when // the result is invalid. - virtual bool AdjustForStartTime(int64_t aStartTime) { - mTime -= media::TimeUnit::FromMicroseconds(aStartTime); + virtual bool AdjustForStartTime(const media::TimeUnit& aStartTime) { + mTime -= aStartTime; return mTime.IsValid(); } @@ -371,7 +371,7 @@ class AudioData : public MediaData { // Return true if the adjusted time is valid. Caller should handle error when // the result is invalid. - bool AdjustForStartTime(int64_t aStartTime) override; + bool AdjustForStartTime(const media::TimeUnit& aStartTime) override; const uint32_t mChannels; // The AudioConfig::ChannelLayout map. Channels are ordered as per SMPTE diff --git a/dom/media/ReaderProxy.cpp b/dom/media/ReaderProxy.cpp index 5321f3fbe18d..d6788dced6ed 100644 --- a/dom/media/ReaderProxy.cpp +++ b/dom/media/ReaderProxy.cpp @@ -43,7 +43,7 @@ RefPtr ReaderProxy::OnAudioDataRequestCompleted( RefPtr aAudio) { MOZ_ASSERT(mOwnerThread->IsCurrentThreadIn()); - if (aAudio->AdjustForStartTime(StartTime().ToMicroseconds())) { + if (aAudio->AdjustForStartTime(StartTime())) { return AudioDataPromise::CreateAndResolve(aAudio.forget(), __func__); } return AudioDataPromise::CreateAndReject(NS_ERROR_DOM_MEDIA_OVERFLOW_ERR, @@ -76,7 +76,7 @@ RefPtr ReaderProxy::RequestVideoData( ? aTimeThreshold + StartTime() : aTimeThreshold; - int64_t startTime = StartTime().ToMicroseconds(); + auto startTime = StartTime(); return InvokeAsync(mReader->OwnerThread(), mReader.get(), __func__, &MediaFormatReader::RequestVideoData, threshold) ->Then(