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

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

Issue 295103015: Separate RendererCdmManager from RendererMediaPlayerManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase again Created 6 years, 6 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 #ifndef CONTENT_RENDERER_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_ 5 #ifndef CONTENT_RENDERER_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_
6 #define CONTENT_RENDERER_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_ 6 #define CONTENT_RENDERER_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_
7 7
8 #include <jni.h> 8 #include <jni.h>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 47
48 namespace media { 48 namespace media {
49 class MediaLog; 49 class MediaLog;
50 } 50 }
51 51
52 namespace webkit { 52 namespace webkit {
53 class WebLayerImpl; 53 class WebLayerImpl;
54 } 54 }
55 55
56 namespace content { 56 namespace content {
57 class RendererCdmManager;
57 class RendererMediaPlayerManager; 58 class RendererMediaPlayerManager;
58 class WebContentDecryptionModuleImpl; 59 class WebContentDecryptionModuleImpl;
59 class WebMediaPlayerDelegate; 60 class WebMediaPlayerDelegate;
60 61
61 // This class implements blink::WebMediaPlayer by keeping the android 62 // This class implements blink::WebMediaPlayer by keeping the android
62 // media player in the browser process. It listens to all the status changes 63 // media player in the browser process. It listens to all the status changes
63 // sent from the browser process and sends playback controls to the media 64 // sent from the browser process and sends playback controls to the media
64 // player. 65 // player.
65 class WebMediaPlayerAndroid : public blink::WebMediaPlayer, 66 class WebMediaPlayerAndroid : public blink::WebMediaPlayer,
66 public cc::VideoFrameProvider, 67 public cc::VideoFrameProvider,
67 public RenderFrameObserver { 68 public RenderFrameObserver {
68 public: 69 public:
69 // Construct a WebMediaPlayerAndroid object. This class communicates with the 70 // Construct a WebMediaPlayerAndroid object. This class communicates with the
70 // MediaPlayerAndroid object in the browser process through |proxy|. 71 // MediaPlayerAndroid object in the browser process through |proxy|.
71 // TODO(qinmin): |frame| argument is used to determine whether the current 72 // TODO(qinmin): |frame| argument is used to determine whether the current
72 // player can enter fullscreen. This logic should probably be moved into 73 // player can enter fullscreen. This logic should probably be moved into
73 // blink, so that enterFullscreen() will not be called if another video is 74 // blink, so that enterFullscreen() will not be called if another video is
74 // already in fullscreen. 75 // already in fullscreen.
75 WebMediaPlayerAndroid(blink::WebFrame* frame, 76 WebMediaPlayerAndroid(blink::WebFrame* frame,
76 blink::WebMediaPlayerClient* client, 77 blink::WebMediaPlayerClient* client,
77 base::WeakPtr<WebMediaPlayerDelegate> delegate, 78 base::WeakPtr<WebMediaPlayerDelegate> delegate,
78 RendererMediaPlayerManager* manager, 79 RendererMediaPlayerManager* player_manager,
80 RendererCdmManager* cdm_manager,
79 scoped_refptr<StreamTextureFactory> factory, 81 scoped_refptr<StreamTextureFactory> factory,
80 const scoped_refptr<base::MessageLoopProxy>& media_loop, 82 const scoped_refptr<base::MessageLoopProxy>& media_loop,
81 media::MediaLog* media_log); 83 media::MediaLog* media_log);
82 virtual ~WebMediaPlayerAndroid(); 84 virtual ~WebMediaPlayerAndroid();
83 85
84 // blink::WebMediaPlayer implementation. 86 // blink::WebMediaPlayer implementation.
85 virtual void enterFullscreen(); 87 virtual void enterFullscreen();
86 virtual void exitFullscreen(); 88 virtual void exitFullscreen();
87 virtual bool canEnterFullscreen() const; 89 virtual bool canEnterFullscreen() const;
88 90
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 bool pending_seek_; 328 bool pending_seek_;
327 base::TimeDelta pending_seek_time_; 329 base::TimeDelta pending_seek_time_;
328 330
329 // Internal seek state. 331 // Internal seek state.
330 bool seeking_; 332 bool seeking_;
331 base::TimeDelta seek_time_; 333 base::TimeDelta seek_time_;
332 334
333 // Whether loading has progressed since the last call to didLoadingProgress. 335 // Whether loading has progressed since the last call to didLoadingProgress.
334 bool did_loading_progress_; 336 bool did_loading_progress_;
335 337
336 // Manager for managing this object and for delegating method calls on 338 // Manages this object and delegates player calls to the browser process.
337 // Render Thread. 339 // Owned by RenderFrameImpl.
338 RendererMediaPlayerManager* manager_; 340 RendererMediaPlayerManager* player_manager_;
339 341
340 // Player ID assigned by the |manager_|. 342 // Delegates EME calls to the browser process. Owned by RenderFrameImpl.
343 // TODO(xhwang): Remove |cdm_manager_| when prefixed EME is deprecated. See
344 // http://crbug.com/249976
345 RendererCdmManager* cdm_manager_;
346
347 // Player ID assigned by the |player_manager_|.
341 int player_id_; 348 int player_id_;
342 349
343 // Current player states. 350 // Current player states.
344 blink::WebMediaPlayer::NetworkState network_state_; 351 blink::WebMediaPlayer::NetworkState network_state_;
345 blink::WebMediaPlayer::ReadyState ready_state_; 352 blink::WebMediaPlayer::ReadyState ready_state_;
346 353
347 // GL texture ID allocated to the video. 354 // GL texture ID allocated to the video.
348 unsigned int texture_id_; 355 unsigned int texture_id_;
349 356
350 // GL texture mailbox for texture_id_ to provide in the VideoFrame, and sync 357 // GL texture mailbox for texture_id_ to provide in the VideoFrame, and sync
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 // Manages decryption keys and decrypts encrypted frames. 439 // Manages decryption keys and decrypts encrypted frames.
433 scoped_ptr<ProxyDecryptor> proxy_decryptor_; 440 scoped_ptr<ProxyDecryptor> proxy_decryptor_;
434 441
435 // Non-owned pointer to the CDM. Updated via calls to 442 // Non-owned pointer to the CDM. Updated via calls to
436 // setContentDecryptionModule(). 443 // setContentDecryptionModule().
437 WebContentDecryptionModuleImpl* web_cdm_; 444 WebContentDecryptionModuleImpl* web_cdm_;
438 445
439 // This is only Used by Clear Key key system implementation, where a renderer 446 // This is only Used by Clear Key key system implementation, where a renderer
440 // side CDM will be used. This is similar to WebMediaPlayerImpl. For other key 447 // side CDM will be used. This is similar to WebMediaPlayerImpl. For other key
441 // systems, a browser side CDM will be used and we set CDM by calling 448 // systems, a browser side CDM will be used and we set CDM by calling
442 // manager_->SetCdm() directly. 449 // player_manager_->SetCdm() directly.
443 media::DecryptorReadyCB decryptor_ready_cb_; 450 media::DecryptorReadyCB decryptor_ready_cb_;
444 451
445 // NOTE: Weak pointers must be invalidated before all other member variables. 452 // NOTE: Weak pointers must be invalidated before all other member variables.
446 base::WeakPtrFactory<WebMediaPlayerAndroid> weak_factory_; 453 base::WeakPtrFactory<WebMediaPlayerAndroid> weak_factory_;
447 454
448 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerAndroid); 455 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerAndroid);
449 }; 456 };
450 457
451 } // namespace content 458 } // namespace content
452 459
453 #endif // CONTENT_RENDERER_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_ 460 #endif // CONTENT_RENDERER_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698