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 #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 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 void OnNeedKey(const std::string& type, | 230 void OnNeedKey(const std::string& type, |
231 const std::vector<uint8>& init_data); | 231 const std::vector<uint8>& init_data); |
232 | 232 |
233 // TODO(xhwang): Implement WebMediaPlayer::setContentDecryptionModule(). | 233 // TODO(xhwang): Implement WebMediaPlayer::setContentDecryptionModule(). |
234 // See: http://crbug.com/224786 | 234 // See: http://crbug.com/224786 |
235 | 235 |
236 // Can be called on any thread. | 236 // Can be called on any thread. |
237 static void OnReleaseRemotePlaybackTexture( | 237 static void OnReleaseRemotePlaybackTexture( |
238 const scoped_refptr<base::MessageLoopProxy>& main_loop, | 238 const scoped_refptr<base::MessageLoopProxy>& main_loop, |
239 const base::WeakPtr<WebMediaPlayerAndroid>& player, | 239 const base::WeakPtr<WebMediaPlayerAndroid>& player, |
240 scoped_ptr<gpu::MailboxHolder> mailbox_holder); | 240 scoped_ptr<gpu::MailboxHolder> mailbox_holder, |
| 241 const std::vector<uint32>& release_sync_points); |
241 | 242 |
242 protected: | 243 protected: |
243 // Helper method to update the playing state. | 244 // Helper method to update the playing state. |
244 void UpdatePlayingState(bool is_playing_); | 245 void UpdatePlayingState(bool is_playing_); |
245 | 246 |
246 // Helper methods for posting task for setting states and update WebKit. | 247 // Helper methods for posting task for setting states and update WebKit. |
247 void UpdateNetworkState(blink::WebMediaPlayer::NetworkState state); | 248 void UpdateNetworkState(blink::WebMediaPlayer::NetworkState state); |
248 void UpdateReadyState(blink::WebMediaPlayer::ReadyState state); | 249 void UpdateReadyState(blink::WebMediaPlayer::ReadyState state); |
249 void TryCreateStreamTextureProxyIfNeeded(); | 250 void TryCreateStreamTextureProxyIfNeeded(); |
250 void DoCreateStreamTexture(); | 251 void DoCreateStreamTexture(); |
251 | 252 |
252 // Helper method to reestablish the surface texture peer for android | 253 // Helper method to reestablish the surface texture peer for android |
253 // media player. | 254 // media player. |
254 void EstablishSurfaceTexturePeer(); | 255 void EstablishSurfaceTexturePeer(); |
255 | 256 |
256 // Requesting whether the surface texture peer needs to be reestablished. | 257 // Requesting whether the surface texture peer needs to be reestablished. |
257 void SetNeedsEstablishPeer(bool needs_establish_peer); | 258 void SetNeedsEstablishPeer(bool needs_establish_peer); |
258 | 259 |
259 private: | 260 private: |
260 void Pause(bool is_media_related_action); | 261 void Pause(bool is_media_related_action); |
261 void DrawRemotePlaybackIcon(); | 262 void DrawRemotePlaybackIcon(); |
262 void ReallocateVideoFrame(); | 263 void ReallocateVideoFrame(); |
263 void CreateWebLayerIfNeeded(); | 264 void CreateWebLayerIfNeeded(); |
264 void SetCurrentFrameInternal(scoped_refptr<media::VideoFrame>& frame); | 265 void SetCurrentFrameInternal(scoped_refptr<media::VideoFrame>& frame); |
265 void DidLoadMediaInfo(MediaInfoLoader::Status status); | 266 void DidLoadMediaInfo(MediaInfoLoader::Status status); |
266 void DoReleaseRemotePlaybackTexture(uint32 sync_point); | 267 void DoReleaseRemotePlaybackTexture( |
| 268 const std::vector<uint32>& release_sync_points); |
267 | 269 |
268 bool IsKeySystemSupported(const std::string& key_system); | 270 bool IsKeySystemSupported(const std::string& key_system); |
269 | 271 |
270 // Actually do the work for generateKeyRequest/addKey so they can easily | 272 // Actually do the work for generateKeyRequest/addKey so they can easily |
271 // report results to UMA. | 273 // report results to UMA. |
272 MediaKeyException GenerateKeyRequestInternal(const std::string& key_system, | 274 MediaKeyException GenerateKeyRequestInternal(const std::string& key_system, |
273 const unsigned char* init_data, | 275 const unsigned char* init_data, |
274 unsigned init_data_length); | 276 unsigned init_data_length); |
275 MediaKeyException AddKeyInternal(const std::string& key_system, | 277 MediaKeyException AddKeyInternal(const std::string& key_system, |
276 const unsigned char* key, | 278 const unsigned char* key, |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
444 scoped_ptr<ProxyDecryptor> proxy_decryptor_; | 446 scoped_ptr<ProxyDecryptor> proxy_decryptor_; |
445 | 447 |
446 base::WeakPtrFactory<WebMediaPlayerAndroid> weak_factory_; | 448 base::WeakPtrFactory<WebMediaPlayerAndroid> weak_factory_; |
447 | 449 |
448 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerAndroid); | 450 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerAndroid); |
449 }; | 451 }; |
450 | 452 |
451 } // namespace content | 453 } // namespace content |
452 | 454 |
453 #endif // CONTENT_RENDERER_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_ | 455 #endif // CONTENT_RENDERER_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_ |
OLD | NEW |