OLD | NEW |
---|---|
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 "content/common/media/media_player_messages_android.h" | 7 #include "content/common/media/media_player_messages_android.h" |
8 #include "content/public/common/renderer_preferences.h" | 8 #include "content/public/common/renderer_preferences.h" |
9 #include "content/renderer/media/android/webmediaplayer_android.h" | 9 #include "content/renderer/media/android/webmediaplayer_android.h" |
10 #include "content/renderer/media/cdm/renderer_cdm_manager.h" | 10 #include "content/renderer/media/cdm/renderer_cdm_manager.h" |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
57 IPC_MESSAGE_UNHANDLED(handled = false) | 57 IPC_MESSAGE_UNHANDLED(handled = false) |
58 IPC_END_MESSAGE_MAP() | 58 IPC_END_MESSAGE_MAP() |
59 return handled; | 59 return handled; |
60 } | 60 } |
61 | 61 |
62 void RendererMediaPlayerManager::WasHidden() { | 62 void RendererMediaPlayerManager::WasHidden() { |
63 ReleaseVideoResources(); | 63 ReleaseVideoResources(); |
64 } | 64 } |
65 | 65 |
66 void RendererMediaPlayerManager::Initialize( | 66 void RendererMediaPlayerManager::Initialize( |
67 MediaPlayerHostMsg_Initialize_Type type, | 67 media::MediaPlayerHostMsg_Initialize_Type type, |
68 int player_id, | 68 int player_id, |
69 const GURL& url, | 69 const GURL& url, |
70 const GURL& first_party_for_cookies, | 70 const GURL& first_party_for_cookies, |
71 int demuxer_client_id, | 71 int demuxer_client_id, |
72 const GURL& frame_url, | 72 const GURL& frame_url, |
73 bool allow_credentials) { | 73 bool allow_credentials) { |
74 MediaPlayerHostMsg_Initialize_Params media_player_params; | 74 MediaPlayerHostMsg_Initialize_Params media_player_params; |
75 media_player_params.type = type; | 75 media_player_params.type = |
76 static_cast<MediaPlayerHostMsg_Initialize_Type>(type); | |
DaleCurtis
2016/01/12 20:24:09
Seems unnecessary? Did something complain?
hubbe
2016/01/12 21:23:18
../../content/renderer/media/android/renderer_medi
DaleCurtis
2016/01/12 23:21:53
Oh I see, you have a different type of the same na
hubbe
2016/01/13 00:11:55
Done.
| |
76 media_player_params.player_id = player_id; | 77 media_player_params.player_id = player_id; |
77 media_player_params.demuxer_client_id = demuxer_client_id; | 78 media_player_params.demuxer_client_id = demuxer_client_id; |
78 media_player_params.url = url; | 79 media_player_params.url = url; |
79 media_player_params.first_party_for_cookies = first_party_for_cookies; | 80 media_player_params.first_party_for_cookies = first_party_for_cookies; |
80 media_player_params.frame_url = frame_url; | 81 media_player_params.frame_url = frame_url; |
81 media_player_params.allow_credentials = allow_credentials; | 82 media_player_params.allow_credentials = allow_credentials; |
82 | 83 |
83 Send(new MediaPlayerHostMsg_Initialize(routing_id(), media_player_params)); | 84 Send(new MediaPlayerHostMsg_Initialize(routing_id(), media_player_params)); |
84 } | 85 } |
85 | 86 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
124 Send(new MediaPlayerHostMsg_RequestRemotePlaybackControl(routing_id(), | 125 Send(new MediaPlayerHostMsg_RequestRemotePlaybackControl(routing_id(), |
125 player_id)); | 126 player_id)); |
126 } | 127 } |
127 | 128 |
128 void RendererMediaPlayerManager::OnMediaMetadataChanged( | 129 void RendererMediaPlayerManager::OnMediaMetadataChanged( |
129 int player_id, | 130 int player_id, |
130 base::TimeDelta duration, | 131 base::TimeDelta duration, |
131 int width, | 132 int width, |
132 int height, | 133 int height, |
133 bool success) { | 134 bool success) { |
134 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 135 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
135 if (player) | 136 if (player) |
136 player->OnMediaMetadataChanged(duration, width, height, success); | 137 player->OnMediaMetadataChanged(duration, width, height, success); |
137 } | 138 } |
138 | 139 |
139 void RendererMediaPlayerManager::OnMediaPlaybackCompleted(int player_id) { | 140 void RendererMediaPlayerManager::OnMediaPlaybackCompleted(int player_id) { |
140 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 141 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
141 if (player) | 142 if (player) |
142 player->OnPlaybackComplete(); | 143 player->OnPlaybackComplete(); |
143 } | 144 } |
144 | 145 |
145 void RendererMediaPlayerManager::OnMediaBufferingUpdate(int player_id, | 146 void RendererMediaPlayerManager::OnMediaBufferingUpdate(int player_id, |
146 int percent) { | 147 int percent) { |
147 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 148 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
148 if (player) | 149 if (player) |
149 player->OnBufferingUpdate(percent); | 150 player->OnBufferingUpdate(percent); |
150 } | 151 } |
151 | 152 |
152 void RendererMediaPlayerManager::OnSeekRequest( | 153 void RendererMediaPlayerManager::OnSeekRequest( |
153 int player_id, | 154 int player_id, |
154 const base::TimeDelta& time_to_seek) { | 155 const base::TimeDelta& time_to_seek) { |
155 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 156 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
156 if (player) | 157 if (player) |
157 player->OnSeekRequest(time_to_seek); | 158 player->OnSeekRequest(time_to_seek); |
158 } | 159 } |
159 | 160 |
160 void RendererMediaPlayerManager::OnSeekCompleted( | 161 void RendererMediaPlayerManager::OnSeekCompleted( |
161 int player_id, | 162 int player_id, |
162 const base::TimeDelta& current_time) { | 163 const base::TimeDelta& current_time) { |
163 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 164 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
164 if (player) | 165 if (player) |
165 player->OnSeekComplete(current_time); | 166 player->OnSeekComplete(current_time); |
166 } | 167 } |
167 | 168 |
168 void RendererMediaPlayerManager::OnMediaError(int player_id, int error) { | 169 void RendererMediaPlayerManager::OnMediaError(int player_id, int error) { |
169 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 170 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
170 if (player) | 171 if (player) |
171 player->OnMediaError(error); | 172 player->OnMediaError(error); |
172 } | 173 } |
173 | 174 |
174 void RendererMediaPlayerManager::OnVideoSizeChanged(int player_id, | 175 void RendererMediaPlayerManager::OnVideoSizeChanged(int player_id, |
175 int width, | 176 int width, |
176 int height) { | 177 int height) { |
177 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 178 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
178 if (player) | 179 if (player) |
179 player->OnVideoSizeChanged(width, height); | 180 player->OnVideoSizeChanged(width, height); |
180 } | 181 } |
181 | 182 |
182 void RendererMediaPlayerManager::OnTimeUpdate( | 183 void RendererMediaPlayerManager::OnTimeUpdate( |
183 int player_id, | 184 int player_id, |
184 base::TimeDelta current_timestamp, | 185 base::TimeDelta current_timestamp, |
185 base::TimeTicks current_time_ticks) { | 186 base::TimeTicks current_time_ticks) { |
186 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 187 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
187 if (player) | 188 if (player) |
188 player->OnTimeUpdate(current_timestamp, current_time_ticks); | 189 player->OnTimeUpdate(current_timestamp, current_time_ticks); |
189 } | 190 } |
190 | 191 |
191 void RendererMediaPlayerManager::OnWaitingForDecryptionKey(int player_id) { | 192 void RendererMediaPlayerManager::OnWaitingForDecryptionKey(int player_id) { |
192 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 193 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
193 if (player) | 194 if (player) |
194 player->OnWaitingForDecryptionKey(); | 195 player->OnWaitingForDecryptionKey(); |
195 } | 196 } |
196 | 197 |
197 void RendererMediaPlayerManager::OnMediaPlayerReleased(int player_id) { | 198 void RendererMediaPlayerManager::OnMediaPlayerReleased(int player_id) { |
198 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 199 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
199 if (player) | 200 if (player) |
200 player->OnPlayerReleased(); | 201 player->OnPlayerReleased(); |
201 } | 202 } |
202 | 203 |
203 void RendererMediaPlayerManager::OnConnectedToRemoteDevice(int player_id, | 204 void RendererMediaPlayerManager::OnConnectedToRemoteDevice(int player_id, |
204 const std::string& remote_playback_message) { | 205 const std::string& remote_playback_message) { |
205 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 206 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
206 if (player) | 207 if (player) |
207 player->OnConnectedToRemoteDevice(remote_playback_message); | 208 player->OnConnectedToRemoteDevice(remote_playback_message); |
208 } | 209 } |
209 | 210 |
210 void RendererMediaPlayerManager::OnDisconnectedFromRemoteDevice(int player_id) { | 211 void RendererMediaPlayerManager::OnDisconnectedFromRemoteDevice(int player_id) { |
211 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 212 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
212 if (player) | 213 if (player) |
213 player->OnDisconnectedFromRemoteDevice(); | 214 player->OnDisconnectedFromRemoteDevice(); |
214 } | 215 } |
215 | 216 |
216 void RendererMediaPlayerManager::OnDidExitFullscreen(int player_id) { | 217 void RendererMediaPlayerManager::OnDidExitFullscreen(int player_id) { |
217 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 218 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
218 if (player) | 219 if (player) |
219 player->OnDidExitFullscreen(); | 220 player->OnDidExitFullscreen(); |
220 } | 221 } |
221 | 222 |
222 void RendererMediaPlayerManager::OnPlayerPlay(int player_id) { | 223 void RendererMediaPlayerManager::OnPlayerPlay(int player_id) { |
223 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 224 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
224 if (player) | 225 if (player) |
225 player->OnMediaPlayerPlay(); | 226 player->OnMediaPlayerPlay(); |
226 } | 227 } |
227 | 228 |
228 void RendererMediaPlayerManager::OnPlayerPause(int player_id) { | 229 void RendererMediaPlayerManager::OnPlayerPause(int player_id) { |
229 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 230 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
230 if (player) | 231 if (player) |
231 player->OnMediaPlayerPause(); | 232 player->OnMediaPlayerPause(); |
232 } | 233 } |
233 | 234 |
234 void RendererMediaPlayerManager::OnRemoteRouteAvailabilityChanged( | 235 void RendererMediaPlayerManager::OnRemoteRouteAvailabilityChanged( |
235 int player_id, | 236 int player_id, |
236 bool routes_available) { | 237 bool routes_available) { |
237 WebMediaPlayerAndroid* player = GetMediaPlayer(player_id); | 238 RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); |
238 if (player) | 239 if (player) |
239 player->OnRemoteRouteAvailabilityChanged(routes_available); | 240 player->OnRemoteRouteAvailabilityChanged(routes_available); |
240 } | 241 } |
241 | 242 |
242 void RendererMediaPlayerManager::EnterFullscreen(int player_id) { | 243 void RendererMediaPlayerManager::EnterFullscreen(int player_id) { |
243 Send(new MediaPlayerHostMsg_EnterFullscreen(routing_id(), player_id)); | 244 Send(new MediaPlayerHostMsg_EnterFullscreen(routing_id(), player_id)); |
244 } | 245 } |
245 | 246 |
246 void RendererMediaPlayerManager::SetCdm(int player_id, int cdm_id) { | 247 void RendererMediaPlayerManager::SetCdm(int player_id, int cdm_id) { |
247 if (cdm_id == media::CdmContext::kInvalidCdmId) { | 248 if (cdm_id == media::CdmContext::kInvalidCdmId) { |
248 NOTREACHED(); | 249 NOTREACHED(); |
249 return; | 250 return; |
250 } | 251 } |
251 Send(new MediaPlayerHostMsg_SetCdm(routing_id(), player_id, cdm_id)); | 252 Send(new MediaPlayerHostMsg_SetCdm(routing_id(), player_id, cdm_id)); |
252 } | 253 } |
253 | 254 |
254 int RendererMediaPlayerManager::RegisterMediaPlayer( | 255 int RendererMediaPlayerManager::RegisterMediaPlayer( |
255 WebMediaPlayerAndroid* player) { | 256 RendererMediaPlayerInterface* player) { |
256 media_players_[next_media_player_id_] = player; | 257 media_players_[next_media_player_id_] = player; |
257 return next_media_player_id_++; | 258 return next_media_player_id_++; |
258 } | 259 } |
259 | 260 |
260 void RendererMediaPlayerManager::UnregisterMediaPlayer(int player_id) { | 261 void RendererMediaPlayerManager::UnregisterMediaPlayer(int player_id) { |
261 media_players_.erase(player_id); | 262 media_players_.erase(player_id); |
262 } | 263 } |
263 | 264 |
264 void RendererMediaPlayerManager::ReleaseVideoResources() { | 265 void RendererMediaPlayerManager::ReleaseVideoResources() { |
265 std::map<int, WebMediaPlayerAndroid*>::iterator player_it; | 266 std::map<int, RendererMediaPlayerInterface*>::iterator player_it; |
266 for (player_it = media_players_.begin(); player_it != media_players_.end(); | 267 for (player_it = media_players_.begin(); player_it != media_players_.end(); |
267 ++player_it) { | 268 ++player_it) { |
268 WebMediaPlayerAndroid* player = player_it->second; | 269 RendererMediaPlayerInterface* player = player_it->second; |
269 | 270 |
270 // Do not release if an audio track is still playing | 271 // Do not release if an audio track is still playing |
271 if (player && (player->paused() || player->hasVideo())) | 272 if (player && (player->paused() || player->hasVideo())) |
272 player->ReleaseMediaResources(); | 273 player->ReleaseMediaResources(); |
273 } | 274 } |
274 } | 275 } |
275 | 276 |
276 WebMediaPlayerAndroid* RendererMediaPlayerManager::GetMediaPlayer( | 277 RendererMediaPlayerInterface* RendererMediaPlayerManager::GetMediaPlayer( |
277 int player_id) { | 278 int player_id) { |
278 std::map<int, WebMediaPlayerAndroid*>::iterator iter = | 279 std::map<int, RendererMediaPlayerInterface*>::iterator iter = |
279 media_players_.find(player_id); | 280 media_players_.find(player_id); |
280 if (iter != media_players_.end()) | 281 if (iter != media_players_.end()) |
281 return iter->second; | 282 return iter->second; |
282 return NULL; | 283 return NULL; |
283 } | 284 } |
284 | 285 |
285 #if defined(VIDEO_HOLE) | 286 #if defined(VIDEO_HOLE) |
286 void RendererMediaPlayerManager::RequestExternalSurface( | 287 void RendererMediaPlayerManager::RequestExternalSurface( |
287 int player_id, | 288 int player_id, |
288 const gfx::RectF& geometry) { | 289 const gfx::RectF& geometry) { |
289 Send(new MediaPlayerHostMsg_NotifyExternalSurface( | 290 Send(new MediaPlayerHostMsg_NotifyExternalSurface( |
290 routing_id(), player_id, true, geometry)); | 291 routing_id(), player_id, true, geometry)); |
291 } | 292 } |
292 | 293 |
293 void RendererMediaPlayerManager::DidCommitCompositorFrame() { | 294 void RendererMediaPlayerManager::DidCommitCompositorFrame() { |
294 std::map<int, gfx::RectF> geometry_change; | 295 std::map<int, gfx::RectF> geometry_change; |
295 RetrieveGeometryChanges(&geometry_change); | 296 RetrieveGeometryChanges(&geometry_change); |
296 for (std::map<int, gfx::RectF>::iterator it = geometry_change.begin(); | 297 for (std::map<int, gfx::RectF>::iterator it = geometry_change.begin(); |
297 it != geometry_change.end(); | 298 it != geometry_change.end(); |
298 ++it) { | 299 ++it) { |
299 Send(new MediaPlayerHostMsg_NotifyExternalSurface( | 300 Send(new MediaPlayerHostMsg_NotifyExternalSurface( |
300 routing_id(), it->first, false, it->second)); | 301 routing_id(), it->first, false, it->second)); |
301 } | 302 } |
302 } | 303 } |
303 | 304 |
304 void RendererMediaPlayerManager::RetrieveGeometryChanges( | 305 void RendererMediaPlayerManager::RetrieveGeometryChanges( |
305 std::map<int, gfx::RectF>* changes) { | 306 std::map<int, gfx::RectF>* changes) { |
306 DCHECK(changes->empty()); | 307 DCHECK(changes->empty()); |
307 for (std::map<int, WebMediaPlayerAndroid*>::iterator player_it = | 308 for (std::map<int, RendererMediaPlayerInterface*>::iterator player_it = |
308 media_players_.begin(); | 309 media_players_.begin(); |
309 player_it != media_players_.end(); | 310 player_it != media_players_.end(); |
310 ++player_it) { | 311 ++player_it) { |
311 WebMediaPlayerAndroid* player = player_it->second; | 312 RendererMediaPlayerInterface* player = player_it->second; |
312 | 313 |
313 if (player && player->hasVideo()) { | 314 if (player && player->hasVideo()) { |
314 if (player->UpdateBoundaryRectangle()) | 315 if (player->UpdateBoundaryRectangle()) |
315 (*changes)[player_it->first] = player->GetBoundaryRectangle(); | 316 (*changes)[player_it->first] = player->GetBoundaryRectangle(); |
316 } | 317 } |
317 } | 318 } |
318 } | 319 } |
319 | 320 |
320 bool | 321 bool |
321 RendererMediaPlayerManager::ShouldUseVideoOverlayForEmbeddedEncryptedVideo() { | 322 RendererMediaPlayerManager::ShouldUseVideoOverlayForEmbeddedEncryptedVideo() { |
322 const RendererPreferences& prefs = static_cast<RenderFrameImpl*>( | 323 const RendererPreferences& prefs = static_cast<RenderFrameImpl*>( |
323 render_frame())->render_view()->renderer_preferences(); | 324 render_frame())->render_view()->renderer_preferences(); |
324 return prefs.use_video_overlay_for_embedded_encrypted_video; | 325 return prefs.use_video_overlay_for_embedded_encrypted_video; |
325 } | 326 } |
326 #endif // defined(VIDEO_HOLE) | 327 #endif // defined(VIDEO_HOLE) |
327 | 328 |
328 } // namespace content | 329 } // namespace content |
OLD | NEW |