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

Issue 616785 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: Jul 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug



Sign in to add a comment

VPDecoderXPCService CPU usage multiplies with every video playing parallal

Reported by phil...@highsnobiety.com, Jun 2 2016

Issue description


Google Chrome	50.0.2661.102 (Official Build) (64-bit)
Revision	c26c0312e940221c424c2730ef72be2c69ac1b67-refs/branch-heads/2661@{#680}
OS	Mac OS X 
Blink	537.36 (@c26c0312e940221c424c2730ef72be2c69ac1b67)
JavaScript	V8 5.0.71.48
Flash	21.0.0.242
User Agent	Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
Command Line	/Applications/Google Chrome.app/Contents/MacOS/Google Chrome --enable-avfoundation --flag-switches-begin --flag-switches-end
Executable Path	/Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Profile Path	/Users/philipp/Library/Application Support/Google/Chrome/Default
Variations	b3888d8d-afba0f91
92fb4fc2-3f4a17df
6345b824-3d47f4f4
7c1bc906-f55a7974
770a425-ad0da21a
cf5ed6e1-3f4a17df
775ebbd7-3f4a17df
31362330-3f4a17df
c70841c8-a2567007
f15c1c09-ca7d8d80
a3903585-82909ced
9e5c75f1-72de46ee
f79cb77b-3d47f4f4
b7786474-64e7d9a
4ea303a6-ecbb250e
4117e878-7281dfa9
9736de91-ca7d8d80
dbffab5d-ca7d8d80
f47ae82a-86f22ee5
3ac60855-486e2a9c
f296190c-a0af34c0
4442aae2-6e597ede
ed1d377-e1cc0f14
75f0f0a0-e1cc0f14
e2b18481-9d9eea77
e7e71889-4ad60575
b39ea213-d1372334
6ab14220-3f4a17df

OS version               : 10.11.4 (15E65)
Behavior in Safari 3.x/4.x (if applicable): FAIL
Behavior in Firefox 3.x (if applicable): OK
Behavior in Chrome for Windows: NOT TESTED

What steps will reproduce the problem?
(1) Setup an HTML file with 3 or more HTML5 video elements (mp4 source, auto play). I used this file to test: http://ads.highsnobiety.com/1600x400_white_1.mp4
(2) Monitor the CPU usage when playing different numbers of videos in parallel

What is the expected result?

The expected result would be that the CPU usage of the VPDecoderXPCService stays at 0%.

What happens instead?

Instead the VPDecoderXPCService CPU usage is adding up for every video that is being played in parallel.

Screen Recording: https://drive.google.com/file/d/0ByPeTVPSHbc9U1lzVmlmUWhDLUk/view?usp=sharing

 
Components: Blink>Media>Video
I have not confirmed this (no sample HTML provided), but I would expect VP9 decoding for each stream. Each stream plays in parallel, and the starting points are not guaranteed to be synchronized.

Here's a sample to reproduce the issue: http://codepen.io/philipptri/pen/PzPOEz

Also I discovered that the behavior can be reproduced by playing videos in parallel across multiple open tabs.


Components: -Blink>Media>Video Internals>Media>Video
Cc: sande...@chromium.org
Why do you think this should be 0%? OSX doesn't guarantee hardware decoding will be used for all videos.

Comment 5 by shrike@chromium.org, Jul 21 2016

Cc: shrike@chromium.org
philipp@highsnobiety.com - why do you expect CPU use to be 0? There is no hardware decoding of VP9 video so each VP9 video playing will increase CPU usage.

The videos are all mp4 w/ h264, but the point still stands, even when passed to the OS level decoder we aren't guaranteed hardware decoding.

Comment 7 by shrike@chromium.org, Jul 21 2016

Can you elaborate on why that is the case for h.264?
Some examples of reasons why H.264 may not be hardware decoded on Mac OS X:
  - There is no Intel GPU on the system.
  - The hardware decode resources are exhausted (can happen with only a few videos decoding).
  - The profile, level, or pixel format is unsupported (eg. anything not 4:2:0)
  - The resolution is unsupported (eg. anything under 480p).

Comment 9 by shrike@chromium.org, Jul 21 2016

Great, thank you.
Status: WontFix (was: Unconfirmed)
based on comment #8, I'll resolve this bug as won't fix. Please correct me if my understanding is wrong.

Sign in to add a comment