summaryrefslogtreecommitdiff
path: root/chromium/media/renderers/video_renderer_impl.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/media/renderers/video_renderer_impl.cc
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-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.cc26
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_;
}