New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 794263 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Task

Blocking:
issue 706276
issue 779192



Sign in to add a comment

Extend media UKM to work with one-time properties (pipeline status, load time, etc).

Project Member Reported by dalecur...@chromium.org, Dec 12 2017

Issue description

Today we log multiple UKM entries per WebMediaPlayerImpl for WatchTime and VideoDecoderPerfStats. This prevents us from answering questions like x% of our playbacks hit errors, or x% of our playbacks using FFmpegAudioDecoder hit errors, or x% of our H264 playbacks drop 90% of their frames.

Per the recommendation of holte@ via e-mail, to resolve this we'll introduce a new UKM event Media.WebMediaPlayerState that has a PlayerID which is unique per session and will allow us to correlate WatchTime and VideoDecoderStats.
 
Blocking: 779192
Blocking: 706276
Project Member

Comment 3 by bugdroid1@chromium.org, Dec 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/74612b7459881f9194f4d404e4f6688efe0bd8f5

commit 74612b7459881f9194f4d404e4f6688efe0bd8f5
Author: Dale Curtis <dalecurtis@chromium.org>
Date: Thu Dec 14 20:56:19 2017

Plumb UKM PlayerID for WatchTime and VideoDecodeStats recording.

This uses the player ID assigned to every MediaMetricsProvider
per WebMediaPlayerImpl instance to correlate metrics like watch
time, video decoder stats, and more.

A new Media.WebMediaPlayerState UKM event is added which tracks
the player id and final pipeline status. Later on we can add
other one-time lazily-generated metrics like time to first frame,
or time to load, etc.

The player id value is then added to both the existing UKM events
for watch time and decoder stats.

Also later on we can use this to move more of the metrics logged
through MediaInternals today to the metrics provider.

BUG= 706276 , 794263 
TEST=updated unittests.
TBR=bauerb

Change-Id: I59ecad7f858b228f1fddb4eb8215b127e606ca93
Reviewed-on: https://chromium-review.googlesource.com/822168
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524167}
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/blink/watch_time_reporter_unittest.cc
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/blink/webmediaplayer_impl.cc
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/blink/webmediaplayer_impl_unittest.cc
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/mojo/interfaces/media_metrics_provider.mojom
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/mojo/interfaces/watch_time_recorder.mojom
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/mojo/services/BUILD.gn
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/mojo/services/media_metrics_provider.cc
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/mojo/services/media_metrics_provider.h
[add] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/mojo/services/media_metrics_provider_unittest.cc
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/mojo/services/video_decode_perf_history.cc
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/mojo/services/video_decode_perf_history.h
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/mojo/services/video_decode_perf_history_unittest.cc
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/mojo/services/video_decode_stats_recorder.cc
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/mojo/services/video_decode_stats_recorder.h
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/mojo/services/watch_time_recorder.cc
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/mojo/services/watch_time_recorder.h
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/media/mojo/services/watch_time_recorder_unittest.cc
[modify] https://crrev.com/74612b7459881f9194f4d404e4f6688efe0bd8f5/tools/metrics/ukm/ukm.xml

Project Member

Comment 4 by bugdroid1@chromium.org, Jan 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3899090eaeb1efc84490d952afbe706af05ea6ca

commit 3899090eaeb1efc84490d952afbe706af05ea6ca
Author: Dale Curtis <dalecurtis@chromium.org>
Date: Fri Jan 12 00:10:35 2018

Add TimeToMetadata, TimeToFirstFrame, TimeToPlayReady UMA+UKM

We should watch these values in the wild to determine how various
sites are performing with their networking as well as for regressions
in our metadata and decode speed processing.

Ideally we'd like to record time to play as a proxy for user experience,
but this is hard to record at the moment since Blink lies to WMPI about
when play is actually called. In the mean time these methods should be
fairly close to the actual time to play (which would include time from
when blink start processing the play gesture).

As an artifact of this change, I've switched VideoFrameCompositor
to use base::OnceCallback since I get presubmit errors about banned
base::Bind() calls otherwise.

This adds the following UMA stats:
Media.TimeToFirstFrame.(SRC|MSE|EME)
Media.TimeToMetadata.(SRC|MSE|EME)
Media.TimeToPlayReady.(SRC|MSE|EME)

BUG=716643, 794263 
TEST=new unittest.

Change-Id: I92996d26d33095b3dbb9b4e11ab14e755d94b6f2
Reviewed-on: https://chromium-review.googlesource.com/823616
Reviewed-by: Steven Holte <holte@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528824}
[modify] https://crrev.com/3899090eaeb1efc84490d952afbe706af05ea6ca/media/blink/video_frame_compositor.cc
[modify] https://crrev.com/3899090eaeb1efc84490d952afbe706af05ea6ca/media/blink/video_frame_compositor.h
[modify] https://crrev.com/3899090eaeb1efc84490d952afbe706af05ea6ca/media/blink/watch_time_reporter_unittest.cc
[modify] https://crrev.com/3899090eaeb1efc84490d952afbe706af05ea6ca/media/blink/webmediaplayer_impl.cc
[modify] https://crrev.com/3899090eaeb1efc84490d952afbe706af05ea6ca/media/blink/webmediaplayer_impl.h
[modify] https://crrev.com/3899090eaeb1efc84490d952afbe706af05ea6ca/media/blink/webmediaplayer_impl_unittest.cc
[modify] https://crrev.com/3899090eaeb1efc84490d952afbe706af05ea6ca/media/mojo/interfaces/media_metrics_provider.mojom
[modify] https://crrev.com/3899090eaeb1efc84490d952afbe706af05ea6ca/media/mojo/services/media_metrics_provider.cc
[modify] https://crrev.com/3899090eaeb1efc84490d952afbe706af05ea6ca/media/mojo/services/media_metrics_provider.h
[modify] https://crrev.com/3899090eaeb1efc84490d952afbe706af05ea6ca/media/mojo/services/media_metrics_provider_unittest.cc
[modify] https://crrev.com/3899090eaeb1efc84490d952afbe706af05ea6ca/tools/metrics/histograms/histograms.xml
[modify] https://crrev.com/3899090eaeb1efc84490d952afbe706af05ea6ca/tools/metrics/ukm/ukm.xml

Status: Fixed (was: Started)

Sign in to add a comment