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

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

Issue 22875030: Run |demuxer_| related tasks in the media thread in GTV. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed Aaron's comments. Created 7 years, 4 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 | Annotate | Revision Log
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 "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 #define BIND_TO_RENDER_LOOP(function) \ 58 #define BIND_TO_RENDER_LOOP(function) \
59 media::BindToLoop(main_loop_, base::Bind(function, AsWeakPtr())) 59 media::BindToLoop(main_loop_, base::Bind(function, AsWeakPtr()))
60 60
61 WebMediaPlayerAndroid::WebMediaPlayerAndroid( 61 WebMediaPlayerAndroid::WebMediaPlayerAndroid(
62 WebKit::WebFrame* frame, 62 WebKit::WebFrame* frame,
63 WebKit::WebMediaPlayerClient* client, 63 WebKit::WebMediaPlayerClient* client,
64 base::WeakPtr<WebMediaPlayerDelegate> delegate, 64 base::WeakPtr<WebMediaPlayerDelegate> delegate,
65 RendererMediaPlayerManager* manager, 65 RendererMediaPlayerManager* manager,
66 WebMediaPlayerProxyAndroid* proxy, 66 WebMediaPlayerProxyAndroid* proxy,
67 StreamTextureFactory* factory, 67 StreamTextureFactory* factory,
68 const scoped_refptr<base::MessageLoopProxy>& media_loop,
68 media::MediaLog* media_log) 69 media::MediaLog* media_log)
69 : frame_(frame), 70 : frame_(frame),
70 client_(client), 71 client_(client),
71 delegate_(delegate), 72 delegate_(delegate),
72 buffered_(1u), 73 buffered_(1u),
73 main_loop_(base::MessageLoopProxy::current()), 74 main_loop_(base::MessageLoopProxy::current()),
75 media_loop_(media_loop),
74 ignore_metadata_duration_change_(false), 76 ignore_metadata_duration_change_(false),
75 pending_seek_(0), 77 pending_seek_(0),
76 seeking_(false), 78 seeking_(false),
77 did_loading_progress_(false), 79 did_loading_progress_(false),
78 manager_(manager), 80 manager_(manager),
79 network_state_(WebMediaPlayer::NetworkStateEmpty), 81 network_state_(WebMediaPlayer::NetworkStateEmpty),
80 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), 82 ready_state_(WebMediaPlayer::ReadyStateHaveNothing),
81 texture_id_(0), 83 texture_id_(0),
82 texture_mailbox_sync_point_(0), 84 texture_mailbox_sync_point_(0),
83 stream_id_(0), 85 stream_id_(0),
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 225
224 media::SetDecryptorReadyCB set_decryptor_ready_cb; 226 media::SetDecryptorReadyCB set_decryptor_ready_cb;
225 if (decryptor_) { // |decryptor_| can be NULL is EME if not enabled. 227 if (decryptor_) { // |decryptor_| can be NULL is EME if not enabled.
226 set_decryptor_ready_cb = base::Bind(&ProxyDecryptor::SetDecryptorReadyCB, 228 set_decryptor_ready_cb = base::Bind(&ProxyDecryptor::SetDecryptorReadyCB,
227 base::Unretained(decryptor_.get())); 229 base::Unretained(decryptor_.get()));
228 } 230 }
229 231
230 if (source_type_ != MediaPlayerAndroid::SOURCE_TYPE_URL) { 232 if (source_type_ != MediaPlayerAndroid::SOURCE_TYPE_URL) {
231 has_media_info_ = true; 233 has_media_info_ = true;
232 media_source_delegate_.reset( 234 media_source_delegate_.reset(
233 new MediaSourceDelegate(proxy_, player_id_, media_log_)); 235 new MediaSourceDelegate(proxy_, player_id_, media_loop_, media_log_));
234 // |media_source_delegate_| is owned, so Unretained() is safe here. 236 // |media_source_delegate_| is owned, so Unretained() is safe here.
235 if (source_type_ == MediaPlayerAndroid::SOURCE_TYPE_MSE) { 237 if (source_type_ == MediaPlayerAndroid::SOURCE_TYPE_MSE) {
236 media_source_delegate_->InitializeMediaSource( 238 media_source_delegate_->InitializeMediaSource(
237 base::Bind(&WebMediaPlayerAndroid::OnMediaSourceOpened, 239 base::Bind(&WebMediaPlayerAndroid::OnMediaSourceOpened,
238 base::Unretained(this)), 240 base::Unretained(this)),
239 base::Bind(&WebMediaPlayerAndroid::OnNeedKey, base::Unretained(this)), 241 base::Bind(&WebMediaPlayerAndroid::OnNeedKey, base::Unretained(this)),
240 set_decryptor_ready_cb, 242 set_decryptor_ready_cb,
241 base::Bind(&WebMediaPlayerAndroid::UpdateNetworkState, 243 base::Bind(&WebMediaPlayerAndroid::UpdateNetworkState,
242 base::Unretained(this)), 244 base::Unretained(this)),
243 BIND_TO_RENDER_LOOP(&WebMediaPlayerAndroid::OnDurationChange)); 245 BIND_TO_RENDER_LOOP(&WebMediaPlayerAndroid::OnDurationChange));
(...skipping 934 matching lines...) Expand 10 before | Expand all | Expand 10 after
1178 1180
1179 void WebMediaPlayerAndroid::exitFullscreen() { 1181 void WebMediaPlayerAndroid::exitFullscreen() {
1180 proxy_->ExitFullscreen(player_id_); 1182 proxy_->ExitFullscreen(player_id_);
1181 } 1183 }
1182 1184
1183 bool WebMediaPlayerAndroid::canEnterFullscreen() const { 1185 bool WebMediaPlayerAndroid::canEnterFullscreen() const {
1184 return manager_->CanEnterFullscreen(frame_); 1186 return manager_->CanEnterFullscreen(frame_);
1185 } 1187 }
1186 1188
1187 } // namespace content 1189 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/android/webmediaplayer_android.h ('k') | content/renderer/render_view_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698