Bug 1374138 - Let MediaDecoderReaderWrapper::RequestVideoData() have a const media::TimeUnit& parameter; r?jya
MozReview-Commit-ID: DgCLE6xXEkn
--- a/dom/media/MediaDecoderReaderWrapper.cpp
+++ b/dom/media/MediaDecoderReaderWrapper.cpp
@@ -57,29 +57,29 @@ MediaDecoderReaderWrapper::RequestAudioD
return AudioDataPromise::CreateAndResolve(aAudio.forget(), __func__);
},
[] (const MediaResult& aError) {
return AudioDataPromise::CreateAndReject(aError, __func__);
});
}
RefPtr<MediaDecoderReaderWrapper::VideoDataPromise>
-MediaDecoderReaderWrapper::RequestVideoData(media::TimeUnit aTimeThreshold)
+MediaDecoderReaderWrapper::RequestVideoData(const media::TimeUnit& aTimeThreshold)
{
MOZ_ASSERT(mOwnerThread->IsCurrentThreadIn());
MOZ_ASSERT(!mShutdown);
- if (aTimeThreshold > media::TimeUnit::Zero()) {
- aTimeThreshold += StartTime();
- }
+ const auto threshold = aTimeThreshold > media::TimeUnit::Zero()
+ ? aTimeThreshold + StartTime()
+ : aTimeThreshold;
int64_t startTime = StartTime().ToMicroseconds();
return InvokeAsync(
mReader->OwnerThread(), mReader.get(), __func__,
- &MediaDecoderReader::RequestVideoData, aTimeThreshold)
+ &MediaDecoderReader::RequestVideoData, threshold)
->Then(mOwnerThread, __func__,
[startTime] (RefPtr<VideoData> aVideo) {
aVideo->AdjustForStartTime(startTime);
return VideoDataPromise::CreateAndResolve(aVideo.forget(), __func__);
},
[] (const MediaResult& aError) {
return VideoDataPromise::CreateAndReject(aError, __func__);
});
--- a/dom/media/MediaDecoderReaderWrapper.h
+++ b/dom/media/MediaDecoderReaderWrapper.h
@@ -37,17 +37,17 @@ public:
MediaDecoderReader* aReader);
media::TimeUnit StartTime() const;
RefPtr<MetadataPromise> ReadMetadata();
RefPtr<AudioDataPromise> RequestAudioData();
RefPtr<VideoDataPromise>
- RequestVideoData(media::TimeUnit aTimeThreshold);
+ RequestVideoData(const media::TimeUnit& aTimeThreshold);
RefPtr<WaitForDataPromise> WaitForData(MediaData::Type aType);
RefPtr<SeekPromise> Seek(const SeekTarget& aTarget);
RefPtr<ShutdownPromise> Shutdown();
void ReleaseResources();
void ResetDecode(TrackSet aTracks);