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

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

Issue 110683002: Split the hole punching logic from GOOGLE_TV ifdef to VIDEO_HOLE (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years 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 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 // video and release the media player and surface texture when we switch tabs. 184 // video and release the media player and surface texture when we switch tabs.
185 // However, the actual GlTexture is not released to keep the video screenshot. 185 // However, the actual GlTexture is not released to keep the video screenshot.
186 virtual void ReleaseMediaResources(); 186 virtual void ReleaseMediaResources();
187 187
188 // Method inherited from DestructionObserver. 188 // Method inherited from DestructionObserver.
189 virtual void WillDestroyCurrentMessageLoop() OVERRIDE; 189 virtual void WillDestroyCurrentMessageLoop() OVERRIDE;
190 190
191 // Detach the player from its manager. 191 // Detach the player from its manager.
192 void Detach(); 192 void Detach();
193 193
194 #if defined(GOOGLE_TV) 194 #if defined(VIDEO_HOLE)
195 // Retrieve geometry of the media player (i.e. location and size of the video 195 // Retrieve geometry of the media player (i.e. location and size of the video
196 // frame) if changed. Returns true only if the geometry has been changed since 196 // frame) if changed. Returns true only if the geometry has been changed since
197 // the last call. 197 // the last call.
198 bool RetrieveGeometryChange(gfx::RectF* rect); 198 bool RetrieveGeometryChange(gfx::RectF* rect);
199 #endif 199 #endif // defined(VIDEO_HOLE)
200 200
201 virtual MediaKeyException generateKeyRequest( 201 virtual MediaKeyException generateKeyRequest(
202 const blink::WebString& key_system, 202 const blink::WebString& key_system,
203 const unsigned char* init_data, 203 const unsigned char* init_data,
204 unsigned init_data_length) OVERRIDE; 204 unsigned init_data_length) OVERRIDE;
205 virtual MediaKeyException addKey( 205 virtual MediaKeyException addKey(
206 const blink::WebString& key_system, 206 const blink::WebString& key_system,
207 const unsigned char* key, 207 const unsigned char* key,
208 unsigned key_length, 208 unsigned key_length,
209 const unsigned char* init_data, 209 const unsigned char* init_data,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 void DoCreateStreamTexture(); 249 void DoCreateStreamTexture();
250 250
251 251
252 // Helper method to reestablish the surface texture peer for android 252 // Helper method to reestablish the surface texture peer for android
253 // media player. 253 // media player.
254 void EstablishSurfaceTexturePeer(); 254 void EstablishSurfaceTexturePeer();
255 255
256 // Requesting whether the surface texture peer needs to be reestablished. 256 // Requesting whether the surface texture peer needs to be reestablished.
257 void SetNeedsEstablishPeer(bool needs_establish_peer); 257 void SetNeedsEstablishPeer(bool needs_establish_peer);
258 258
259 #if defined(GOOGLE_TV)
260 // Request external surface for out-of-band composition.
261 void RequestExternalSurface();
262 #endif
263
264 private: 259 private:
265 void DrawRemotePlaybackIcon(); 260 void DrawRemotePlaybackIcon();
266 void ReallocateVideoFrame(); 261 void ReallocateVideoFrame();
267 void SetCurrentFrameInternal(scoped_refptr<media::VideoFrame>& frame); 262 void SetCurrentFrameInternal(scoped_refptr<media::VideoFrame>& frame);
268 void DidLoadMediaInfo(MediaInfoLoader::Status status); 263 void DidLoadMediaInfo(MediaInfoLoader::Status status);
269 void DoReleaseRemotePlaybackTexture(uint32 sync_point); 264 void DoReleaseRemotePlaybackTexture(uint32 sync_point);
270 265
271 bool IsKeySystemSupported(const blink::WebString& key_system); 266 bool IsKeySystemSupported(const blink::WebString& key_system);
272 267
273 // Actually do the work for generateKeyRequest/addKey so they can easily 268 // Actually do the work for generateKeyRequest/addKey so they can easily
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 389
395 // Whether media player needs external surface. 390 // Whether media player needs external surface.
396 bool needs_external_surface_; 391 bool needs_external_surface_;
397 392
398 // A pointer back to the compositor to inform it about state changes. This is 393 // A pointer back to the compositor to inform it about state changes. This is
399 // not NULL while the compositor is actively using this webmediaplayer. 394 // not NULL while the compositor is actively using this webmediaplayer.
400 cc::VideoFrameProvider::Client* video_frame_provider_client_; 395 cc::VideoFrameProvider::Client* video_frame_provider_client_;
401 396
402 scoped_ptr<webkit::WebLayerImpl> video_weblayer_; 397 scoped_ptr<webkit::WebLayerImpl> video_weblayer_;
403 398
399 #if defined(VIDEO_HOLE)
400 // A rectangle represents the geometry of video frame, when computed last
401 // time.
402 gfx::RectF last_computed_rect_;
403 #endif // defined(VIDEO_HOLE)
404
404 #if defined(GOOGLE_TV) 405 #if defined(GOOGLE_TV)
405 // Pixel threshold for external surface usage. Negative value means that the 406 // Pixel threshold for external surface usage. Negative value means that the
406 // threshold is not defined, so that external surface is never used. 407 // threshold is not defined, so that external surface is never used.
407 int external_surface_threshold_; 408 int external_surface_threshold_;
408 409
409 // A rectangle represents the geometry of video frame, when computed last
410 // time.
411 gfx::RectF last_computed_rect_;
412
413 // Media Stream related fields. 410 // Media Stream related fields.
414 media::Demuxer* demuxer_; 411 media::Demuxer* demuxer_;
415 base::Closure destroy_demuxer_cb_; 412 base::Closure destroy_demuxer_cb_;
416 scoped_refptr<MediaStreamAudioRenderer> audio_renderer_; 413 scoped_refptr<MediaStreamAudioRenderer> audio_renderer_;
417 MediaStreamClient* media_stream_client_; 414 MediaStreamClient* media_stream_client_;
418 #endif 415 #endif
419 416
420 scoped_ptr<MediaSourceDelegate, 417 scoped_ptr<MediaSourceDelegate,
421 MediaSourceDelegate::Destroyer> media_source_delegate_; 418 MediaSourceDelegate::Destroyer> media_source_delegate_;
422 419
(...skipping 27 matching lines...) Expand all
450 scoped_ptr<ProxyDecryptor> decryptor_; 447 scoped_ptr<ProxyDecryptor> decryptor_;
451 448
452 base::WeakPtrFactory<WebMediaPlayerAndroid> weak_factory_; 449 base::WeakPtrFactory<WebMediaPlayerAndroid> weak_factory_;
453 450
454 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerAndroid); 451 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerAndroid);
455 }; 452 };
456 453
457 } // namespace content 454 } // namespace content
458 455
459 #endif // CONTENT_RENDERER_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_ 456 #endif // CONTENT_RENDERER_MEDIA_ANDROID_WEBMEDIAPLAYER_ANDROID_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698