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

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: new flag playing_started_ 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 | « content/renderer/media/android/webmediaplayer_android.h ('k') | 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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 pending_seek_(0), 72 pending_seek_(0),
73 seeking_(false), 73 seeking_(false),
74 did_loading_progress_(false), 74 did_loading_progress_(false),
75 manager_(manager), 75 manager_(manager),
76 network_state_(WebMediaPlayer::NetworkStateEmpty), 76 network_state_(WebMediaPlayer::NetworkStateEmpty),
77 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), 77 ready_state_(WebMediaPlayer::ReadyStateHaveNothing),
78 texture_id_(0), 78 texture_id_(0),
79 texture_mailbox_sync_point_(0), 79 texture_mailbox_sync_point_(0),
80 stream_id_(0), 80 stream_id_(0),
81 is_playing_(false), 81 is_playing_(false),
82 playing_started_(false),
82 needs_establish_peer_(true), 83 needs_establish_peer_(true),
83 stream_texture_proxy_initialized_(false), 84 stream_texture_proxy_initialized_(false),
84 has_size_info_(false), 85 has_size_info_(false),
85 has_media_metadata_(false), 86 has_media_metadata_(false),
86 has_media_info_(false), 87 has_media_info_(false),
87 stream_texture_factory_(factory), 88 stream_texture_factory_(factory),
88 needs_external_surface_(false), 89 needs_external_surface_(false),
89 video_frame_provider_client_(NULL), 90 video_frame_provider_client_(NULL),
90 pending_playback_(false), 91 pending_playback_(false),
91 player_type_(MEDIA_PLAYER_TYPE_URL), 92 player_type_(MEDIA_PLAYER_TYPE_URL),
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 UpdateNetworkState(WebMediaPlayer::NetworkStateNetworkError); 229 UpdateNetworkState(WebMediaPlayer::NetworkStateNetworkError);
229 return; 230 return;
230 } 231 }
231 232
232 has_media_info_ = true; 233 has_media_info_ = true;
233 if (has_media_metadata_ && 234 if (has_media_metadata_ &&
234 ready_state_ != WebMediaPlayer::ReadyStateHaveEnoughData) { 235 ready_state_ != WebMediaPlayer::ReadyStateHaveEnoughData) {
235 UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata); 236 UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata);
236 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); 237 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData);
237 } 238 }
239 // Android doesn't start fetching resources until an implementation-defined
240 // event (e.g. playback request) occurs. Sets to the network state to IDLE
qinmin 2013/10/01 03:34:28 nit: s/Sets to/Sets/
Jinsuk Kim 2013/10/01 04:14:48 Done.
241 // if play is not requested yet.
242 if (!playing_started_)
243 UpdateNetworkState(WebMediaPlayer::NetworkStateIdle);
238 } 244 }
239 245
240 void WebMediaPlayerAndroid::play() { 246 void WebMediaPlayerAndroid::play() {
241 if (hasVideo() && needs_establish_peer_) 247 if (hasVideo() && needs_establish_peer_)
242 EstablishSurfaceTexturePeer(); 248 EstablishSurfaceTexturePeer();
243 249
244 if (paused()) 250 if (paused())
245 proxy_->Start(player_id_); 251 proxy_->Start(player_id_);
246 UpdatePlayingState(true); 252 UpdatePlayingState(true);
253 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading);
254 playing_started_ = true;
247 } 255 }
248 256
249 void WebMediaPlayerAndroid::pause() { 257 void WebMediaPlayerAndroid::pause() {
250 proxy_->Pause(player_id_); 258 proxy_->Pause(player_id_);
251 UpdatePlayingState(false); 259 UpdatePlayingState(false);
252 } 260 }
253 261
254 void WebMediaPlayerAndroid::seek(double seconds) { 262 void WebMediaPlayerAndroid::seek(double seconds) {
255 pending_seek_ = seconds; 263 pending_seek_ = seconds;
256 seeking_ = true; 264 seeking_ = true;
(...skipping 788 matching lines...) Expand 10 before | Expand all | Expand 10 after
1045 1053
1046 void WebMediaPlayerAndroid::exitFullscreen() { 1054 void WebMediaPlayerAndroid::exitFullscreen() {
1047 proxy_->ExitFullscreen(player_id_); 1055 proxy_->ExitFullscreen(player_id_);
1048 } 1056 }
1049 1057
1050 bool WebMediaPlayerAndroid::canEnterFullscreen() const { 1058 bool WebMediaPlayerAndroid::canEnterFullscreen() const {
1051 return manager_->CanEnterFullscreen(frame_); 1059 return manager_->CanEnterFullscreen(frame_);
1052 } 1060 }
1053 1061
1054 } // namespace content 1062 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/android/webmediaplayer_android.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698