Index: media/gpu/avda_picture_buffer_manager.cc |
diff --git a/media/gpu/avda_picture_buffer_manager.cc b/media/gpu/avda_picture_buffer_manager.cc |
index b3f00ddccc52a7cf23e702ab3a87e174a90f4115..27a7eb82d6b5473dfe8ee1cf2404106c9bd35fa4 100644 |
--- a/media/gpu/avda_picture_buffer_manager.cc |
+++ b/media/gpu/avda_picture_buffer_manager.cc |
@@ -16,11 +16,11 @@ |
#include "gpu/command_buffer/service/gl_stream_texture_image.h" |
#include "gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h" |
#include "gpu/command_buffer/service/texture_manager.h" |
-#include "gpu/ipc/common/gpu_surface_lookup.h" |
#include "gpu/ipc/service/gpu_channel.h" |
#include "media/base/android/media_codec_bridge_impl.h" |
#include "media/gpu/avda_codec_image.h" |
#include "media/gpu/avda_shared_state.h" |
+#include "ui/gl/android/scoped_java_surface.h" |
#include "ui/gl/android/surface_texture.h" |
#include "ui/gl/egl_util.h" |
#include "ui/gl/gl_bindings.h" |
@@ -47,7 +47,8 @@ scoped_refptr<SurfaceTextureGLOwner> CreateAttachedSurfaceTexture( |
base::WeakPtr<gpu::gles2::GLES2Decoder> gl_decoder) { |
scoped_refptr<SurfaceTextureGLOwner> surface_texture = |
SurfaceTextureGLOwner::Create(); |
- DCHECK(surface_texture); |
+ if (!surface_texture) |
+ return nullptr; |
glActiveTexture(GL_TEXTURE0); |
glBindTexture(GL_TEXTURE_EXTERNAL_OES, surface_texture->texture_id()); |
@@ -71,17 +72,21 @@ AVDAPictureBufferManager::AVDAPictureBufferManager( |
AVDAPictureBufferManager::~AVDAPictureBufferManager() {} |
-gl::ScopedJavaSurface AVDAPictureBufferManager::Initialize(int surface_id) { |
+void AVDAPictureBufferManager::InitializeForOverlay() { |
shared_state_ = new AVDASharedState(); |
surface_texture_ = nullptr; |
+} |
- // Acquire the SurfaceView surface if given a valid id. |
- if (surface_id != SurfaceManager::kNoSurfaceID) |
- return gpu::GpuSurfaceLookup::GetInstance()->AcquireJavaSurface(surface_id); |
+gl::ScopedJavaSurface AVDAPictureBufferManager::InitializeForSurfaceTexture() { |
+ shared_state_ = new AVDASharedState(); |
+ surface_texture_ = nullptr; |
- // Otherwise create a SurfaceTexture. |
+ // Create a SurfaceTexture. |
surface_texture_ = |
CreateAttachedSurfaceTexture(state_provider_->GetGlDecoder()); |
+ if (!surface_texture_) |
+ return gl::ScopedJavaSurface(); |
+ |
shared_state_->SetSurfaceTexture(surface_texture_); |
return gl::ScopedJavaSurface(surface_texture_.get()); |
} |