| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/renderer/media/android/media_player_renderer_client.h" | 5 #include "content/renderer/media/android/media_player_renderer_client.h" |
| 6 | 6 |
| 7 #include "base/callback_helpers.h" | 7 #include "base/callback_helpers.h" |
| 8 | 8 |
| 9 namespace content { | 9 namespace content { |
| 10 | 10 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 // any size information from the MediaPlayer yet. | 38 // any size information from the MediaPlayer yet. |
| 39 // The size will be automatically updated in OnVideoNaturalSizeChange() once | 39 // The size will be automatically updated in OnVideoNaturalSizeChange() once |
| 40 // we parse the media's metadata. | 40 // we parse the media's metadata. |
| 41 // Unretained is safe here because |stream_texture_wrapper_| resets the | 41 // Unretained is safe here because |stream_texture_wrapper_| resets the |
| 42 // Closure it has before destroying itself on |compositor_task_runner_|, | 42 // Closure it has before destroying itself on |compositor_task_runner_|, |
| 43 // and |this| is garanteed to live until the Closure has been reset. | 43 // and |this| is garanteed to live until the Closure has been reset. |
| 44 stream_texture_wrapper_->Initialize( | 44 stream_texture_wrapper_->Initialize( |
| 45 base::Bind(&MediaPlayerRendererClient::OnFrameAvailable, | 45 base::Bind(&MediaPlayerRendererClient::OnFrameAvailable, |
| 46 base::Unretained(this)), | 46 base::Unretained(this)), |
| 47 gfx::Size(1, 1), compositor_task_runner_, | 47 gfx::Size(1, 1), compositor_task_runner_, |
| 48 base::Bind(&MediaPlayerRendererClient::InitializeRemoteRenderer, | 48 base::Bind(&MediaPlayerRendererClient::OnStreamTextureWrapperInitialized, |
| 49 weak_factory_.GetWeakPtr(), demuxer_stream_provider)); | 49 weak_factory_.GetWeakPtr(), demuxer_stream_provider)); |
| 50 } | 50 } |
| 51 | 51 |
| 52 void MediaPlayerRendererClient::InitializeRemoteRenderer( | 52 void MediaPlayerRendererClient::OnStreamTextureWrapperInitialized( |
| 53 media::DemuxerStreamProvider* demuxer_stream_provider) { | 53 media::DemuxerStreamProvider* demuxer_stream_provider, |
| 54 bool success) { |
| 54 DCHECK(media_task_runner_->BelongsToCurrentThread()); | 55 DCHECK(media_task_runner_->BelongsToCurrentThread()); |
| 56 if (!success) { |
| 57 base::ResetAndReturn(&init_cb_).Run( |
| 58 media::PipelineStatus::PIPELINE_ERROR_INITIALIZATION_FAILED); |
| 59 return; |
| 60 } |
| 61 |
| 55 mojo_renderer_->Initialize( | 62 mojo_renderer_->Initialize( |
| 56 demuxer_stream_provider, this, | 63 demuxer_stream_provider, this, |
| 57 base::Bind(&MediaPlayerRendererClient::CompleteInitialization, | 64 base::Bind(&MediaPlayerRendererClient::OnRemoteRendererInitialized, |
| 58 weak_factory_.GetWeakPtr())); | 65 weak_factory_.GetWeakPtr())); |
| 59 } | 66 } |
| 60 | 67 |
| 61 void MediaPlayerRendererClient::OnScopedSurfaceRequested( | 68 void MediaPlayerRendererClient::OnScopedSurfaceRequested( |
| 62 const base::UnguessableToken& request_token) { | 69 const base::UnguessableToken& request_token) { |
| 63 DCHECK(request_token); | 70 DCHECK(request_token); |
| 64 stream_texture_wrapper_->ForwardStreamTextureForSurfaceRequest(request_token); | 71 stream_texture_wrapper_->ForwardStreamTextureForSurfaceRequest(request_token); |
| 65 } | 72 } |
| 66 | 73 |
| 67 void MediaPlayerRendererClient::CompleteInitialization( | 74 void MediaPlayerRendererClient::OnRemoteRendererInitialized( |
| 68 media::PipelineStatus status) { | 75 media::PipelineStatus status) { |
| 69 DCHECK(media_task_runner_->BelongsToCurrentThread()); | 76 DCHECK(media_task_runner_->BelongsToCurrentThread()); |
| 70 DCHECK(!init_cb_.is_null()); | 77 DCHECK(!init_cb_.is_null()); |
| 71 | 78 |
| 72 // TODO(tguilbert): Measure and smooth out the initialization's ordering to | 79 // TODO(tguilbert): Measure and smooth out the initialization's ordering to |
| 73 // have the lowest total initialization time. | 80 // have the lowest total initialization time. |
| 74 mojo_renderer_->InitiateScopedSurfaceRequest( | 81 mojo_renderer_->InitiateScopedSurfaceRequest( |
| 75 base::Bind(&MediaPlayerRendererClient::OnScopedSurfaceRequested, | 82 base::Bind(&MediaPlayerRendererClient::OnScopedSurfaceRequested, |
| 76 weak_factory_.GetWeakPtr())); | 83 weak_factory_.GetWeakPtr())); |
| 77 | 84 |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 | 146 |
| 140 void MediaPlayerRendererClient::OnVideoOpacityChange(bool opaque) { | 147 void MediaPlayerRendererClient::OnVideoOpacityChange(bool opaque) { |
| 141 client_->OnVideoOpacityChange(opaque); | 148 client_->OnVideoOpacityChange(opaque); |
| 142 } | 149 } |
| 143 | 150 |
| 144 void MediaPlayerRendererClient::OnDurationChange(base::TimeDelta duration) { | 151 void MediaPlayerRendererClient::OnDurationChange(base::TimeDelta duration) { |
| 145 client_->OnDurationChange(duration); | 152 client_->OnDurationChange(duration); |
| 146 } | 153 } |
| 147 | 154 |
| 148 } // namespace content | 155 } // namespace content |
| OLD | NEW |