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

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

Issue 1567123002: Support CAST+WMPI on android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: build fixes + comments addressed Created 4 years, 11 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/renderer/media/android/renderer_media_player_manager.h" 5 #include "content/renderer/media/android/renderer_media_player_manager.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "content/common/media/media_player_messages_android.h" 8 #include "content/common/media/media_player_messages_android.h"
9 #include "content/public/common/renderer_preferences.h" 9 #include "content/public/common/renderer_preferences.h"
10 #include "content/renderer/media/android/webmediaplayer_android.h" 10 #include "content/renderer/media/android/webmediaplayer_android.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 } 62 }
63 63
64 void RendererMediaPlayerManager::WasHidden() { 64 void RendererMediaPlayerManager::WasHidden() {
65 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 65 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
66 switches::kDisableMediaSuspend)) { 66 switches::kDisableMediaSuspend)) {
67 return; 67 return;
68 } 68 }
69 69
70 // Suspend and release resources of all playing video. 70 // Suspend and release resources of all playing video.
71 for (auto& player_it : media_players_) { 71 for (auto& player_it : media_players_) {
72 WebMediaPlayerAndroid* player = player_it.second; 72 media::RendererMediaPlayerInterface* player = player_it.second;
73 if (!player || player->paused() || !player->hasVideo()) 73 if (!player || player->paused() || !player->hasVideo())
74 continue; 74 continue;
75 75
76 player->SuspendAndReleaseResources(); 76 player->SuspendAndReleaseResources();
77 } 77 }
78 } 78 }
79 79
80 void RendererMediaPlayerManager::Initialize( 80 void RendererMediaPlayerManager::Initialize(
81 MediaPlayerHostMsg_Initialize_Type type, 81 MediaPlayerHostMsg_Initialize_Type type,
82 int player_id, 82 int player_id,
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 Send(new MediaPlayerHostMsg_RequestRemotePlaybackControl(routing_id(), 138 Send(new MediaPlayerHostMsg_RequestRemotePlaybackControl(routing_id(),
139 player_id)); 139 player_id));
140 } 140 }
141 141
142 void RendererMediaPlayerManager::OnMediaMetadataChanged( 142 void RendererMediaPlayerManager::OnMediaMetadataChanged(
143 int player_id, 143 int player_id,
144 base::TimeDelta duration, 144 base::TimeDelta duration,
145 int width, 145 int width,
146 int height, 146 int height,
147 bool success) { 147 bool success) {
148 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 148 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
149 if (player) 149 if (player)
150 player->OnMediaMetadataChanged(duration, width, height, success); 150 player->OnMediaMetadataChanged(duration, width, height, success);
151 } 151 }
152 152
153 void RendererMediaPlayerManager::OnMediaPlaybackCompleted(int player_id) { 153 void RendererMediaPlayerManager::OnMediaPlaybackCompleted(int player_id) {
154 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 154 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
155 if (player) 155 if (player)
156 player->OnPlaybackComplete(); 156 player->OnPlaybackComplete();
157 } 157 }
158 158
159 void RendererMediaPlayerManager::OnMediaBufferingUpdate(int player_id, 159 void RendererMediaPlayerManager::OnMediaBufferingUpdate(int player_id,
160 int percent) { 160 int percent) {
161 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 161 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
162 if (player) 162 if (player)
163 player->OnBufferingUpdate(percent); 163 player->OnBufferingUpdate(percent);
164 } 164 }
165 165
166 void RendererMediaPlayerManager::OnSeekRequest( 166 void RendererMediaPlayerManager::OnSeekRequest(
167 int player_id, 167 int player_id,
168 const base::TimeDelta& time_to_seek) { 168 const base::TimeDelta& time_to_seek) {
169 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 169 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
170 if (player) 170 if (player)
171 player->OnSeekRequest(time_to_seek); 171 player->OnSeekRequest(time_to_seek);
172 } 172 }
173 173
174 void RendererMediaPlayerManager::OnSeekCompleted( 174 void RendererMediaPlayerManager::OnSeekCompleted(
175 int player_id, 175 int player_id,
176 const base::TimeDelta& current_time) { 176 const base::TimeDelta& current_time) {
177 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 177 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
178 if (player) 178 if (player)
179 player->OnSeekComplete(current_time); 179 player->OnSeekComplete(current_time);
180 } 180 }
181 181
182 void RendererMediaPlayerManager::OnMediaError(int player_id, int error) { 182 void RendererMediaPlayerManager::OnMediaError(int player_id, int error) {
183 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 183 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
184 if (player) 184 if (player)
185 player->OnMediaError(error); 185 player->OnMediaError(error);
186 } 186 }
187 187
188 void RendererMediaPlayerManager::OnVideoSizeChanged(int player_id, 188 void RendererMediaPlayerManager::OnVideoSizeChanged(int player_id,
189 int width, 189 int width,
190 int height) { 190 int height) {
191 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 191 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
192 if (player) 192 if (player)
193 player->OnVideoSizeChanged(width, height); 193 player->OnVideoSizeChanged(width, height);
194 } 194 }
195 195
196 void RendererMediaPlayerManager::OnTimeUpdate( 196 void RendererMediaPlayerManager::OnTimeUpdate(
197 int player_id, 197 int player_id,
198 base::TimeDelta current_timestamp, 198 base::TimeDelta current_timestamp,
199 base::TimeTicks current_time_ticks) { 199 base::TimeTicks current_time_ticks) {
200 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 200 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
201 if (player) 201 if (player)
202 player->OnTimeUpdate(current_timestamp, current_time_ticks); 202 player->OnTimeUpdate(current_timestamp, current_time_ticks);
203 } 203 }
204 204
205 void RendererMediaPlayerManager::OnWaitingForDecryptionKey(int player_id) { 205 void RendererMediaPlayerManager::OnWaitingForDecryptionKey(int player_id) {
206 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 206 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
207 if (player) 207 if (player)
208 player->OnWaitingForDecryptionKey(); 208 player->OnWaitingForDecryptionKey();
209 } 209 }
210 210
211 void RendererMediaPlayerManager::OnMediaPlayerReleased(int player_id) { 211 void RendererMediaPlayerManager::OnMediaPlayerReleased(int player_id) {
212 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 212 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
213 if (player) 213 if (player)
214 player->OnPlayerReleased(); 214 player->OnPlayerReleased();
215 } 215 }
216 216
217 void RendererMediaPlayerManager::OnConnectedToRemoteDevice(int player_id, 217 void RendererMediaPlayerManager::OnConnectedToRemoteDevice(int player_id,
218 const std::string& remote_playback_message) { 218 const std::string& remote_playback_message) {
219 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 219 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
220 if (player) 220 if (player)
221 player->OnConnectedToRemoteDevice(remote_playback_message); 221 player->OnConnectedToRemoteDevice(remote_playback_message);
222 } 222 }
223 223
224 void RendererMediaPlayerManager::OnDisconnectedFromRemoteDevice(int player_id) { 224 void RendererMediaPlayerManager::OnDisconnectedFromRemoteDevice(int player_id) {
225 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 225 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
226 if (player) 226 if (player)
227 player->OnDisconnectedFromRemoteDevice(); 227 player->OnDisconnectedFromRemoteDevice();
228 } 228 }
229 229
230 void RendererMediaPlayerManager::OnDidExitFullscreen(int player_id) { 230 void RendererMediaPlayerManager::OnDidExitFullscreen(int player_id) {
231 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 231 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
232 if (player) 232 if (player)
233 player->OnDidExitFullscreen(); 233 player->OnDidExitFullscreen();
234 } 234 }
235 235
236 void RendererMediaPlayerManager::OnPlayerPlay(int player_id) { 236 void RendererMediaPlayerManager::OnPlayerPlay(int player_id) {
237 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 237 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
238 if (player) 238 if (player)
239 player->OnMediaPlayerPlay(); 239 player->OnMediaPlayerPlay();
240 } 240 }
241 241
242 void RendererMediaPlayerManager::OnPlayerPause(int player_id) { 242 void RendererMediaPlayerManager::OnPlayerPause(int player_id) {
243 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 243 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
244 if (player) 244 if (player)
245 player->OnMediaPlayerPause(); 245 player->OnMediaPlayerPause();
246 } 246 }
247 247
248 void RendererMediaPlayerManager::OnRemoteRouteAvailabilityChanged( 248 void RendererMediaPlayerManager::OnRemoteRouteAvailabilityChanged(
249 int player_id, 249 int player_id,
250 bool routes_available) { 250 bool routes_available) {
251 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); 251 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
252 if (player) 252 if (player)
253 player->OnRemoteRouteAvailabilityChanged(routes_available); 253 player->OnRemoteRouteAvailabilityChanged(routes_available);
254 } 254 }
255 255
256 void RendererMediaPlayerManager::EnterFullscreen(int player_id) { 256 void RendererMediaPlayerManager::EnterFullscreen(int player_id) {
257 Send(new MediaPlayerHostMsg_EnterFullscreen(routing_id(), player_id)); 257 Send(new MediaPlayerHostMsg_EnterFullscreen(routing_id(), player_id));
258 } 258 }
259 259
260 void RendererMediaPlayerManager::SetCdm(int player_id, int cdm_id) { 260 void RendererMediaPlayerManager::SetCdm(int player_id, int cdm_id) {
261 if (cdm_id == media::CdmContext::kInvalidCdmId) { 261 if (cdm_id == media::CdmContext::kInvalidCdmId) {
262 NOTREACHED(); 262 NOTREACHED();
263 return; 263 return;
264 } 264 }
265 Send(new MediaPlayerHostMsg_SetCdm(routing_id(), player_id, cdm_id)); 265 Send(new MediaPlayerHostMsg_SetCdm(routing_id(), player_id, cdm_id));
266 } 266 }
267 267
268 int RendererMediaPlayerManager::RegisterMediaPlayer( 268 int RendererMediaPlayerManager::RegisterMediaPlayer(
269 WebMediaPlayerAndroid* player) { 269 media::RendererMediaPlayerInterface* player) {
270 media_players_[next_media_player_id_] = player; 270 media_players_[next_media_player_id_] = player;
271 return next_media_player_id_++; 271 return next_media_player_id_++;
272 } 272 }
273 273
274 void RendererMediaPlayerManager::UnregisterMediaPlayer(int player_id) { 274 void RendererMediaPlayerManager::UnregisterMediaPlayer(int player_id) {
275 media_players_.erase(player_id); 275 media_players_.erase(player_id);
276 } 276 }
277 277
278 WebMediaPlayerAndroid* RendererMediaPlayerManager::GetMediaPlayer( 278 media::RendererMediaPlayerInterface* RendererMediaPlayerManager::GetMediaPlayer(
279 int player_id) { 279 int player_id) {
280 std::map<int, WebMediaPlayerAndroid*>::iterator iter = 280 std::map<int, media::RendererMediaPlayerInterface*>::iterator iter =
281 media_players_.find(player_id); 281 media_players_.find(player_id);
282 if (iter != media_players_.end()) 282 if (iter != media_players_.end())
283 return iter->second; 283 return iter->second;
284 return NULL; 284 return NULL;
285 } 285 }
286 286
287 #if defined(VIDEO_HOLE) 287 #if defined(VIDEO_HOLE)
288 void RendererMediaPlayerManager::RequestExternalSurface( 288 void RendererMediaPlayerManager::RequestExternalSurface(
289 int player_id, 289 int player_id,
290 const gfx::RectF& geometry) { 290 const gfx::RectF& geometry) {
291 Send(new MediaPlayerHostMsg_NotifyExternalSurface( 291 Send(new MediaPlayerHostMsg_NotifyExternalSurface(
292 routing_id(), player_id, true, geometry)); 292 routing_id(), player_id, true, geometry));
293 } 293 }
294 294
295 void RendererMediaPlayerManager::DidCommitCompositorFrame() { 295 void RendererMediaPlayerManager::DidCommitCompositorFrame() {
296 std::map<int, gfx::RectF> geometry_change; 296 std::map<int, gfx::RectF> geometry_change;
297 RetrieveGeometryChanges(&geometry_change); 297 RetrieveGeometryChanges(&geometry_change);
298 for (std::map<int, gfx::RectF>::iterator it = geometry_change.begin(); 298 for (std::map<int, gfx::RectF>::iterator it = geometry_change.begin();
299 it != geometry_change.end(); 299 it != geometry_change.end();
300 ++it) { 300 ++it) {
301 Send(new MediaPlayerHostMsg_NotifyExternalSurface( 301 Send(new MediaPlayerHostMsg_NotifyExternalSurface(
302 routing_id(), it->first, false, it->second)); 302 routing_id(), it->first, false, it->second));
303 } 303 }
304 } 304 }
305 305
306 void RendererMediaPlayerManager::RetrieveGeometryChanges( 306 void RendererMediaPlayerManager::RetrieveGeometryChanges(
307 std::map<int, gfx::RectF>* changes) { 307 std::map<int, gfx::RectF>* changes) {
308 DCHECK(changes->empty()); 308 DCHECK(changes->empty());
309 for (std::map<int, WebMediaPlayerAndroid*>::iterator player_it = 309 for (std::map<int, media::RendererMediaPlayerInterface*>::iterator player_it =
310 media_players_.begin(); 310 media_players_.begin();
311 player_it != media_players_.end(); 311 player_it != media_players_.end();
312 ++player_it) { 312 ++player_it) {
313 WebMediaPlayerAndroid* player = player_it->second; 313 media::RendererMediaPlayerInterface* player = player_it->second;
314 314
315 if (player && player->hasVideo()) { 315 if (player && player->hasVideo()) {
316 if (player->UpdateBoundaryRectangle()) 316 if (player->UpdateBoundaryRectangle())
317 (*changes)[player_it->first] = player->GetBoundaryRectangle(); 317 (*changes)[player_it->first] = player->GetBoundaryRectangle();
318 } 318 }
319 } 319 }
320 } 320 }
321 321
322 bool 322 bool
323 RendererMediaPlayerManager::ShouldUseVideoOverlayForEmbeddedEncryptedVideo() { 323 RendererMediaPlayerManager::ShouldUseVideoOverlayForEmbeddedEncryptedVideo() {
324 const RendererPreferences& prefs = static_cast<RenderFrameImpl*>( 324 const RendererPreferences& prefs = static_cast<RenderFrameImpl*>(
325 render_frame())->render_view()->renderer_preferences(); 325 render_frame())->render_view()->renderer_preferences();
326 return prefs.use_video_overlay_for_embedded_encrypted_video; 326 return prefs.use_video_overlay_for_embedded_encrypted_video;
327 } 327 }
328 #endif // defined(VIDEO_HOLE) 328 #endif // defined(VIDEO_HOLE)
329 329
330 } // namespace content 330 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698