https://github.com/WICG/media-capabilities This bug tracks implementing the answer to query() calls inside media stack. The blink layer ( Issue 690380 ) will receive the query and pass it to media stack.2 An initial (1 of 3) design doc (google internal for now) can be found here: https://docs.google.com/document/d/11lxIE7E6oXXMLDz5ElHDh0r7ofmdoEkKbXKueZK_obw/edit
https://github.com/WICG/media-capabilities This bug tracks implementing the answer to decodingInfo() calls inside media stack. The blink layer ( Issue 690380 ) will receive the query and pass it to media stack. Internal design doc: http://go/mcap-decode-perf-design
Initial cleanup of MimeUtil now landed: https://codereview.chromium.org/2700893003/
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b commit a4a8efbb8b68c2a61636fc469943ecb1d09bd84b Author: chcunningham <chcunningham@chromium.org> Date: Wed Mar 22 16:55:02 2017 Rename MediaClientAndroid to MediaDrmBridgeClient MediaClient and MediaClientAndroid (now MediaDrmBridgeClient) are distict interfaces. The previous naming wrongly suggests that MediaClientAndroid is the Android implementation of MediaClient. BUG= 695264 Review-Url: https://codereview.chromium.org/2756333002 Cr-Commit-Position: refs/heads/master@{#458783} [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/android_webview/BUILD.gn [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/android_webview/common/aw_content_client.cc [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/android_webview/common/aw_content_client.h [rename] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/android_webview/common/aw_media_drm_bridge_client.cc [rename] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/android_webview/common/aw_media_drm_bridge_client.h [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/chrome/common/BUILD.gn [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/chrome/common/chrome_content_client.cc [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/chrome/common/chrome_content_client.h [delete] https://crrev.com/ac2f201c499c2d65a5d43b6ce49d9af5b4520f99/chrome/common/chrome_media_client_android.cc [delete] https://crrev.com/ac2f201c499c2d65a5d43b6ce49d9af5b4520f99/chrome/common/chrome_media_client_android.h [add] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/chrome/common/media/chrome_media_drm_bridge_client.cc [add] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/chrome/common/media/chrome_media_drm_bridge_client.h [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/chromecast/common/cast_content_client.cc [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/chromecast/common/cast_content_client.h [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/chromecast/common/media/BUILD.gn [rename] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/chromecast/common/media/cast_media_drm_bridge_client.cc [rename] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/chromecast/common/media/cast_media_drm_bridge_client.h [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/content/browser/browser_main_loop.cc [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/content/gpu/gpu_child_thread.cc [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/content/public/common/content_client.cc [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/content/public/common/content_client.h [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/media/base/android/BUILD.gn [delete] https://crrev.com/ac2f201c499c2d65a5d43b6ce49d9af5b4520f99/media/base/android/media_client_android.cc [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/media/base/android/media_drm_bridge.cc [add] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/media/base/android/media_drm_bridge_client.cc [rename] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/media/base/android/media_drm_bridge_client.h [modify] https://crrev.com/a4a8efbb8b68c2a61636fc469943ecb1d09bd84b/media/base/android/media_drm_bridge_delegate.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/115663853cd6d59c87f6b605381d52498c179bfb commit 115663853cd6d59c87f6b605381d52498c179bfb Author: chcunningham <chcunningham@chromium.org> Date: Fri Mar 24 03:22:01 2017 New media/base/decode_capabilities.h|cc Media/ should describe its decode capabilities. Embedders may override via MediaClient. For time being, this preserves the simple logic from content::RenderMediaClient. In the long run it will check profiles for actual decoder support and include android specific logic currently in MimeUtilInternal. BUG= 695264 Review-Url: https://codereview.chromium.org/2758873003 Cr-Commit-Position: refs/heads/master@{#459352} [modify] https://crrev.com/115663853cd6d59c87f6b605381d52498c179bfb/content/renderer/media/render_media_client.cc [modify] https://crrev.com/115663853cd6d59c87f6b605381d52498c179bfb/content/renderer/media/render_media_client_unittest.cc [modify] https://crrev.com/115663853cd6d59c87f6b605381d52498c179bfb/media/base/BUILD.gn [add] https://crrev.com/115663853cd6d59c87f6b605381d52498c179bfb/media/base/decode_capabilities.cc [add] https://crrev.com/115663853cd6d59c87f6b605381d52498c179bfb/media/base/decode_capabilities.h [add] https://crrev.com/115663853cd6d59c87f6b605381d52498c179bfb/media/base/decode_capabilities_unittest.cc [modify] https://crrev.com/115663853cd6d59c87f6b605381d52498c179bfb/media/base/media_client.h [modify] https://crrev.com/115663853cd6d59c87f6b605381d52498c179bfb/media/base/mime_util_internal.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/600bdb41533233777a5e852e1b5d08f6ec1bca5d commit 600bdb41533233777a5e852e1b5d08f6ec1bca5d Author: servolk <servolk@chromium.org> Date: Thu Mar 30 23:18:24 2017 Add IsSupportedAudioConfig in MediaClient We already have the IsSupportedVideoConfig function in MediaClient, this CL will add a very similar API for audio codec checks on various platforms. BUG= 695264 Review-Url: https://codereview.chromium.org/2783963002 Cr-Commit-Position: refs/heads/master@{#460921} [modify] https://crrev.com/600bdb41533233777a5e852e1b5d08f6ec1bca5d/chromecast/common/media/cast_media_client.cc [modify] https://crrev.com/600bdb41533233777a5e852e1b5d08f6ec1bca5d/chromecast/common/media/cast_media_client.h [modify] https://crrev.com/600bdb41533233777a5e852e1b5d08f6ec1bca5d/chromecast/media/base/media_codec_support.cc [modify] https://crrev.com/600bdb41533233777a5e852e1b5d08f6ec1bca5d/chromecast/media/base/media_codec_support.h [modify] https://crrev.com/600bdb41533233777a5e852e1b5d08f6ec1bca5d/content/browser/media/media_canplaytype_browsertest.cc [modify] https://crrev.com/600bdb41533233777a5e852e1b5d08f6ec1bca5d/content/renderer/media/render_media_client.cc [modify] https://crrev.com/600bdb41533233777a5e852e1b5d08f6ec1bca5d/content/renderer/media/render_media_client.h [modify] https://crrev.com/600bdb41533233777a5e852e1b5d08f6ec1bca5d/media/base/decode_capabilities.cc [modify] https://crrev.com/600bdb41533233777a5e852e1b5d08f6ec1bca5d/media/base/decode_capabilities.h [modify] https://crrev.com/600bdb41533233777a5e852e1b5d08f6ec1bca5d/media/base/key_systems_unittest.cc [modify] https://crrev.com/600bdb41533233777a5e852e1b5d08f6ec1bca5d/media/base/media_client.h [modify] https://crrev.com/600bdb41533233777a5e852e1b5d08f6ec1bca5d/media/base/mime_util_internal.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8aeee0b5c65d2ea16d2c52839cf80bcf99273555 commit 8aeee0b5c65d2ea16d2c52839cf80bcf99273555 Author: chcunningham <chcunningham@chromium.org> Date: Fri Apr 07 22:41:40 2017 Simplify/Cleanup MediaClient This CL does a number of things to cleanup MediaClient's implementation and usage. This clears the way for an expanded role in describing MediaCapabilities. Remove CastMediaClient. Merge methods into CastContentRenderClient. ContentRenderClient is now the one-stop-shop for embedder customization. I initially explored giving each embedder its own MediaClient, but this ended up splitting media customization between ContentRenderClient and MediaClient (some customization is too high level to move to MediaClient). The current route is also less code. Remove all Chrome specific logic from RenderMediaClient. RenderMediaClient is now the plumbing for *all* content embedder customizations to be visible in media/. Chrome is just one of many embedders and much of the chrome specific code was stale anyway. Remove KeySystemNameForUMA from MediaClient interface Decentralizing this logic was overly complicated. Now centralized to key_systems.cc. Other little cleanups Centralize all media/ Rappor usage in MediaLog. Move cast key_systems_cast into chromecast/renderer/media. Simplify key_systems_unittest.cc BUG= 695264 Review-Url: https://codereview.chromium.org/2712983004 Cr-Commit-Position: refs/heads/master@{#463025} [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/chrome/renderer/BUILD.gn [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/chrome/renderer/chrome_content_renderer_client.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/chrome/renderer/chrome_content_renderer_client.h [add] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/chrome/renderer/media/chrome_key_systems_provider.cc [add] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/chrome/renderer/media/chrome_key_systems_provider.h [add] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/chrome/renderer/media/chrome_key_systems_provider_unittest.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/chrome/test/BUILD.gn [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/chromecast/common/media/BUILD.gn [delete] https://crrev.com/1b22d05a5146584837929c70b04f87402156e649/chromecast/common/media/cast_media_client.cc [delete] https://crrev.com/1b22d05a5146584837929c70b04f87402156e649/chromecast/common/media/cast_media_client.h [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/chromecast/renderer/BUILD.gn [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/chromecast/renderer/cast_content_renderer_client.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/chromecast/renderer/cast_content_renderer_client.h [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/chromecast/renderer/media/BUILD.gn [rename] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/chromecast/renderer/media/key_systems_cast.cc [rename] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/chromecast/renderer/media/key_systems_cast.h [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/components/cdm/renderer/android_key_systems.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/content/public/renderer/content_renderer_client.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/content/public/renderer/content_renderer_client.h [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/content/renderer/media/render_media_client.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/content/renderer/media/render_media_client.h [delete] https://crrev.com/1b22d05a5146584837929c70b04f87402156e649/content/renderer/media/render_media_client_unittest.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/content/renderer/media/webmediaplayer_ms.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/content/renderer/render_frame_impl.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/content/renderer/render_frame_impl.h [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/content/test/BUILD.gn [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/media/base/key_systems.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/media/base/key_systems_unittest.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/media/base/media_client.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/media/base/media_client.h [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/media/base/media_log.h [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/media/blink/webencryptedmediaclient_impl.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/media/blink/webencryptedmediaclient_impl.h [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/media/blink/webmediaplayer_impl.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/media/blink/webmediaplayer_util.cc [modify] https://crrev.com/8aeee0b5c65d2ea16d2c52839cf80bcf99273555/media/blink/webmediaplayer_util.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f4f7b3aad31bbce44c84dd2cdbd2400a90f87d51 commit f4f7b3aad31bbce44c84dd2cdbd2400a90f87d51 Author: dalecurtis <dalecurtis@chromium.org> Date: Sat Apr 15 01:22:05 2017 Fix incorrect collation of media logs. http://crrev.com/463025 incorrectly started using a global MediaLog instance for each RenderFrame. The RendererMediaLog uses an internal counter for routing and collating player logs, so doing this causes all logs for a render frame to end up in the same player. This patch reverts that portion of the change; though it's questionable if WebEncryptedMediaClientImpl() should actually be given a MediaLog just for logging RAPPOR entries. Presumably there is another mechanism that could accomplish this. BUG= 695264 , 711818 TEST=unittest TBD, manually verified cnn.com, internetradio.com each create a new button entry in chrome://media-internals. Watch time logs are properly recorded. Review-Url: https://codereview.chromium.org/2819973002 Cr-Commit-Position: refs/heads/master@{#464844} [modify] https://crrev.com/f4f7b3aad31bbce44c84dd2cdbd2400a90f87d51/content/renderer/render_frame_impl.cc [modify] https://crrev.com/f4f7b3aad31bbce44c84dd2cdbd2400a90f87d51/content/renderer/render_frame_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0398002f42e790ba37023328f65fdfd5208feac7 commit 0398002f42e790ba37023328f65fdfd5208feac7 Author: Dale Curtis <dalecurtis@chromium.org> Date: Mon Apr 17 18:15:53 2017 Merge M59: "Fix incorrect collation of media logs." http://crrev.com/463025 incorrectly started using a global MediaLog instance for each RenderFrame. The RendererMediaLog uses an internal counter for routing and collating player logs, so doing this causes all logs for a render frame to end up in the same player. This patch reverts that portion of the change; though it's questionable if WebEncryptedMediaClientImpl() should actually be given a MediaLog just for logging RAPPOR entries. Presumably there is another mechanism that could accomplish this. BUG= 695264 , 711818 TEST=unittest TBD, manually verified cnn.com, internetradio.com each create a new button entry in chrome://media-internals. Watch time logs are properly recorded. Review-Url: https://codereview.chromium.org/2819973002 Cr-Commit-Position: refs/heads/master@{#464844} (cherry picked from commit f4f7b3aad31bbce44c84dd2cdbd2400a90f87d51) Review-Url: https://codereview.chromium.org/2827483002 . Cr-Commit-Position: refs/branch-heads/3071@{#20} Cr-Branched-From: a106f0abbf69dad349d4aaf4bcc4f5d376dd2377-refs/heads/master@{#464641} [modify] https://crrev.com/0398002f42e790ba37023328f65fdfd5208feac7/content/renderer/render_frame_impl.cc [modify] https://crrev.com/0398002f42e790ba37023328f65fdfd5208feac7/content/renderer/render_frame_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/20645b6c0f3fa1fe3d20742ca7fcd77058147ad8 commit 20645b6c0f3fa1fe3d20742ca7fcd77058147ad8 Author: chcunningham <chcunningham@chromium.org> Date: Wed Apr 26 00:53:05 2017 Wire up MediaCapabilities is_supported to media/ navigator.mediaCapabilities.decodingInfo(...) will now query the media layer to parse the mime type and check platform support. Some work remains to reject ambiguous mime strings. In some cases we are also not deeply checking for platform support. Will get to this soon. BUG= 695264 TEST=new browser tests Review-Url: https://codereview.chromium.org/2805553004 Cr-Commit-Position: refs/heads/master@{#467184} [add] https://crrev.com/20645b6c0f3fa1fe3d20742ca7fcd77058147ad8/content/browser/media/media_capabilities_browsertest.cc [modify] https://crrev.com/20645b6c0f3fa1fe3d20742ca7fcd77058147ad8/content/renderer/media_recorder/media_recorder_handler.cc [modify] https://crrev.com/20645b6c0f3fa1fe3d20742ca7fcd77058147ad8/content/test/BUILD.gn [modify] https://crrev.com/20645b6c0f3fa1fe3d20742ca7fcd77058147ad8/media/base/mime_util_internal.cc [modify] https://crrev.com/20645b6c0f3fa1fe3d20742ca7fcd77058147ad8/media/blink/webmediacapabilitiesclient_impl.cc [add] https://crrev.com/20645b6c0f3fa1fe3d20742ca7fcd77058147ad8/media/test/data/decode_capabilities_test.html [modify] https://crrev.com/20645b6c0f3fa1fe3d20742ca7fcd77058147ad8/third_party/WebKit/Source/modules/media_capabilities/MediaCapabilities.cpp [modify] https://crrev.com/20645b6c0f3fa1fe3d20742ca7fcd77058147ad8/third_party/WebKit/public/platform/modules/media_capabilities/WebAudioConfiguration.h [modify] https://crrev.com/20645b6c0f3fa1fe3d20742ca7fcd77058147ad8/third_party/WebKit/public/platform/modules/media_capabilities/WebVideoConfiguration.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a4a66a6e3e01cf6594872f4d34208685a6eae5ea commit a4a66a6e3e01cf6594872f4d34208685a6eae5ea Author: chcunningham <chcunningham@chromium.org> Date: Fri May 19 00:14:01 2017 Add MimeUtil::Parse{Audio|Video}CodecString Media Capabilities needs MimeUtil to turn strings into codecs before it can query media::DecodeCapabilities APIs. This also exposes when the parsed string is ambiguous so that Media Capabilities can reject support and log some error. BUG= 695264 TEST=new media_unittest Review-Url: https://codereview.chromium.org/2864593003 Cr-Commit-Position: refs/heads/master@{#472987} [modify] https://crrev.com/a4a66a6e3e01cf6594872f4d34208685a6eae5ea/content/browser/media/media_capabilities_browsertest.cc [modify] https://crrev.com/a4a66a6e3e01cf6594872f4d34208685a6eae5ea/media/base/media.cc [modify] https://crrev.com/a4a66a6e3e01cf6594872f4d34208685a6eae5ea/media/base/media.h [modify] https://crrev.com/a4a66a6e3e01cf6594872f4d34208685a6eae5ea/media/base/mime_util.cc [modify] https://crrev.com/a4a66a6e3e01cf6594872f4d34208685a6eae5ea/media/base/mime_util.h [modify] https://crrev.com/a4a66a6e3e01cf6594872f4d34208685a6eae5ea/media/base/mime_util_internal.cc [modify] https://crrev.com/a4a66a6e3e01cf6594872f4d34208685a6eae5ea/media/base/mime_util_internal.h [modify] https://crrev.com/a4a66a6e3e01cf6594872f4d34208685a6eae5ea/media/base/mime_util_unittest.cc [modify] https://crrev.com/a4a66a6e3e01cf6594872f4d34208685a6eae5ea/media/base/video_codecs.cc [modify] https://crrev.com/a4a66a6e3e01cf6594872f4d34208685a6eae5ea/media/blink/webmediacapabilitiesclient_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/86f025e31d8d3676fea772a36eb9ecece61877ff commit 86f025e31d8d3676fea772a36eb9ecece61877ff Author: chcunningham <chcunningham@chromium.org> Date: Tue May 30 20:43:23 2017 Extract media code from RenderFrameImpl RenderFrameImpl has grown to contain nearly 500 lines of media plumbing. This CL extracts much of this into MediaFactory. This is done in anticipation of adding a MediaCapabilities API to the RenderFrame. BUG= 695264 , 588408 Review-Url: https://codereview.chromium.org/2905613003 Cr-Commit-Position: refs/heads/master@{#475659} [modify] https://crrev.com/86f025e31d8d3676fea772a36eb9ecece61877ff/content/renderer/BUILD.gn [add] https://crrev.com/86f025e31d8d3676fea772a36eb9ecece61877ff/content/renderer/media/media_factory.cc [add] https://crrev.com/86f025e31d8d3676fea772a36eb9ecece61877ff/content/renderer/media/media_factory.h [modify] https://crrev.com/86f025e31d8d3676fea772a36eb9ecece61877ff/content/renderer/render_frame_impl.cc [modify] https://crrev.com/86f025e31d8d3676fea772a36eb9ecece61877ff/content/renderer/render_frame_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fe34199b2b62a9ed333cd09b227bd9e1bf5a070e commit fe34199b2b62a9ed333cd09b227bd9e1bf5a070e Author: Chris Cunningham <chcunningham@chromium.org> Date: Fri Jul 07 20:06:45 2017 Add video frame duration average to media::PipelineStatistics Plumbs video frame duration from media video rendering up to WebMediaPlayerImpl. WebMediaPlayerImpl will later use the stat to start/stop reporting of MediaCapabilities plabyack stats. Bug: 695264 Change-Id: I44c44498d2a68406b9e7259a81866b25db1ae430 Reviewed-on: https://chromium-review.googlesource.com/558016 Reviewed-by: Yuri Wiitala <miu@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Commit-Queue: Chrome Cunningham <chcunningham@chromium.org> Cr-Commit-Position: refs/heads/master@{#485018} [modify] https://crrev.com/fe34199b2b62a9ed333cd09b227bd9e1bf5a070e/media/base/pipeline_impl.cc [modify] https://crrev.com/fe34199b2b62a9ed333cd09b227bd9e1bf5a070e/media/base/pipeline_status.h [modify] https://crrev.com/fe34199b2b62a9ed333cd09b227bd9e1bf5a070e/media/remoting/proto_utils.cc [modify] https://crrev.com/fe34199b2b62a9ed333cd09b227bd9e1bf5a070e/media/remoting/proto_utils_unittest.cc [modify] https://crrev.com/fe34199b2b62a9ed333cd09b227bd9e1bf5a070e/media/remoting/rpc.proto [modify] https://crrev.com/fe34199b2b62a9ed333cd09b227bd9e1bf5a070e/media/renderers/video_renderer_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9 commit 038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9 Author: Chris Cunningham <chcunningham@chromium.org> Date: Mon Jul 10 22:36:30 2017 Signal media::PipelineClient when audio/video decoder configs change. This CL plumbs the signal from the renderers through pipeline, ultiately arriving at WebMediaPlayerImpl where it will later be used to start/stop reporting of MediaCapabilities playback stats. Note: OnVideoNaturalSizeChange is still not obsoleted by OnVideoConfigChange because it possible to for natural size to change outside of a config change. Includes new unit and e2e tests. Bug: 695264 Change-Id: Ib04e13e2e8ab6b6974f2a9059466d7a87986b4b2 Reviewed-on: https://chromium-review.googlesource.com/541721 Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Commit-Queue: Chrome Cunningham <chcunningham@chromium.org> Cr-Commit-Position: refs/heads/master@{#485427} [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/content/renderer/media/android/media_player_renderer_client.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/content/renderer/media/android/media_player_renderer_client.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/base/mock_filters.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/base/pipeline.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/base/pipeline_impl.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/base/pipeline_impl.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/base/renderer_client.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/base/test_helpers.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/blink/webmediaplayer_impl.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/blink/webmediaplayer_impl.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/filters/decoder_stream.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/filters/decoder_stream.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/filters/pipeline_controller_unittest.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/mojo/clients/mojo_renderer.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/mojo/clients/mojo_renderer.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/mojo/interfaces/renderer.mojom [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/mojo/services/media_service_unittest.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/mojo/services/mojo_renderer_service.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/mojo/services/mojo_renderer_service.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/remoting/courier_renderer.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/remoting/courier_renderer.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/remoting/courier_renderer_unittest.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/remoting/receiver.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/remoting/receiver.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/remoting/rpc.proto [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/renderers/audio_renderer_impl.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/renderers/audio_renderer_impl.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/renderers/audio_renderer_impl_unittest.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/renderers/renderer_impl.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/renderers/renderer_impl.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/renderers/video_renderer_impl.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/renderers/video_renderer_impl.h [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/renderers/video_renderer_impl_unittest.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/test/pipeline_integration_test.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/test/pipeline_integration_test_base.cc [modify] https://crrev.com/038548bf0ea65235ee6cb2d0b24ce9b1c111dbd9/media/test/pipeline_integration_test_base.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6 commit d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6 Author: Chris Cunningham <chcunningham@chromium.org> Date: Tue Aug 29 00:04:23 2017 Introduce VideoDecodeStatsReporter for Media Capabilities Each WebMediaPlayer will create a VideoDecodeStatsReporter to send smoothness (and eventually power) statistics across to the browser-side VideoDecodeStatsRecorder. The statistics will be "finalized" upon - player destruction - significant media property changes (e.g. resolution, codec, fps) - tab close Follow up CLs will implement the browser-side recording of the stats and add a UMA to "grade" the media capabilites API by comparing the observed stats against the API's claims of smoothness. Bug: 695264 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_site_isolation;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I78ca453fa936c9a48813fbc92dc67714f9956f63 Reviewed-on: https://chromium-review.googlesource.com/570920 Commit-Queue: Chrome Cunningham <chcunningham@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Reviewed-by: Charlie Reis <creis@chromium.org> Cr-Commit-Position: refs/heads/master@{#497948} [modify] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/content/browser/frame_host/render_frame_host_impl.cc [modify] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/content/public/app/mojo/content_browser_manifest.json [modify] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/content/renderer/media/media_factory.cc [modify] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/content/renderer/media/media_factory.h [modify] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/base/pipeline_status.h [modify] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/blink/BUILD.gn [add] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/blink/video_decode_stats_reporter.cc [add] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/blink/video_decode_stats_reporter.h [add] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/blink/video_decode_stats_reporter_unittest.cc [modify] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/blink/webmediaplayer_impl.cc [modify] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/blink/webmediaplayer_impl.h [modify] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/blink/webmediaplayer_impl_unittest.cc [modify] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/blink/webmediaplayer_params.cc [modify] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/blink/webmediaplayer_params.h [modify] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/mojo/interfaces/BUILD.gn [add] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/mojo/interfaces/video_decode_stats_recorder.mojom [modify] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/mojo/services/BUILD.gn [add] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/mojo/services/video_decode_stats_recorder.cc [add] https://crrev.com/d9df58ee5bc9a54f80a59dc1945e5996c5ac86d6/media/mojo/services/video_decode_stats_recorder.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348 commit 32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348 Author: Chris Cunningham <chcunningham@chromium.org> Date: Wed Sep 13 02:03:12 2017 Map codec profiles for "simple" video mime types All supported video streams types should map to some VideoCodecProfile. This should be true even for "simple" codecs strings (e.g. VP8 and Theora) that only have one profile (or no formal notion of profile). This allows all codecs to be described simply by the VideoCodecProfile. For instance, media capabilities storage/querying of decode statistics is keyed by VideoCodecProfile. This change adds a profile entry for Theora and ensures that mime parsing code correctly maps to a profile for VP8 and Theora. BUG= 695264 TEST=unit test Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I7b48dfc6ab97d436820dae57606a4cf53d92af31 Reviewed-on: https://chromium-review.googlesource.com/658408 Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Commit-Queue: Chrome Cunningham <chcunningham@chromium.org> Cr-Commit-Position: refs/heads/master@{#501512} [modify] https://crrev.com/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348/components/arc/common/video_encode_accelerator.mojom [modify] https://crrev.com/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348/components/arc/video_accelerator/video_encode_accelerator_struct_traits.cc [modify] https://crrev.com/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348/gpu/config/gpu_info.h [modify] https://crrev.com/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348/gpu/ipc/common/gpu_info.mojom [modify] https://crrev.com/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348/gpu/ipc/common/gpu_info_struct_traits.cc [modify] https://crrev.com/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348/media/base/mime_util_internal.cc [modify] https://crrev.com/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348/media/base/mime_util_unittest.cc [modify] https://crrev.com/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348/media/base/video_codecs.cc [modify] https://crrev.com/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348/media/base/video_codecs.h [modify] https://crrev.com/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348/media/base/video_decoder_config.cc [modify] https://crrev.com/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348/media/ffmpeg/ffmpeg_common.cc [modify] https://crrev.com/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348/media/remoting/proto_enum_utils.cc [modify] https://crrev.com/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348/media/remoting/rpc.proto [modify] https://crrev.com/32e06ae27bbf6b725e8e5bf2cf44937e5bf0e348/tools/metrics/histograms/enums.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8aa6a0ae1f3f486fb35b6980ff7907af4e551747 commit 8aa6a0ae1f3f486fb35b6980ff7907af4e551747 Author: Chris Cunningham <chcunningham@chromium.org> Date: Tue Sep 26 22:32:14 2017 Introduce VideoDecodePerfHistory for Media Capabilities The VideoDecodePerfHistory service lives as a singleton in the browser process. There it responds to MediaCapabilities queries by looking up statistics of past playbacks to decide whether the given queried video configuration can be played smoothly and/or power_efficiently on the local machine. The service is lazily created upon the first Mojo request from a render process. Bug: 695264 Tests: New unit tests. Existing browser tests. Change-Id: Ib7ba9d707386ce2fa8ad7eca482b4023fdf33264 Reviewed-on: https://chromium-review.googlesource.com/644718 Commit-Queue: Chrome Cunningham <chcunningham@chromium.org> Reviewed-by: Ken Rockot <rockot@chromium.org> Reviewed-by: Ken Buchanan <kenrb@chromium.org> Reviewed-by: Darin Fisher <darin@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Cr-Commit-Position: refs/heads/master@{#504502} [modify] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/content/public/app/mojo/content_browser_manifest.json [modify] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/media/blink/BUILD.gn [modify] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/media/blink/DEPS [modify] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/media/blink/webmediacapabilitiesclient_impl.cc [modify] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/media/blink/webmediacapabilitiesclient_impl.h [modify] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/media/mojo/BUILD.gn [modify] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/media/mojo/interfaces/BUILD.gn [add] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/media/mojo/interfaces/video_decode_perf_history.mojom [modify] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/media/mojo/services/BUILD.gn [add] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/media/mojo/services/media_capabilities_database.cc [add] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/media/mojo/services/media_capabilities_database.h [add] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/media/mojo/services/video_decode_perf_history.cc [add] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/media/mojo/services/video_decode_perf_history.h [add] https://crrev.com/8aa6a0ae1f3f486fb35b6980ff7907af4e551747/media/mojo/services/video_decode_perf_history_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b7717342e2a46e2936f0b502d9dae8cfad5798f8 commit b7717342e2a46e2936f0b502d9dae8cfad5798f8 Author: Chris Cunningham <chcunningham@chromium.org> Date: Tue Oct 10 22:08:43 2017 Implement VideoDecodeStatsDB with LevelDB The LevelDB implementation supports the production use case of storing video decode statistics for recall to answer MediaCapabilities queries. This CL implements the interface and tests. A later CL will instantiate the DB as part of the VideoDecodePerfHistory service for actual usage. Kudos to mlamouri@ for first implementing this in https://chromium-review.googlesource.com/c/chromium/src/+/625962 TEST: added to media_unittests Bug: 695264 Change-Id: I347d4c25b74be65c278a563f07d439cfab2c8555 Reviewed-on: https://chromium-review.googlesource.com/692916 Reviewed-by: Tommy Nyquist <nyquist@chromium.org> Reviewed-by: Victor Costan <pwnall@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Commit-Queue: Chrome Cunningham <chcunningham@chromium.org> Cr-Commit-Position: refs/heads/master@{#507787} [modify] https://crrev.com/b7717342e2a46e2936f0b502d9dae8cfad5798f8/media/mojo/BUILD.gn [modify] https://crrev.com/b7717342e2a46e2936f0b502d9dae8cfad5798f8/media/mojo/services/BUILD.gn [add] https://crrev.com/b7717342e2a46e2936f0b502d9dae8cfad5798f8/media/mojo/services/DEPS [delete] https://crrev.com/e8b8ba11e10ea326b157b0ec525983f946c59dfd/media/mojo/services/media_capabilities_database.cc [delete] https://crrev.com/e8b8ba11e10ea326b157b0ec525983f946c59dfd/media/mojo/services/media_capabilities_database.h [modify] https://crrev.com/b7717342e2a46e2936f0b502d9dae8cfad5798f8/media/mojo/services/video_decode_perf_history.cc [modify] https://crrev.com/b7717342e2a46e2936f0b502d9dae8cfad5798f8/media/mojo/services/video_decode_perf_history.h [modify] https://crrev.com/b7717342e2a46e2936f0b502d9dae8cfad5798f8/media/mojo/services/video_decode_perf_history_unittest.cc [add] https://crrev.com/b7717342e2a46e2936f0b502d9dae8cfad5798f8/media/mojo/services/video_decode_stats.proto [add] https://crrev.com/b7717342e2a46e2936f0b502d9dae8cfad5798f8/media/mojo/services/video_decode_stats_db.cc [add] https://crrev.com/b7717342e2a46e2936f0b502d9dae8cfad5798f8/media/mojo/services/video_decode_stats_db.h [add] https://crrev.com/b7717342e2a46e2936f0b502d9dae8cfad5798f8/media/mojo/services/video_decode_stats_db_impl.cc [add] https://crrev.com/b7717342e2a46e2936f0b502d9dae8cfad5798f8/media/mojo/services/video_decode_stats_db_impl.h [add] https://crrev.com/b7717342e2a46e2936f0b502d9dae8cfad5798f8/media/mojo/services/video_decode_stats_db_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a5b3801b9cd3d4748ffc4087cce97148ffcf949d commit a5b3801b9cd3d4748ffc4087cce97148ffcf949d Author: Chris Cunningham <chcunningham@chromium.org> Date: Sat Oct 28 07:27:18 2017 Wire up VideoDecodePerfHistory to VideoDecodeStatsRecorder and DB. Associates the VideoDecodePerfHistory with the BrowserContext so users can clear just their history via chrome://settings/clearBrowsingData. VideoDecodePerfHistory connected in //content rather than //chrome to facilitate easy use by embedders (e.g. webview). Bug: 695264 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation Change-Id: Ic9fec3a7a450a3be49e231c919db227ac837b3c3 Reviewed-on: https://chromium-review.googlesource.com/707840 Commit-Queue: Chrome Cunningham <chcunningham@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Reviewed-by: Charlie Reis <creis@chromium.org> Reviewed-by: John Abd-El-Malek <jam@chromium.org> Cr-Commit-Position: refs/heads/master@{#512390} [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/chrome/browser/profiles/off_the_record_profile_impl.cc [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/chrome/browser/profiles/off_the_record_profile_impl.h [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/content/browser/browser_context.cc [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/content/browser/frame_host/render_frame_host_impl.cc [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/content/browser/renderer_host/render_process_host_impl.cc [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/content/public/browser/browser_context.h [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/media/blink/video_decode_stats_reporter.cc [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/media/blink/webmediacapabilitiesclient_impl.cc [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/media/blink/webmediaplayer_impl_unittest.cc [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/media/mojo/services/video_decode_perf_history.cc [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/media/mojo/services/video_decode_perf_history.h [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/media/mojo/services/video_decode_perf_history_unittest.cc [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/media/mojo/services/video_decode_stats_db.h [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/media/mojo/services/video_decode_stats_db_impl.cc [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/media/mojo/services/video_decode_stats_db_impl.h [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/media/mojo/services/video_decode_stats_db_unittest.cc [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/media/mojo/services/video_decode_stats_recorder.cc [modify] https://crrev.com/a5b3801b9cd3d4748ffc4087cce97148ffcf949d/media/mojo/services/video_decode_stats_recorder.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44 commit a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44 Author: Mounir Lamouri <mlamouri@chromium.org> Date: Mon Nov 06 16:11:19 2017 Media Capabilities: plumb power efficiency to PipelineStatistics. Add POWER_EFFICIENT metadata to VideoFrame, set it for hardware decoder and compute efficiently decoded frames then send to PipelineStatistics. This CL only implement basic plumbing which will then be used by the Media Capabilities API. Bug: 695264 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Id02566d4189c7e0b7c3e1afdf044d942f765532b Reviewed-on: https://chromium-review.googlesource.com/739827 Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Yuri Wiitala <miu@chromium.org> Reviewed-by: Xiangjun Zhang <xjz@chromium.org> Reviewed-by: Chrome Cunningham <chcunningham@chromium.org> Cr-Commit-Position: refs/heads/master@{#514145} [modify] https://crrev.com/a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44/media/base/BUILD.gn [modify] https://crrev.com/a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44/media/base/pipeline_impl.cc [add] https://crrev.com/a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44/media/base/pipeline_status.cc [modify] https://crrev.com/a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44/media/base/pipeline_status.h [modify] https://crrev.com/a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44/media/base/video_frame_metadata.h [modify] https://crrev.com/a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44/media/filters/ffmpeg_video_decoder.cc [modify] https://crrev.com/a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44/media/filters/gpu_video_decoder.cc [modify] https://crrev.com/a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44/media/filters/vpx_video_decoder.cc [modify] https://crrev.com/a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44/media/remoting/courier_renderer_unittest.cc [modify] https://crrev.com/a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44/media/remoting/proto_utils.cc [modify] https://crrev.com/a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44/media/remoting/proto_utils_unittest.cc [modify] https://crrev.com/a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44/media/renderers/video_renderer_impl.cc [modify] https://crrev.com/a8d3ca06b2aa7f6a46bed1ac97c8ce53b5d0bb44/media/renderers/video_renderer_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fe61ca5de596523ecdd6fdfe41381fb9063001b9 commit fe61ca5de596523ecdd6fdfe41381fb9063001b9 Author: Mounir Lamouri <mlamouri@chromium.org> Date: Mon Nov 06 20:00:54 2017 Media Capabilities: save power efficient frame decode count in DB. This is saving the info into the database and use it to return a real "is_power_efficient" result when the database is queried. Bug: 695264 Change-Id: I56fc8073584d7ae7e5b7b1d4917d9459b4196fcb Reviewed-on: https://chromium-review.googlesource.com/744781 Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Chris Palmer <palmer@chromium.org> Reviewed-by: Chrome Cunningham <chcunningham@chromium.org> Cr-Commit-Position: refs/heads/master@{#514216} [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/blink/video_decode_stats_reporter.cc [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/blink/video_decode_stats_reporter.h [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/blink/video_decode_stats_reporter_unittest.cc [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/blink/webmediaplayer_impl_unittest.cc [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/mojo/interfaces/video_decode_stats_recorder.mojom [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/mojo/services/video_decode_perf_history.cc [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/mojo/services/video_decode_perf_history.h [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/mojo/services/video_decode_perf_history_unittest.cc [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/mojo/services/video_decode_stats.proto [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/mojo/services/video_decode_stats_db.cc [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/mojo/services/video_decode_stats_db.h [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/mojo/services/video_decode_stats_db_impl.cc [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/mojo/services/video_decode_stats_db_unittest.cc [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/mojo/services/video_decode_stats_recorder.cc [modify] https://crrev.com/fe61ca5de596523ecdd6fdfe41381fb9063001b9/media/mojo/services/video_decode_stats_recorder.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/49934e69906c679e67e7611864f3f9446efa6307 commit 49934e69906c679e67e7611864f3f9446efa6307 Author: Chris Cunningham <chcunningham@chromium.org> Date: Thu Nov 09 21:49:01 2017 Clear VideoDecodeStatsDB from chrome://settings//clearBrowsingData Adds methods to VideoDecodePerfHistory and VideoDecodeStatsDB to achieve the clearing. New tests. Clearing the levelDB is destructive, so the DB owner (*PerfHistory) must reinitialize after clearing and defer other API calls until initialization completes. Bug: 695264 Change-Id: I2fba308256c8d69f4edcbe7536cf5b72e0be21e3 Tests: New media_unittests Reviewed-on: https://chromium-review.googlesource.com/752051 Commit-Queue: Chrome Cunningham <chcunningham@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Reviewed-by: Bernhard Bauer <bauerb@chromium.org> Cr-Commit-Position: refs/heads/master@{#515304} [modify] https://crrev.com/49934e69906c679e67e7611864f3f9446efa6307/chrome/browser/BUILD.gn [modify] https://crrev.com/49934e69906c679e67e7611864f3f9446efa6307/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc [modify] https://crrev.com/49934e69906c679e67e7611864f3f9446efa6307/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc [modify] https://crrev.com/49934e69906c679e67e7611864f3f9446efa6307/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h [modify] https://crrev.com/49934e69906c679e67e7611864f3f9446efa6307/media/mojo/services/video_decode_perf_history.cc [modify] https://crrev.com/49934e69906c679e67e7611864f3f9446efa6307/media/mojo/services/video_decode_perf_history.h [modify] https://crrev.com/49934e69906c679e67e7611864f3f9446efa6307/media/mojo/services/video_decode_perf_history_unittest.cc [modify] https://crrev.com/49934e69906c679e67e7611864f3f9446efa6307/media/mojo/services/video_decode_stats_db.h [modify] https://crrev.com/49934e69906c679e67e7611864f3f9446efa6307/media/mojo/services/video_decode_stats_db_impl.cc [modify] https://crrev.com/49934e69906c679e67e7611864f3f9446efa6307/media/mojo/services/video_decode_stats_db_impl.h [modify] https://crrev.com/49934e69906c679e67e7611864f3f9446efa6307/media/mojo/services/video_decode_stats_db_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7f41f563aa0733dd1e635ead22594d6e47c3ffaf commit 7f41f563aa0733dd1e635ead22594d6e47c3ffaf Author: Chris Cunningham <chcunningham@chromium.org> Date: Wed Nov 22 00:02:19 2017 Add UMAs for VideoDecodeStatsDB. Stop reporter stats timer when IPC breaks. UMAs added to track outcomes of various DB operations. Failures should be rare/transient. Unrelated to UMA, I Also noticed that the stats_cb_timer_ was still running in incognito windows. Stats are not recorded in incognito, so don't bother waking up the timer. BUG= 695264 TEST=Verified UMAs in chrome://histograms Change-Id: Ib1245d48f907c8be0313a3646344bc351b492093 Reviewed-on: https://chromium-review.googlesource.com/777846 Commit-Queue: Chrome Cunningham <chcunningham@chromium.org> Reviewed-by: Dan Sanders <sandersd@chromium.org> Reviewed-by: Gayane Petrosyan <gayane@chromium.org> Cr-Commit-Position: refs/heads/master@{#518462} [modify] https://crrev.com/7f41f563aa0733dd1e635ead22594d6e47c3ffaf/media/blink/video_decode_stats_reporter.cc [modify] https://crrev.com/7f41f563aa0733dd1e635ead22594d6e47c3ffaf/media/blink/video_decode_stats_reporter.h [modify] https://crrev.com/7f41f563aa0733dd1e635ead22594d6e47c3ffaf/media/capabilities/video_decode_stats_db_impl.cc [modify] https://crrev.com/7f41f563aa0733dd1e635ead22594d6e47c3ffaf/tools/metrics/histograms/histograms.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c7c6a6d95b9f9feb6534b3d106516533093130d9 commit c7c6a6d95b9f9feb6534b3d106516533093130d9 Author: Chris Cunningham <chcunningham@chromium.org> Date: Thu Nov 23 14:06:45 2017 Record UKM metrics for video decode performance. UKM metrics form/discussion in internal design doc http://go/mcap-decode-perf-design Bug: 695264 Change-Id: I0a951585a7880be320659713fdeac1261595d92e Reviewed-on: https://chromium-review.googlesource.com/760056 Reviewed-by: Steven Holte <holte@chromium.org> Reviewed-by: Bernhard Bauer <bauerb@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#518923} [modify] https://crrev.com/c7c6a6d95b9f9feb6534b3d106516533093130d9/chrome/browser/browsing_data/browsing_data_remover_browsertest.cc [modify] https://crrev.com/c7c6a6d95b9f9feb6534b3d106516533093130d9/media/blink/video_decode_stats_reporter_unittest.cc [modify] https://crrev.com/c7c6a6d95b9f9feb6534b3d106516533093130d9/media/blink/webmediaplayer_impl.cc [modify] https://crrev.com/c7c6a6d95b9f9feb6534b3d106516533093130d9/media/blink/webmediaplayer_impl_unittest.cc [modify] https://crrev.com/c7c6a6d95b9f9feb6534b3d106516533093130d9/media/mojo/interfaces/video_decode_stats_recorder.mojom [modify] https://crrev.com/c7c6a6d95b9f9feb6534b3d106516533093130d9/media/mojo/services/video_decode_perf_history.cc [modify] https://crrev.com/c7c6a6d95b9f9feb6534b3d106516533093130d9/media/mojo/services/video_decode_perf_history.h [modify] https://crrev.com/c7c6a6d95b9f9feb6534b3d106516533093130d9/media/mojo/services/video_decode_perf_history_unittest.cc [modify] https://crrev.com/c7c6a6d95b9f9feb6534b3d106516533093130d9/media/mojo/services/video_decode_stats_recorder.cc [modify] https://crrev.com/c7c6a6d95b9f9feb6534b3d106516533093130d9/media/mojo/services/video_decode_stats_recorder.h [modify] https://crrev.com/c7c6a6d95b9f9feb6534b3d106516533093130d9/tools/metrics/ukm/ukm.xml
chcunningham@, should we close this and have any follow-up done in different bugs?
"Yes Mr. Frodo, its over now" Plan sounds good!
:)
Comment 1 by chcunningham@chromium.org
, Feb 23 2017