Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(92)

Side by Side Diff: content/renderer/media/android/webmediaplayer_android.cc

Issue 23797004: Sets the media element network state to idle until playback is requested. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: keep loading state from being overriden by callback Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 UpdateNetworkState(WebMediaPlayer::NetworkStateNetworkError); 289 UpdateNetworkState(WebMediaPlayer::NetworkStateNetworkError);
290 return; 290 return;
291 } 291 }
292 292
293 has_media_info_ = true; 293 has_media_info_ = true;
294 if (has_media_metadata_ && 294 if (has_media_metadata_ &&
295 ready_state_ != WebMediaPlayer::ReadyStateHaveEnoughData) { 295 ready_state_ != WebMediaPlayer::ReadyStateHaveEnoughData) {
296 UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata); 296 UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata);
297 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); 297 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData);
298 } 298 }
299 // Android doesn't start fetching resources until an implementation-defined
300 // event (e.g. playback request) occurs. Sets to the network state to IDLE
301 // if play is not requested yet.
302 if (paused())
303 UpdateNetworkState(WebMediaPlayer::NetworkStateIdle);
scherkus (not reviewing) 2013/09/25 00:23:54 this still isn't technically correct for example,
Jinsuk Kim 2013/09/25 01:42:11 That's true. I think I need a new flag rather than
299 } 304 }
300 305
301 void WebMediaPlayerAndroid::play() { 306 void WebMediaPlayerAndroid::play() {
302 #if defined(GOOGLE_TV) 307 #if defined(GOOGLE_TV)
303 if (hasVideo() && needs_external_surface_ && 308 if (hasVideo() && needs_external_surface_ &&
304 !manager_->IsInFullscreen(frame_)) { 309 !manager_->IsInFullscreen(frame_)) {
305 DCHECK(!needs_establish_peer_); 310 DCHECK(!needs_establish_peer_);
306 proxy_->RequestExternalSurface(player_id_, last_computed_rect_); 311 proxy_->RequestExternalSurface(player_id_, last_computed_rect_);
307 } 312 }
308 if (audio_renderer_ && paused()) 313 if (audio_renderer_ && paused())
309 audio_renderer_->Play(); 314 audio_renderer_->Play();
310 #endif 315 #endif
311 if (hasVideo() && needs_establish_peer_) 316 if (hasVideo() && needs_establish_peer_)
312 EstablishSurfaceTexturePeer(); 317 EstablishSurfaceTexturePeer();
313 318
314 if (paused()) 319 if (paused())
315 proxy_->Start(player_id_); 320 proxy_->Start(player_id_);
316 UpdatePlayingState(true); 321 UpdatePlayingState(true);
322 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading);
317 } 323 }
318 324
319 void WebMediaPlayerAndroid::pause() { 325 void WebMediaPlayerAndroid::pause() {
320 #if defined(GOOGLE_TV) 326 #if defined(GOOGLE_TV)
321 if (audio_renderer_ && !paused()) 327 if (audio_renderer_ && !paused())
322 audio_renderer_->Pause(); 328 audio_renderer_->Pause();
323 #endif 329 #endif
324 proxy_->Pause(player_id_); 330 proxy_->Pause(player_id_);
325 UpdatePlayingState(false); 331 UpdatePlayingState(false);
326 } 332 }
(...skipping 872 matching lines...) Expand 10 before | Expand all | Expand 10 after
1199 1205
1200 void WebMediaPlayerAndroid::exitFullscreen() { 1206 void WebMediaPlayerAndroid::exitFullscreen() {
1201 proxy_->ExitFullscreen(player_id_); 1207 proxy_->ExitFullscreen(player_id_);
1202 } 1208 }
1203 1209
1204 bool WebMediaPlayerAndroid::canEnterFullscreen() const { 1210 bool WebMediaPlayerAndroid::canEnterFullscreen() const {
1205 return manager_->CanEnterFullscreen(frame_); 1211 return manager_->CanEnterFullscreen(frame_);
1206 } 1212 }
1207 1213
1208 } // namespace content 1214 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698