New issue
Advanced search Search tips

Issue 787470 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug

Blocking:
issue 736517



Sign in to add a comment

Move PepperVideoEncoderHost |encoder_| to background thread

Project Member Reported by mcasas@chromium.org, Nov 21 2017

Issue description

PepperVideoEncoderHost [1] tries to connect to a remote VideoEncodeAcceelerator
in the GPU process, falling back to a software implementation if it's not 
supported or fails to start up, etc.  This connection and/or the 
video encoding [2] happens on Renderer's main thread, which is not
a good idea. Consider moving it to a background thread.

UMA screenshot: https://screenshot.googleplex.com/rBbpDp7nooB

[1] https://cs.chromium.org/chromium/src/content/renderer/pepper/pepper_video_encoder_host.h?type=cs&q=PepperVideoEncoderHost&sq=package:chromium&l=35
[2] https://cs.chromium.org/chromium/src/content/renderer/pepper/pepper_video_encoder_host.cc?type=cs&sq=package:chromium&l=343
 

Comment 1 by mcasas@chromium.org, Nov 21 2017

Blocking: 736517

Comment 2 by mcasas@chromium.org, Dec 22 2017

Cc: -mcasas@chromium.org
Owner: mcasas@chromium.org
Status: WontFix (was: Available)
The CL copy-pasted below disconnected the use of VEA from Pepper
for the reasons enumerated there.


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

commit 141e77a5d35749ac52b9837f082baf5e1413fd66
Author: Miguel Casas <mcasas@chromium.org>
Date: Wed Dec 20 01:08:57 2017

VEA mojification: remove VEA use from PepperVideoEncoderHost

This CL removes using GPU accelerated decoding from PepperVEHost
to enable migrating the current IPC mechanism to Mojo (see
crrev.com/c/585512 and the bug).

Pepper UMA shows that there's barely any usage of this API [1].
Video encoding should have the possibility to fall back to
a software implementation, but this is only available for
VP8 and VP9 [2] (this is probably historical: H264/AVC1 software
encoding using //third_party/openh264 was only landed in 2016ish,
after this code was added); Android doesn't even have that
possibility [3] (and there's no openh264 in Android, see
crbug.com/719023). Moreover, Windows and Linux have no hw
encoding at all, Mac only supports h264, Android supports
h264 and VP8 (but might be disabled for certain models for
quality reasons IIRC).

PepperVideoEncoderHost was landed as part of crrev.com/905023005.

[1] https://uma.googleplex.com/timeline_v2?sid=02aca6e1540b804a771ae4194ecc4540
[2] https://cs.chromium.org/chromium/src/content/renderer/pepper/video_encoder_shim.cc?type=cs&sq=package:chromium&l=379
[3] https://cs.chromium.org/chromium/src/content/renderer/pepper/pepper_video_encoder_host.cc?type=cs&q=pepper_video_e&sq=package:chromium&l=304

Bug:  736517 
Change-Id: I3fc43f8e8e6178be39a347cc8630527f500bf7fc
Reviewed-on: https://chromium-review.googlesource.com/832768
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525211}
[modify] https://crrev.com/141e77a5d35749ac52b9837f082baf5e1413fd66/content/renderer/pepper/pepper_video_encoder_host.cc
[modify] https://crrev.com/141e77a5d35749ac52b9837f082baf5e1413fd66/content/renderer/pepper/pepper_video_encoder_host.h

Sign in to add a comment