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

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

Issue 1385883002: Leave CreateStreamTexture route id out of the GL interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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
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/android/build_info.h" 9 #include "base/android/build_info.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 namespace content { 155 namespace content {
156 156
157 WebMediaPlayerAndroid::WebMediaPlayerAndroid( 157 WebMediaPlayerAndroid::WebMediaPlayerAndroid(
158 blink::WebFrame* frame, 158 blink::WebFrame* frame,
159 blink::WebMediaPlayerClient* client, 159 blink::WebMediaPlayerClient* client,
160 blink::WebMediaPlayerEncryptedMediaClient* encrypted_client, 160 blink::WebMediaPlayerEncryptedMediaClient* encrypted_client,
161 base::WeakPtr<media::WebMediaPlayerDelegate> delegate, 161 base::WeakPtr<media::WebMediaPlayerDelegate> delegate,
162 RendererMediaPlayerManager* player_manager, 162 RendererMediaPlayerManager* player_manager,
163 media::CdmFactory* cdm_factory, 163 media::CdmFactory* cdm_factory,
164 scoped_refptr<StreamTextureFactory> factory, 164 scoped_refptr<StreamTextureFactory> factory,
165 int frame_id,
165 const media::WebMediaPlayerParams& params) 166 const media::WebMediaPlayerParams& params)
166 : RenderFrameObserver(RenderFrame::FromWebFrame(frame)), 167 : RenderFrameObserver(RenderFrame::FromWebFrame(frame)),
167 frame_(frame), 168 frame_(frame),
168 client_(client), 169 client_(client),
169 encrypted_client_(encrypted_client), 170 encrypted_client_(encrypted_client),
170 delegate_(delegate), 171 delegate_(delegate),
171 defer_load_cb_(params.defer_load_cb()), 172 defer_load_cb_(params.defer_load_cb()),
172 buffered_(static_cast<size_t>(1)), 173 buffered_(static_cast<size_t>(1)),
173 media_task_runner_(params.media_task_runner()), 174 media_task_runner_(params.media_task_runner()),
174 ignore_metadata_duration_change_(false), 175 ignore_metadata_duration_change_(false),
175 pending_seek_(false), 176 pending_seek_(false),
176 seeking_(false), 177 seeking_(false),
177 did_loading_progress_(false), 178 did_loading_progress_(false),
178 player_manager_(player_manager), 179 player_manager_(player_manager),
179 cdm_factory_(cdm_factory), 180 cdm_factory_(cdm_factory),
180 media_permission_(params.media_permission()), 181 media_permission_(params.media_permission()),
181 network_state_(WebMediaPlayer::NetworkStateEmpty), 182 network_state_(WebMediaPlayer::NetworkStateEmpty),
182 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), 183 ready_state_(WebMediaPlayer::ReadyStateHaveNothing),
183 texture_id_(0), 184 texture_id_(0),
184 stream_id_(0), 185 stream_id_(0),
185 is_player_initialized_(false), 186 is_player_initialized_(false),
186 is_playing_(false), 187 is_playing_(false),
187 needs_establish_peer_(true), 188 needs_establish_peer_(true),
188 has_size_info_(false), 189 has_size_info_(false),
189 // Threaded compositing isn't enabled universally yet. 190 // Threaded compositing isn't enabled universally yet.
190 compositor_task_runner_( 191 compositor_task_runner_(params.compositor_task_runner()
191 params.compositor_task_runner() 192 ? params.compositor_task_runner()
192 ? params.compositor_task_runner() 193 : base::ThreadTaskRunnerHandle::Get()),
193 : base::ThreadTaskRunnerHandle::Get()),
194 stream_texture_factory_(factory), 194 stream_texture_factory_(factory),
195 needs_external_surface_(false), 195 needs_external_surface_(false),
196 is_fullscreen_(false), 196 is_fullscreen_(false),
197 video_frame_provider_client_(NULL), 197 video_frame_provider_client_(NULL),
198 player_type_(MEDIA_PLAYER_TYPE_URL), 198 player_type_(MEDIA_PLAYER_TYPE_URL),
199 is_remote_(false), 199 is_remote_(false),
200 media_log_(params.media_log()), 200 media_log_(params.media_log()),
201 init_data_type_(media::EmeInitDataType::UNKNOWN), 201 init_data_type_(media::EmeInitDataType::UNKNOWN),
202 cdm_context_(NULL), 202 cdm_context_(NULL),
203 allow_stored_credentials_(false), 203 allow_stored_credentials_(false),
204 is_local_resource_(false), 204 is_local_resource_(false),
205 interpolator_(&default_tick_clock_), 205 interpolator_(&default_tick_clock_),
206 frame_id_(frame_id),
206 weak_factory_(this) { 207 weak_factory_(this) {
207 DCHECK(player_manager_); 208 DCHECK(player_manager_);
208 DCHECK(cdm_factory_); 209 DCHECK(cdm_factory_);
209 210
210 DCHECK(main_thread_checker_.CalledOnValidThread()); 211 DCHECK(main_thread_checker_.CalledOnValidThread());
211 stream_texture_factory_->AddObserver(this); 212 stream_texture_factory_->AddObserver(this);
212 213
213 player_id_ = player_manager_->RegisterMediaPlayer(this); 214 player_id_ = player_manager_->RegisterMediaPlayer(this);
214 215
215 #if defined(VIDEO_HOLE) 216 #if defined(VIDEO_HOLE)
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 267
267 if (media_source_delegate_) { 268 if (media_source_delegate_) {
268 // Part of |media_source_delegate_| needs to be stopped on the media thread. 269 // Part of |media_source_delegate_| needs to be stopped on the media thread.
269 // Wait until |media_source_delegate_| is fully stopped before tearing 270 // Wait until |media_source_delegate_| is fully stopped before tearing
270 // down other objects. 271 // down other objects.
271 base::WaitableEvent waiter(false, false); 272 base::WaitableEvent waiter(false, false);
272 media_source_delegate_->Stop( 273 media_source_delegate_->Stop(
273 base::Bind(&base::WaitableEvent::Signal, base::Unretained(&waiter))); 274 base::Bind(&base::WaitableEvent::Signal, base::Unretained(&waiter)));
274 waiter.Wait(); 275 waiter.Wait();
275 } 276 }
277 frame_id_ = 0;
no sievers 2015/11/06 22:08:41 nit: not needed
sivag 2015/11/09 14:06:32 Done.
276 } 278 }
277 279
278 void WebMediaPlayerAndroid::load(LoadType load_type, 280 void WebMediaPlayerAndroid::load(LoadType load_type,
279 const blink::WebURL& url, 281 const blink::WebURL& url,
280 CORSMode cors_mode) { 282 CORSMode cors_mode) {
281 if (!defer_load_cb_.is_null()) { 283 if (!defer_load_cb_.is_null()) {
282 defer_load_cb_.Run(base::Bind(&WebMediaPlayerAndroid::DoLoad, 284 defer_load_cb_.Run(base::Bind(&WebMediaPlayerAndroid::DoLoad,
283 weak_factory_.GetWeakPtr(), load_type, url, 285 weak_factory_.GetWeakPtr(), load_type, url,
284 cors_mode)); 286 cors_mode));
285 return; 287 return;
(...skipping 1097 matching lines...) Expand 10 before | Expand all | Expand 10 after
1383 } 1385 }
1384 } 1386 }
1385 } 1387 }
1386 1388
1387 void WebMediaPlayerAndroid::EstablishSurfaceTexturePeer() { 1389 void WebMediaPlayerAndroid::EstablishSurfaceTexturePeer() {
1388 DCHECK(main_thread_checker_.CalledOnValidThread()); 1390 DCHECK(main_thread_checker_.CalledOnValidThread());
1389 if (!stream_texture_proxy_) 1391 if (!stream_texture_proxy_)
1390 return; 1392 return;
1391 1393
1392 if (stream_texture_factory_.get() && stream_id_) 1394 if (stream_texture_factory_.get() && stream_id_)
1393 stream_texture_factory_->EstablishPeer(stream_id_, player_id_); 1395 stream_texture_factory_->EstablishPeer(stream_id_, player_id_, frame_id_);
1394 1396
1395 // Set the deferred size because the size was changed in remote mode. 1397 // Set the deferred size because the size was changed in remote mode.
1396 if (!is_remote_ && cached_stream_texture_size_ != natural_size_) { 1398 if (!is_remote_ && cached_stream_texture_size_ != natural_size_) {
1397 stream_texture_factory_->SetStreamTextureSize( 1399 stream_texture_factory_->SetStreamTextureSize(
1398 stream_id_, gfx::Size(natural_size_.width, natural_size_.height)); 1400 stream_id_, gfx::Size(natural_size_.width, natural_size_.height));
1399 cached_stream_texture_size_ = natural_size_; 1401 cached_stream_texture_size_ = natural_size_;
1400 } 1402 }
1401 1403
1402 needs_establish_peer_ = false; 1404 needs_establish_peer_ = false;
1403 } 1405 }
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
1922 1924
1923 bool is_hls = IsHLSStream(); 1925 bool is_hls = IsHLSStream();
1924 UMA_HISTOGRAM_BOOLEAN("Media.Android.IsHttpLiveStreamingMedia", is_hls); 1926 UMA_HISTOGRAM_BOOLEAN("Media.Android.IsHttpLiveStreamingMedia", is_hls);
1925 if (is_hls) { 1927 if (is_hls) {
1926 media::RecordOriginOfHLSPlayback( 1928 media::RecordOriginOfHLSPlayback(
1927 GURL(frame_->document().securityOrigin().toString())); 1929 GURL(frame_->document().securityOrigin().toString()));
1928 } 1930 }
1929 } 1931 }
1930 1932
1931 } // namespace content 1933 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698