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

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

Issue 972973002: Revert of Propagate audible state from player to the containing tab (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 #ifndef CONTENT_BROWSER_MEDIA_ANDROID_BROWSER_MEDIA_PLAYER_MANAGER_H_ 5 #ifndef CONTENT_BROWSER_MEDIA_ANDROID_BROWSER_MEDIA_PLAYER_MANAGER_H_
6 #define CONTENT_BROWSER_MEDIA_ANDROID_BROWSER_MEDIA_PLAYER_MANAGER_H_ 6 #define CONTENT_BROWSER_MEDIA_ANDROID_BROWSER_MEDIA_PLAYER_MANAGER_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 12 matching lines...) Expand all
23 namespace media { 23 namespace media {
24 class DemuxerAndroid; 24 class DemuxerAndroid;
25 } 25 }
26 26
27 struct MediaPlayerHostMsg_Initialize_Params; 27 struct MediaPlayerHostMsg_Initialize_Params;
28 28
29 namespace content { 29 namespace content {
30 class BrowserDemuxerAndroid; 30 class BrowserDemuxerAndroid;
31 class ContentViewCoreImpl; 31 class ContentViewCoreImpl;
32 class ExternalVideoSurfaceContainer; 32 class ExternalVideoSurfaceContainer;
33 class MediaPlayersObserver;
34 class RenderFrameHost; 33 class RenderFrameHost;
35 class WebContents; 34 class WebContents;
36 35
37 // This class manages all the MediaPlayerAndroid objects. 36 // This class manages all the MediaPlayerAndroid objects.
38 // It receives control operations from the the render process, and forwards 37 // It receives control operations from the the render process, and forwards
39 // them to corresponding MediaPlayerAndroid object. Callbacks from 38 // them to corresponding MediaPlayerAndroid object. Callbacks from
40 // MediaPlayerAndroid objects are converted to IPCs and then sent to the render 39 // MediaPlayerAndroid objects are converted to IPCs and then sent to the render
41 // process. 40 // process.
42 class CONTENT_EXPORT BrowserMediaPlayerManager 41 class CONTENT_EXPORT BrowserMediaPlayerManager
43 : public media::MediaPlayerManager { 42 : public media::MediaPlayerManager {
44 public: 43 public:
45 // Permits embedders to provide an extended version of the class. 44 // Permits embedders to provide an extended version of the class.
46 typedef BrowserMediaPlayerManager* (*Factory)(RenderFrameHost*, 45 typedef BrowserMediaPlayerManager* (*Factory)(RenderFrameHost*);
47 MediaPlayersObserver*);
48 static void RegisterFactory(Factory factory); 46 static void RegisterFactory(Factory factory);
49 47
50 // Permits embedders to handle custom urls. 48 // Permits embedders to handle custom urls.
51 static void RegisterMediaUrlInterceptor( 49 static void RegisterMediaUrlInterceptor(
52 media::MediaUrlInterceptor* media_url_interceptor); 50 media::MediaUrlInterceptor* media_url_interceptor);
53 51
54 // Returns a new instance using the registered factory if available. 52 // Returns a new instance using the registered factory if available.
55 static BrowserMediaPlayerManager* Create( 53 static BrowserMediaPlayerManager* Create(RenderFrameHost* rfh);
56 RenderFrameHost* rfh,
57 MediaPlayersObserver* audio_monitor);
58 54
59 ContentViewCoreImpl* GetContentViewCore() const; 55 ContentViewCoreImpl* GetContentViewCore() const;
60 56
61 ~BrowserMediaPlayerManager() override; 57 ~BrowserMediaPlayerManager() override;
62 58
63 // Fullscreen video playback controls. 59 // Fullscreen video playback controls.
64 virtual void ExitFullscreen(bool release_media_player); 60 virtual void ExitFullscreen(bool release_media_player);
65 virtual void SetVideoSurface(gfx::ScopedJavaSurface surface); 61 virtual void SetVideoSurface(gfx::ScopedJavaSurface surface);
66 62
67 // Called when browser player wants the renderer media element to seek. 63 // Called when browser player wants the renderer media element to seek.
(...skipping 12 matching lines...) Expand all
80 int width, 76 int width,
81 int height, 77 int height,
82 bool success) override; 78 bool success) override;
83 void OnPlaybackComplete(int player_id) override; 79 void OnPlaybackComplete(int player_id) override;
84 void OnMediaInterrupted(int player_id) override; 80 void OnMediaInterrupted(int player_id) override;
85 void OnBufferingUpdate(int player_id, int percentage) override; 81 void OnBufferingUpdate(int player_id, int percentage) override;
86 void OnSeekComplete(int player_id, 82 void OnSeekComplete(int player_id,
87 const base::TimeDelta& current_time) override; 83 const base::TimeDelta& current_time) override;
88 void OnError(int player_id, int error) override; 84 void OnError(int player_id, int error) override;
89 void OnVideoSizeChanged(int player_id, int width, int height) override; 85 void OnVideoSizeChanged(int player_id, int width, int height) override;
90 void OnAudibleStateChanged(
91 int player_id, bool is_audible_now) override;
92
93 media::MediaResourceGetter* GetMediaResourceGetter() override; 86 media::MediaResourceGetter* GetMediaResourceGetter() override;
94 media::MediaUrlInterceptor* GetMediaUrlInterceptor() override; 87 media::MediaUrlInterceptor* GetMediaUrlInterceptor() override;
95 media::MediaPlayerAndroid* GetFullscreenPlayer() override; 88 media::MediaPlayerAndroid* GetFullscreenPlayer() override;
96 media::MediaPlayerAndroid* GetPlayer(int player_id) override; 89 media::MediaPlayerAndroid* GetPlayer(int player_id) override;
97 void RequestFullScreen(int player_id) override; 90 void RequestFullScreen(int player_id) override;
98 #if defined(VIDEO_HOLE) 91 #if defined(VIDEO_HOLE)
99 bool ShouldUseVideoOverlayForEmbeddedEncryptedVideo() override; 92 bool ShouldUseVideoOverlayForEmbeddedEncryptedVideo() override;
100 93
101 void AttachExternalVideoSurface(int player_id, jobject surface); 94 void AttachExternalVideoSurface(int player_id, jobject surface);
102 void DetachExternalVideoSurface(int player_id); 95 void DetachExternalVideoSurface(int player_id);
(...skipping 15 matching lines...) Expand all
118 virtual void OnRequestRemotePlayback(int player_id); 111 virtual void OnRequestRemotePlayback(int player_id);
119 virtual void OnRequestRemotePlaybackControl(int player_id); 112 virtual void OnRequestRemotePlaybackControl(int player_id);
120 virtual void ReleaseFullscreenPlayer(media::MediaPlayerAndroid* player); 113 virtual void ReleaseFullscreenPlayer(media::MediaPlayerAndroid* player);
121 #if defined(VIDEO_HOLE) 114 #if defined(VIDEO_HOLE)
122 void OnNotifyExternalSurface( 115 void OnNotifyExternalSurface(
123 int player_id, bool is_request, const gfx::RectF& rect); 116 int player_id, bool is_request, const gfx::RectF& rect);
124 #endif // defined(VIDEO_HOLE) 117 #endif // defined(VIDEO_HOLE)
125 118
126 protected: 119 protected:
127 // Clients must use Create() or subclass constructor. 120 // Clients must use Create() or subclass constructor.
128 BrowserMediaPlayerManager(RenderFrameHost* render_frame_host, 121 explicit BrowserMediaPlayerManager(RenderFrameHost* render_frame_host);
129 MediaPlayersObserver* audio_monitor);
130 122
131 WebContents* web_contents() const { return web_contents_; } 123 WebContents* web_contents() const { return web_contents_; }
132 124
133 // Adds a given player to the list. 125 // Adds a given player to the list.
134 void AddPlayer(media::MediaPlayerAndroid* player); 126 void AddPlayer(media::MediaPlayerAndroid* player);
135 127
136 // Removes the player with the specified id. 128 // Removes the player with the specified id.
137 void RemovePlayer(int player_id); 129 void RemovePlayer(int player_id);
138 130
139 // Replaces a player with the specified id with a given MediaPlayerAndroid 131 // Replaces a player with the specified id with a given MediaPlayerAndroid
(...skipping 29 matching lines...) Expand all
169 // Releases the player. However, don't remove it from |players_|. 161 // Releases the player. However, don't remove it from |players_|.
170 void ReleasePlayer(media::MediaPlayerAndroid* player); 162 void ReleasePlayer(media::MediaPlayerAndroid* player);
171 163
172 #if defined(VIDEO_HOLE) 164 #if defined(VIDEO_HOLE)
173 void ReleasePlayerOfExternalVideoSurfaceIfNeeded(int future_player); 165 void ReleasePlayerOfExternalVideoSurfaceIfNeeded(int future_player);
174 void OnRequestExternalSurface(int player_id, const gfx::RectF& rect); 166 void OnRequestExternalSurface(int player_id, const gfx::RectF& rect);
175 #endif // defined(VIDEO_HOLE) 167 #endif // defined(VIDEO_HOLE)
176 168
177 RenderFrameHost* const render_frame_host_; 169 RenderFrameHost* const render_frame_host_;
178 170
179 MediaPlayersObserver* audio_monitor_;
180
181 // An array of managed players. 171 // An array of managed players.
182 ScopedVector<media::MediaPlayerAndroid> players_; 172 ScopedVector<media::MediaPlayerAndroid> players_;
183 173
184 // The fullscreen video view object or NULL if video is not played in 174 // The fullscreen video view object or NULL if video is not played in
185 // fullscreen. 175 // fullscreen.
186 scoped_ptr<ContentVideoView> video_view_; 176 scoped_ptr<ContentVideoView> video_view_;
187 177
188 #if defined(VIDEO_HOLE) 178 #if defined(VIDEO_HOLE)
189 scoped_ptr<ExternalVideoSurfaceContainer> external_video_surface_container_; 179 scoped_ptr<ExternalVideoSurfaceContainer> external_video_surface_container_;
190 #endif 180 #endif
(...skipping 11 matching lines...) Expand all
202 192
203 // NOTE: Weak pointers must be invalidated before all other member variables. 193 // NOTE: Weak pointers must be invalidated before all other member variables.
204 base::WeakPtrFactory<BrowserMediaPlayerManager> weak_ptr_factory_; 194 base::WeakPtrFactory<BrowserMediaPlayerManager> weak_ptr_factory_;
205 195
206 DISALLOW_COPY_AND_ASSIGN(BrowserMediaPlayerManager); 196 DISALLOW_COPY_AND_ASSIGN(BrowserMediaPlayerManager);
207 }; 197 };
208 198
209 } // namespace content 199 } // namespace content
210 200
211 #endif // CONTENT_BROWSER_MEDIA_ANDROID_BROWSER_MEDIA_PLAYER_MANAGER_H_ 201 #endif // CONTENT_BROWSER_MEDIA_ANDROID_BROWSER_MEDIA_PLAYER_MANAGER_H_
OLDNEW
« no previous file with comments | « content/browser/android/media_players_observer.cc ('k') | content/browser/media/android/browser_media_player_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698