| Index: content/renderer/media/android/media_player_renderer_client.cc
|
| diff --git a/content/renderer/media/android/media_player_renderer_client.cc b/content/renderer/media/android/media_player_renderer_client.cc
|
| index 20a5871c83ec1a88b38e80af2b8b351058b1d327..b035bff3ec65619c4b9f0ff973192841c515576e 100644
|
| --- a/content/renderer/media/android/media_player_renderer_client.cc
|
| +++ b/content/renderer/media/android/media_player_renderer_client.cc
|
| @@ -58,13 +58,31 @@ void MediaPlayerRendererClient::InitializeRemoteRenderer(
|
| weak_factory_.GetWeakPtr()));
|
| }
|
|
|
| +void MediaPlayerRendererClient::OnScopedSurfaceRequested(
|
| + const base::Optional<base::UnguessableToken>& request_token) {
|
| + if (!request_token) {
|
| + // No request was registered in the browser.
|
| + // The MojoRendererService was not constructed with an
|
| + // InitiateSurfaceRequestCB. This means that the renderer in the browser
|
| + // process likely isn't a MediaPlayerRenderer.
|
| + NOTREACHED();
|
| + return;
|
| + }
|
| +
|
| + stream_texture_wrapper_->ForwardStreamTextureForSurfaceRequest(
|
| + request_token.value());
|
| +}
|
| +
|
| void MediaPlayerRendererClient::CompleteInitialization(
|
| media::PipelineStatus status) {
|
| DCHECK(media_task_runner_->BelongsToCurrentThread());
|
| DCHECK(!init_cb_.is_null());
|
|
|
| - // TODO(tguilbert): Register |stream_texture_wrapper_|'s surface and send it
|
| - // to MediaPlayerRenderer via |mojo_renderer_|. See crbug.com/627658.
|
| + // TODO(tguilbert): Measure and smooth out the initialization's ordering to
|
| + // have the lowest total initialization time.
|
| + mojo_renderer_->InitiateScopedSurfaceRequest(
|
| + base::Bind(&MediaPlayerRendererClient::OnScopedSurfaceRequested,
|
| + weak_factory_.GetWeakPtr()));
|
|
|
| base::ResetAndReturn(&init_cb_).Run(status);
|
| }
|
|
|