| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/webmediaplayer_android.h" | 5 #include "content/renderer/media/android/webmediaplayer_android.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 pending_seek_(false), | 76 pending_seek_(false), |
| 77 seeking_(false), | 77 seeking_(false), |
| 78 did_loading_progress_(false), | 78 did_loading_progress_(false), |
| 79 manager_(manager), | 79 manager_(manager), |
| 80 network_state_(WebMediaPlayer::NetworkStateEmpty), | 80 network_state_(WebMediaPlayer::NetworkStateEmpty), |
| 81 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), | 81 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), |
| 82 texture_id_(0), | 82 texture_id_(0), |
| 83 texture_mailbox_sync_point_(0), | 83 texture_mailbox_sync_point_(0), |
| 84 stream_id_(0), | 84 stream_id_(0), |
| 85 is_playing_(false), | 85 is_playing_(false), |
| 86 playing_started_(false), |
| 86 needs_establish_peer_(true), | 87 needs_establish_peer_(true), |
| 87 stream_texture_proxy_initialized_(false), | 88 stream_texture_proxy_initialized_(false), |
| 88 has_size_info_(false), | 89 has_size_info_(false), |
| 89 has_media_metadata_(false), | 90 has_media_metadata_(false), |
| 90 has_media_info_(false), | 91 has_media_info_(false), |
| 91 stream_texture_factory_(factory), | 92 stream_texture_factory_(factory), |
| 92 needs_external_surface_(false), | 93 needs_external_surface_(false), |
| 93 video_frame_provider_client_(NULL), | 94 video_frame_provider_client_(NULL), |
| 94 #if defined(GOOGLE_TV) | 95 #if defined(GOOGLE_TV) |
| 95 external_surface_threshold_(-1), | 96 external_surface_threshold_(-1), |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 UpdateNetworkState(WebMediaPlayer::NetworkStateNetworkError); | 294 UpdateNetworkState(WebMediaPlayer::NetworkStateNetworkError); |
| 294 return; | 295 return; |
| 295 } | 296 } |
| 296 | 297 |
| 297 has_media_info_ = true; | 298 has_media_info_ = true; |
| 298 if (has_media_metadata_ && | 299 if (has_media_metadata_ && |
| 299 ready_state_ != WebMediaPlayer::ReadyStateHaveEnoughData) { | 300 ready_state_ != WebMediaPlayer::ReadyStateHaveEnoughData) { |
| 300 UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata); | 301 UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata); |
| 301 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); | 302 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); |
| 302 } | 303 } |
| 304 // Android doesn't start fetching resources until an implementation-defined |
| 305 // event (e.g. playback request) occurs. Sets the network state to IDLE |
| 306 // if play is not requested yet. |
| 307 if (!playing_started_) |
| 308 UpdateNetworkState(WebMediaPlayer::NetworkStateIdle); |
| 303 } | 309 } |
| 304 | 310 |
| 305 void WebMediaPlayerAndroid::play() { | 311 void WebMediaPlayerAndroid::play() { |
| 306 #if defined(GOOGLE_TV) | 312 #if defined(GOOGLE_TV) |
| 307 if (hasVideo() && needs_external_surface_ && | 313 if (hasVideo() && needs_external_surface_ && |
| 308 !manager_->IsInFullscreen(frame_)) { | 314 !manager_->IsInFullscreen(frame_)) { |
| 309 DCHECK(!needs_establish_peer_); | 315 DCHECK(!needs_establish_peer_); |
| 310 proxy_->RequestExternalSurface(player_id_, last_computed_rect_); | 316 proxy_->RequestExternalSurface(player_id_, last_computed_rect_); |
| 311 } | 317 } |
| 312 if (audio_renderer_ && paused()) | 318 if (audio_renderer_ && paused()) |
| 313 audio_renderer_->Play(); | 319 audio_renderer_->Play(); |
| 314 #endif | 320 #endif |
| 315 if (hasVideo() && needs_establish_peer_) | 321 if (hasVideo() && needs_establish_peer_) |
| 316 EstablishSurfaceTexturePeer(); | 322 EstablishSurfaceTexturePeer(); |
| 317 | 323 |
| 318 if (paused()) | 324 if (paused()) |
| 319 proxy_->Start(player_id_); | 325 proxy_->Start(player_id_); |
| 320 UpdatePlayingState(true); | 326 UpdatePlayingState(true); |
| 327 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); |
| 328 playing_started_ = true; |
| 321 } | 329 } |
| 322 | 330 |
| 323 void WebMediaPlayerAndroid::pause() { | 331 void WebMediaPlayerAndroid::pause() { |
| 324 pause(true); | 332 pause(true); |
| 325 } | 333 } |
| 326 | 334 |
| 327 void WebMediaPlayerAndroid::pause(bool is_media_related_action) { | 335 void WebMediaPlayerAndroid::pause(bool is_media_related_action) { |
| 328 #if defined(GOOGLE_TV) | 336 #if defined(GOOGLE_TV) |
| 329 if (audio_renderer_ && !paused()) | 337 if (audio_renderer_ && !paused()) |
| 330 audio_renderer_->Pause(); | 338 audio_renderer_->Pause(); |
| (...skipping 897 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1228 | 1236 |
| 1229 void WebMediaPlayerAndroid::exitFullscreen() { | 1237 void WebMediaPlayerAndroid::exitFullscreen() { |
| 1230 proxy_->ExitFullscreen(player_id_); | 1238 proxy_->ExitFullscreen(player_id_); |
| 1231 } | 1239 } |
| 1232 | 1240 |
| 1233 bool WebMediaPlayerAndroid::canEnterFullscreen() const { | 1241 bool WebMediaPlayerAndroid::canEnterFullscreen() const { |
| 1234 return manager_->CanEnterFullscreen(frame_); | 1242 return manager_->CanEnterFullscreen(frame_); |
| 1235 } | 1243 } |
| 1236 | 1244 |
| 1237 } // namespace content | 1245 } // namespace content |
| OLD | NEW |