| Index: webkit/media/android/webmediaplayer_android.cc
|
| diff --git a/webkit/media/android/webmediaplayer_android.cc b/webkit/media/android/webmediaplayer_android.cc
|
| index ef8248ee9af952df578271e955df160667a4420b..cc9f165edf0b0e4724c5b983bf2b1d9dccc75970 100644
|
| --- a/webkit/media/android/webmediaplayer_android.cc
|
| +++ b/webkit/media/android/webmediaplayer_android.cc
|
| @@ -42,6 +42,7 @@ WebMediaPlayerAndroid::WebMediaPlayerAndroid(
|
| is_playing_(false),
|
| needs_establish_peer_(true),
|
| has_size_info_(false),
|
| + is_in_video_view_(false),
|
| stream_texture_factory_(factory) {
|
| main_loop_->AddDestructionObserver(this);
|
| if (manager_)
|
| @@ -376,13 +377,17 @@ void WebMediaPlayerAndroid::WillDestroyCurrentMessageLoop() {
|
| }
|
|
|
| void WebMediaPlayerAndroid::ReallocateVideoFrame() {
|
| - if (texture_id_) {
|
| - video_frame_.reset(new WebVideoFrameImpl(VideoFrame::WrapNativeTexture(
|
| - texture_id_, kGLTextureExternalOES, natural_size_,
|
| - gfx::Rect(natural_size_), natural_size_, base::TimeDelta(),
|
| - VideoFrame::ReadPixelsCB(),
|
| - base::Closure())));
|
| + unsigned int texture_id = texture_id_;
|
| + if (is_in_video_view_) {
|
| + texture_id = 0;
|
| + } else if (texture_id_ == 0) {
|
| + return;
|
| }
|
| + video_frame_.reset(new WebVideoFrameImpl(VideoFrame::WrapNativeTexture(
|
| + texture_id, kGLTextureExternalOES, natural_size_,
|
| + gfx::Rect(natural_size_), natural_size_, base::TimeDelta(),
|
| + VideoFrame::ReadPixelsCB(),
|
| + base::Closure())));
|
| }
|
|
|
| WebVideoFrame* WebMediaPlayerAndroid::getCurrentFrame() {
|
| @@ -415,6 +420,11 @@ void WebMediaPlayerAndroid::SetNeedsEstablishPeer(bool needs_establish_peer) {
|
| needs_establish_peer_ = needs_establish_peer;
|
| }
|
|
|
| +void WebMediaPlayerAndroid::SetIsInVideoView(bool is_in_video_view) {
|
| + is_in_video_view_ = is_in_video_view;;
|
| + ReallocateVideoFrame();
|
| +}
|
| +
|
| void WebMediaPlayerAndroid::UpdatePlayingState(bool is_playing) {
|
| is_playing_ = is_playing;
|
| }
|
|
|