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

Issue 619729 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Feature


Sign in to add a comment

Mojo MediaPlayerRenderer tracking bug

Project Member Reported by tguilbert@chromium.org, Jun 13 2016

Issue description

This bug will be used to track all the work related to the Mojo MediaPlayerRenderer.

This description will be updated further.
 
Components: Internals>Media
Cc: liber...@chromium.org
Blockedon: 622812
Cc: j.iso...@samsung.com
Blockedon: 627632
Blockedon: 627658
Labels: -Pri-3 Pri-1
Blockedon: 631199
Hi, could you describe a bit more what is the goal here ? Thx.

Will it cover HLS ?

Currently MojoRenderer roughly only includes decoders+sinks. Does this new MojoMediaPlayerRenderer includes demuxers as well (so the whole pipeline) ?


Cc: a.obzhirov@samsung.com
Restart for all progress
The MediaPlayerRenderer is an upcoming class whose goal is to replace WebMediaPlayer_Android (WMPA) and to integrate nicely within WebMediaPlayer_Impl (WMPI).

The idea is to re-use Android's MediaPlayer (just like it was being done in WMPA), in order to maintain support for which ever versions of HLS are natively supported by Android.

MediaPlayer manages its own network calls and demuxing, so it needs to run in a privileged process, such as the Browser process. In order to communicate with the MediaPlayer, we will be using the MojoRenderer/MojoRendererService, which will forward calls from WMPI to the new MediaPlayerRenderer. The MediaPlayerRenderer is an adapter between the MediaPlayer and media::Renderer interfaces, which wraps a MediaPlayerBridge (https://cs.chromium.org/chromium/src/media/base/android/media_player_bridge.h?q=mediaplayerbridge&sq=package:chromium&dr=CSs&l=37) (which is a c++ wrapper over the MediaPlayer).

The MediaPlayer doesn't need much more than a URL and an Android Surface (SurfaceTexture or SurfaceView) to start playing. The whole pipeline will therefore not be exposed via the MojoRenderer (which will not change much compared to how it is today).

The next CL I am sending is the CL tied to  crbug.com/631199 . I should have the CL out shortly (by the end of the week at the very latest), which will make all of this much clearer.
Blockedon: 636604
Blockedon: 636615
For those that are interested, this CL is one of the major pieces of the puzzle, and should help give a better overview of what the final project will look like.

https://codereview.chromium.org/2230583002/
Project Member

Comment 16 by bugdroid1@chromium.org, Oct 13 2016

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

commit 25a4d110be98f53dd4f9608740a283deed34fb6b
Author: tguilbert <tguilbert@chromium.org>
Date: Thu Oct 13 21:56:51 2016

Register MediaPlayerRenderer service

This change adds the necessary code to allow the creation of a
MediaPlayerRenderer for HLS playback. The service's registration
is disabled by default, and enabled by a runtime flag.

To use the player, add the following flag to your command line.
"--enable-features=android-media-player-renderer"

The leftover issues before the MediaPlayerRenderer can be officially
shipped and before WMPA can be deleted are tracked by the issues
blocking  crbug.com/619729 .

BUG= 619729 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2387293007
Cr-Commit-Position: refs/heads/master@{#425176}

[modify] https://crrev.com/25a4d110be98f53dd4f9608740a283deed34fb6b/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/25a4d110be98f53dd4f9608740a283deed34fb6b/content/browser/media/android/media_player_renderer.cc
[modify] https://crrev.com/25a4d110be98f53dd4f9608740a283deed34fb6b/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/25a4d110be98f53dd4f9608740a283deed34fb6b/media/base/media_switches.cc
[modify] https://crrev.com/25a4d110be98f53dd4f9608740a283deed34fb6b/media/base/media_switches.h
[modify] https://crrev.com/25a4d110be98f53dd4f9608740a283deed34fb6b/media/base/pipeline_impl.cc
[modify] https://crrev.com/25a4d110be98f53dd4f9608740a283deed34fb6b/media/base/pipeline_metadata.h
[modify] https://crrev.com/25a4d110be98f53dd4f9608740a283deed34fb6b/media/blink/watch_time_reporter.cc
[modify] https://crrev.com/25a4d110be98f53dd4f9608740a283deed34fb6b/media/blink/webmediaplayer_impl.cc
[modify] https://crrev.com/25a4d110be98f53dd4f9608740a283deed34fb6b/media/blink/webmediaplayer_impl.h
[modify] https://crrev.com/25a4d110be98f53dd4f9608740a283deed34fb6b/media/mojo/clients/mojo_renderer.cc
[modify] https://crrev.com/25a4d110be98f53dd4f9608740a283deed34fb6b/media/mojo/clients/mojo_renderer_factory.cc
[modify] https://crrev.com/25a4d110be98f53dd4f9608740a283deed34fb6b/media/remoting/remoting_controller.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Nov 17 2016

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

commit 5aecbd632d5640b67c3b4746b0a53b173bc42a31
Author: tguilbert <tguilbert@chromium.org>
Date: Thu Nov 17 05:34:37 2016

Enable MediaPlayerRenderer by default

This changes disables WebMediaPlayerAndroid and enables
the MediaPlayerRenderer instead. This allows us to maintain
support for HLS playback, while phasing out WMPA.

BUG= 619729 
TEST=Manual verification of various HLS example streams.

Review-Url: https://codereview.chromium.org/2503153002
Cr-Commit-Position: refs/heads/master@{#432765}

[modify] https://crrev.com/5aecbd632d5640b67c3b4746b0a53b173bc42a31/media/base/media_switches.cc

Blockedon: 636588
The MediaPlayerRenderer has been turned on by default (replacing WMPA) as of last night.

I will keep this bug open until the change propagates to more users and we start getting results (and confirm nothing has gone horribly wrong).
The MediaPlayerRenderer by default was reverted two weeks ago due to 
crbug.com/671358 and crbug.com/667162. It should ship in M57 however.
This is still on track for M57. I will keep the bug open until M57 branches and the code makes its way to beta without any problems.
Status: Verified (was: Assigned)
The code has made its way to stable.

Sign in to add a comment