Index: content/common/gpu/media/v4l2_video_decode_accelerator.cc |
diff --git a/content/common/gpu/media/v4l2_video_decode_accelerator.cc b/content/common/gpu/media/v4l2_video_decode_accelerator.cc |
index 992e6afe61942cad230fdd6ada7991d48cba7a2b..eaff117e2033e67fdbe85f76867ae7b09d01ac4f 100644 |
--- a/content/common/gpu/media/v4l2_video_decode_accelerator.cc |
+++ b/content/common/gpu/media/v4l2_video_decode_accelerator.cc |
@@ -357,9 +357,8 @@ void V4L2VideoDecodeAccelerator::AssignPictureBuffers( |
attrs[13] = output_record.fds[1]; |
attrs[15] = 0; |
attrs[17] = frame_buffer_size_.width(); |
- |
- EGLImageKHR egl_image = eglCreateImageKHR( |
- egl_display_, EGL_NO_CONTEXT, EGL_LINUX_DMA_BUF_EXT, NULL, attrs); |
+ EGLImageKHR egl_image = device_->CreateEGLImage( |
+ egl_display_, attrs, buffers[i].texture_id(), i); |
if (egl_image == EGL_NO_IMAGE_KHR) { |
DLOG(ERROR) << "AssignPictureBuffers(): could not create EGLImageKHR"; |
// Ownership of EGLImages allocated in previous iterations of this loop |
@@ -369,9 +368,6 @@ void V4L2VideoDecodeAccelerator::AssignPictureBuffers( |
return; |
} |
- glBindTexture(GL_TEXTURE_EXTERNAL_OES, buffers[i].texture_id()); |
- glEGLImageTargetTexture2DOES(GL_TEXTURE_EXTERNAL_OES, egl_image); |
- |
output_record.egl_image = egl_image; |
output_record.picture_id = buffers[i].id(); |
free_output_buffers_.push(i); |
@@ -1758,7 +1754,7 @@ bool V4L2VideoDecodeAccelerator::CreateOutputBuffers() { |
client_, |
output_buffer_map_.size(), |
frame_buffer_size_, |
- GL_TEXTURE_EXTERNAL_OES)); |
+ device_->GetTextureTarget())); |
// Wait for the client to call AssignPictureBuffers() on the Child thread. |
// We do this, because if we continue decoding without finishing buffer |