DescriptionUse FFmpegVideoDecoder from a UtilityProcess
Add UtilityMojoMediaClient.
The result is already quite beneficial compared to do decoding
in the renderer process. For example killing the utility process
almost does not affect the user. Whereas killing the renderer process
make the tab unavailable, i.e. the user will see the classic
"Aw, Snap! Something went wrong while displaying this web page".
At the moment it just does not restart from the position where
it has crashed, but it sounds doable to implement the feature.
Instead, it pauses on the last frame seen. And clicking play
will for now restart playback from the beginning.
It also seems beneficial compared to do decoding in the gpu
process. Indeed when killing the gpu process, the browser has
to restart the whole GL bits (and sometimes just decides to
fallback to software rendering so no gpu process). Also it
can affects others tabs.
BUG=
CQ_INCLUDE_TRYBOTS=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
Patch Set 1 #Patch Set 2 : Rebase and implement generic MojoSharedBufferVideoFrame::CreateYUV #Patch Set 3 : Fix hack in video frame pool by implementing WrapMojoSharedBufferVideoFrame #Patch Set 4 : Removed accidentally pushed CL 2382103002 #Patch Set 5 : Add VideoFramePoolDelegate iface and MojoVideoFramePoolDelegate impl #Patch Set 6 : Add utility_mojo_media_client.h/utility_mojo_media_client.cc #Patch Set 7 : Rebase #Patch Set 8 : add media/base/video_decoder.h include #Patch Set 9 : Fix build error on win #
Total comments: 7
Messages
Total messages: 28 (23 generated)
|