diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/media/renderers/video_renderer_impl.cc | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/media/renderers/video_renderer_impl.cc')
-rw-r--r-- | chromium/media/renderers/video_renderer_impl.cc | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/chromium/media/renderers/video_renderer_impl.cc b/chromium/media/renderers/video_renderer_impl.cc index af3e6488466..99d67e45c5c 100644 --- a/chromium/media/renderers/video_renderer_impl.cc +++ b/chromium/media/renderers/video_renderer_impl.cc @@ -566,8 +566,7 @@ void VideoRendererImpl::FrameReady(VideoDecoderStream::ReadStatus status, last_frame_ready_time_ = tick_clock_->NowTicks(); - const bool is_eos = - frame->metadata()->IsTrue(VideoFrameMetadata::END_OF_STREAM); + const bool is_eos = frame->metadata()->end_of_stream; const bool is_before_start_time = !is_eos && IsBeforeStartTime(*frame); const bool cant_read = !video_decoder_stream_->CanReadWithoutStalling(); @@ -599,9 +598,9 @@ void VideoRendererImpl::FrameReady(VideoDecoderStream::ReadStatus status, // RemoveFramesForUnderflowOrBackgroundRendering() below to actually expire // this frame if it's too far behind the current media time. Without this, // we may resume too soon after a track change in the low delay case. - if (!frame->metadata()->HasKey(VideoFrameMetadata::FRAME_DURATION)) { - frame->metadata()->SetTimeDelta(VideoFrameMetadata::FRAME_DURATION, - video_decoder_stream_->AverageDuration()); + if (!frame->metadata()->frame_duration.has_value()) { + frame->metadata()->frame_duration = + video_decoder_stream_->AverageDuration(); } AddReadyFrame_Locked(std::move(frame)); @@ -731,16 +730,12 @@ void VideoRendererImpl::TransitionToHaveNothing_Locked() { void VideoRendererImpl::AddReadyFrame_Locked(scoped_refptr<VideoFrame> frame) { DCHECK(task_runner_->BelongsToCurrentThread()); lock_.AssertAcquired(); - DCHECK(!frame->metadata()->IsTrue(VideoFrameMetadata::END_OF_STREAM)); + DCHECK(!frame->metadata()->end_of_stream); ++stats_.video_frames_decoded; - bool power_efficient = false; - if (frame->metadata()->GetBoolean(VideoFrameMetadata::POWER_EFFICIENT, - &power_efficient) && - power_efficient) { + if (frame->metadata()->power_efficient) ++stats_.video_frames_decoded_power_efficient; - } algorithm_->EnqueueFrame(std::move(frame)); } @@ -929,12 +924,13 @@ base::TimeTicks VideoRendererImpl::GetCurrentMediaTimeAsWallClockTime() { bool VideoRendererImpl::IsBeforeStartTime(const VideoFrame& frame) { // Prefer the actual frame duration over the average if available. - base::TimeDelta metadata_frame_duration; - if (frame.metadata()->GetTimeDelta(VideoFrameMetadata::FRAME_DURATION, - &metadata_frame_duration)) { - return frame.timestamp() + metadata_frame_duration < start_timestamp_; + if (frame.metadata()->frame_duration.has_value()) { + return frame.timestamp() + *frame.metadata()->frame_duration < + start_timestamp_; } + // TODO(tguilbert): video_decoder_stream_->AverageDuration() can be accessed + // from the wrong thread. return frame.timestamp() + video_decoder_stream_->AverageDuration() < start_timestamp_; } |