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

Side by Side Diff: content/browser/media/android/browser_media_player_manager.cc

Issue 2283493003: Delete browser MSE implementation. (Closed)
Patch Set: Actually delete MSP. Cleanse references. Remove AudioTrack usage. Created 4 years, 2 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
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/browser/media/android/browser_media_player_manager.h" 5 #include "content/browser/media/android/browser_media_player_manager.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/android/scoped_java_ref.h" 9 #include "base/android/scoped_java_ref.h"
10 #include "base/memory/singleton.h" 10 #include "base/memory/singleton.h"
11 #include "content/browser/frame_host/render_frame_host_impl.h" 11 #include "content/browser/frame_host/render_frame_host_impl.h"
12 #include "content/browser/media/android/browser_demuxer_android.h"
13 #include "content/browser/media/android/media_resource_getter_impl.h" 12 #include "content/browser/media/android/media_resource_getter_impl.h"
14 #include "content/browser/media/android/media_throttler.h" 13 #include "content/browser/media/android/media_throttler.h"
15 #include "content/browser/media/android/media_web_contents_observer_android.h" 14 #include "content/browser/media/android/media_web_contents_observer_android.h"
16 #include "content/browser/renderer_host/render_view_host_impl.h" 15 #include "content/browser/renderer_host/render_view_host_impl.h"
17 #include "content/browser/web_contents/web_contents_impl.h" 16 #include "content/browser/web_contents/web_contents_impl.h"
18 #include "content/common/media/media_player_messages_android.h" 17 #include "content/common/media/media_player_messages_android.h"
19 #include "content/public/browser/browser_context.h" 18 #include "content/public/browser/browser_context.h"
20 #include "content/public/browser/browser_thread.h" 19 #include "content/public/browser/browser_thread.h"
21 #include "content/public/browser/content_browser_client.h" 20 #include "content/public/browser/content_browser_client.h"
22 #include "content/public/browser/render_frame_host.h" 21 #include "content/public/browser/render_frame_host.h"
23 #include "content/public/browser/render_process_host.h" 22 #include "content/public/browser/render_process_host.h"
24 #include "content/public/browser/render_view_host.h" 23 #include "content/public/browser/render_view_host.h"
25 #include "content/public/browser/storage_partition.h" 24 #include "content/public/browser/storage_partition.h"
26 #include "content/public/browser/web_contents.h" 25 #include "content/public/browser/web_contents.h"
27 #include "content/public/browser/web_contents_delegate.h" 26 #include "content/public/browser/web_contents_delegate.h"
28 #include "content/public/common/content_client.h" 27 #include "content/public/common/content_client.h"
29 #include "content/public/common/content_switches.h" 28 #include "content/public/common/content_switches.h"
30 #include "gpu/ipc/common/android/surface_texture_peer.h" 29 #include "gpu/ipc/common/android/surface_texture_peer.h"
31 #include "media/base/android/media_player_bridge.h" 30 #include "media/base/android/media_player_bridge.h"
32 #include "media/base/android/media_source_player.h"
33 #include "media/base/android/media_url_interceptor.h" 31 #include "media/base/android/media_url_interceptor.h"
34 #include "media/base/media_content_type.h" 32 #include "media/base/media_content_type.h"
35 33
36 #if !defined(USE_AURA) 34 #if !defined(USE_AURA)
37 #include "content/browser/android/content_view_core_impl.h" 35 #include "content/browser/android/content_view_core_impl.h"
38 #include "content/browser/renderer_host/render_widget_host_view_android.h" 36 #include "content/browser/renderer_host/render_widget_host_view_android.h"
39 #endif 37 #endif
40 38
41 using media::MediaPlayerAndroid; 39 using media::MediaPlayerAndroid;
42 using media::MediaPlayerBridge; 40 using media::MediaPlayerBridge;
43 using media::MediaPlayerManager; 41 using media::MediaPlayerManager;
44 using media::MediaSourcePlayer;
45 42
46 namespace content { 43 namespace content {
47 44
48 namespace { 45 namespace {
49 46
50 class BrowserSurfaceTexturePeer : public gpu::SurfaceTexturePeer { 47 class BrowserSurfaceTexturePeer : public gpu::SurfaceTexturePeer {
51 public: 48 public:
52 static BrowserSurfaceTexturePeer* GetInstance(); 49 static BrowserSurfaceTexturePeer* GetInstance();
53 50
54 private: 51 private:
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 } 181 }
185 182
186 #if !defined(USE_AURA) 183 #if !defined(USE_AURA)
187 ContentViewCore* BrowserMediaPlayerManager::GetContentViewCore() const { 184 ContentViewCore* BrowserMediaPlayerManager::GetContentViewCore() const {
188 return ContentViewCoreImpl::FromWebContents(web_contents()); 185 return ContentViewCoreImpl::FromWebContents(web_contents());
189 } 186 }
190 #endif 187 #endif
191 188
192 MediaPlayerAndroid* BrowserMediaPlayerManager::CreateMediaPlayer( 189 MediaPlayerAndroid* BrowserMediaPlayerManager::CreateMediaPlayer(
193 const MediaPlayerHostMsg_Initialize_Params& media_player_params, 190 const MediaPlayerHostMsg_Initialize_Params& media_player_params,
194 bool hide_url_log, 191 bool hide_url_log) {
195 BrowserDemuxerAndroid* demuxer) {
196 switch (media_player_params.type) { 192 switch (media_player_params.type) {
197 case MEDIA_PLAYER_TYPE_REMOTE_ONLY: 193 case MEDIA_PLAYER_TYPE_REMOTE_ONLY:
198 case MEDIA_PLAYER_TYPE_URL: { 194 case MEDIA_PLAYER_TYPE_URL: {
199 const std::string user_agent = GetContentClient()->GetUserAgent(); 195 const std::string user_agent = GetContentClient()->GetUserAgent();
200 MediaPlayerBridge* media_player_bridge = new MediaPlayerBridge( 196 MediaPlayerBridge* media_player_bridge = new MediaPlayerBridge(
201 media_player_params.player_id, media_player_params.url, 197 media_player_params.player_id, media_player_params.url,
202 media_player_params.first_party_for_cookies, user_agent, hide_url_log, 198 media_player_params.first_party_for_cookies, user_agent, hide_url_log,
203 this, 199 this,
204 base::Bind(&BrowserMediaPlayerManager::OnDecoderResourcesReleased, 200 base::Bind(&BrowserMediaPlayerManager::OnDecoderResourcesReleased,
205 weak_ptr_factory_.GetWeakPtr()), 201 weak_ptr_factory_.GetWeakPtr()),
(...skipping 20 matching lines...) Expand all
226 // metadata since it is expensive. 222 // metadata since it is expensive.
227 // TODO(qinmin): extract the metadata once the user decided to load 223 // TODO(qinmin): extract the metadata once the user decided to load
228 // the page. 224 // the page.
229 OnMediaMetadataChanged(media_player_params.player_id, base::TimeDelta(), 225 OnMediaMetadataChanged(media_player_params.player_id, base::TimeDelta(),
230 0, 0, false); 226 0, 0, false);
231 } else if (!should_block) { 227 } else if (!should_block) {
232 media_player_bridge->Initialize(); 228 media_player_bridge->Initialize();
233 } 229 }
234 return media_player_bridge; 230 return media_player_bridge;
235 } 231 }
236
237 case MEDIA_PLAYER_TYPE_MEDIA_SOURCE: {
238 return new MediaSourcePlayer(
239 media_player_params.player_id, this,
240 base::Bind(&BrowserMediaPlayerManager::OnDecoderResourcesReleased,
241 weak_ptr_factory_.GetWeakPtr()),
242 demuxer->CreateDemuxer(media_player_params.demuxer_client_id),
243 media_player_params.frame_url);
244 }
245 } 232 }
246 233
247 NOTREACHED(); 234 NOTREACHED();
248 return NULL; 235 return NULL;
249 } 236 }
250 237
251 BrowserMediaPlayerManager::BrowserMediaPlayerManager( 238 BrowserMediaPlayerManager::BrowserMediaPlayerManager(
252 RenderFrameHost* render_frame_host) 239 RenderFrameHost* render_frame_host)
253 : render_frame_host_(render_frame_host), 240 : render_frame_host_(render_frame_host),
254 fullscreen_player_id_(kInvalidMediaPlayerId), 241 fullscreen_player_id_(kInvalidMediaPlayerId),
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 } 351 }
365 352
366 void BrowserMediaPlayerManager::OnVideoSizeChanged( 353 void BrowserMediaPlayerManager::OnVideoSizeChanged(
367 int player_id, int width, int height) { 354 int player_id, int width, int height) {
368 Send(new MediaPlayerMsg_MediaVideoSizeChanged(RoutingID(), player_id, 355 Send(new MediaPlayerMsg_MediaVideoSizeChanged(RoutingID(), player_id,
369 width, height)); 356 width, height));
370 if (fullscreen_player_id_ == player_id) 357 if (fullscreen_player_id_ == player_id)
371 video_view_->OnVideoSizeChanged(width, height); 358 video_view_->OnVideoSizeChanged(width, height);
372 } 359 }
373 360
374 void BrowserMediaPlayerManager::OnWaitingForDecryptionKey(int player_id) {
375 Send(new MediaPlayerMsg_WaitingForDecryptionKey(RoutingID(), player_id));
376 }
377
378 media::MediaResourceGetter* 361 media::MediaResourceGetter*
379 BrowserMediaPlayerManager::GetMediaResourceGetter() { 362 BrowserMediaPlayerManager::GetMediaResourceGetter() {
380 if (!media_resource_getter_.get()) { 363 if (!media_resource_getter_.get()) {
381 RenderProcessHost* host = web_contents()->GetRenderProcessHost(); 364 RenderProcessHost* host = web_contents()->GetRenderProcessHost();
382 BrowserContext* context = host->GetBrowserContext(); 365 BrowserContext* context = host->GetBrowserContext();
383 StoragePartition* partition = host->GetStoragePartition(); 366 StoragePartition* partition = host->GetStoragePartition();
384 storage::FileSystemContext* file_system_context = 367 storage::FileSystemContext* file_system_context =
385 partition ? partition->GetFileSystemContext() : NULL; 368 partition ? partition->GetFileSystemContext() : NULL;
386 // Eventually this needs to be fixed to pass the correct frame rather 369 // Eventually this needs to be fixed to pass the correct frame rather
387 // than just using the main frame. 370 // than just using the main frame.
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 fullscreen_player_id_ = player_id; 452 fullscreen_player_id_ = player_id;
470 } else { 453 } else {
471 Send(new MediaPlayerMsg_DidExitFullscreen(RoutingID(), player_id)); 454 Send(new MediaPlayerMsg_DidExitFullscreen(RoutingID(), player_id));
472 video_view_.reset(); 455 video_view_.reset();
473 } 456 }
474 #endif // defined(USE_AURA) 457 #endif // defined(USE_AURA)
475 } 458 }
476 459
477 void BrowserMediaPlayerManager::OnInitialize( 460 void BrowserMediaPlayerManager::OnInitialize(
478 const MediaPlayerHostMsg_Initialize_Params& media_player_params) { 461 const MediaPlayerHostMsg_Initialize_Params& media_player_params) {
479 DCHECK(media_player_params.type != MEDIA_PLAYER_TYPE_MEDIA_SOURCE ||
480 media_player_params.demuxer_client_id > 0)
481 << "Media source players must have positive demuxer client IDs: "
482 << media_player_params.demuxer_client_id;
483
484 DestroyPlayer(media_player_params.player_id); 462 DestroyPlayer(media_player_params.player_id);
485 463
486 RenderProcessHostImpl* host = static_cast<RenderProcessHostImpl*>( 464 RenderProcessHostImpl* host = static_cast<RenderProcessHostImpl*>(
487 web_contents()->GetRenderProcessHost()); 465 web_contents()->GetRenderProcessHost());
488 MediaPlayerAndroid* player = 466 MediaPlayerAndroid* player = CreateMediaPlayer(
489 CreateMediaPlayer(media_player_params, 467 media_player_params, host->GetBrowserContext()->IsOffTheRecord());
490 host->GetBrowserContext()->IsOffTheRecord(),
491 host->browser_demuxer_android().get());
492 468
493 if (!player) 469 if (!player)
494 return; 470 return;
495 471
496 AddPlayer(player, media_player_params.delegate_id); 472 AddPlayer(player, media_player_params.delegate_id);
497 } 473 }
498 474
499 void BrowserMediaPlayerManager::OnStart(int player_id) { 475 void BrowserMediaPlayerManager::OnStart(int player_id) {
500 MediaPlayerAndroid* player = GetPlayer(player_id); 476 MediaPlayerAndroid* player = GetPlayer(player_id);
501 if (!player) 477 if (!player)
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 if (!player) 661 if (!player)
686 return; 662 return;
687 player->Start(); 663 player->Start();
688 if (fullscreen_player_id_ == player_id && fullscreen_player_is_released_) { 664 if (fullscreen_player_id_ == player_id && fullscreen_player_is_released_) {
689 video_view_->OpenVideo(); 665 video_view_->OpenVideo();
690 fullscreen_player_is_released_ = false; 666 fullscreen_player_is_released_ = false;
691 } 667 }
692 } 668 }
693 669
694 } // namespace content 670 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698