Move PepperVideoEncoderHost |encoder_| to background thread |
||
Issue descriptionPepperVideoEncoderHost [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
,
Dec 22 2017
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 |
||
Comment 1 by mcasas@chromium.org
, Nov 21 2017