Index: content/common/gpu/media/vaapi_drm_picture.cc |
diff --git a/content/common/gpu/media/vaapi_drm_picture.cc b/content/common/gpu/media/vaapi_drm_picture.cc |
deleted file mode 100644 |
index ab5a4f28b1a673ad5d17ba03249240c91a1e31a8..0000000000000000000000000000000000000000 |
--- a/content/common/gpu/media/vaapi_drm_picture.cc |
+++ /dev/null |
@@ -1,103 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "base/file_descriptor_posix.h" |
-#include "content/common/gpu/media/va_surface.h" |
-#include "content/common/gpu/media/vaapi_drm_picture.h" |
-#include "content/common/gpu/media/vaapi_wrapper.h" |
-#include "third_party/libva/va/drm/va_drm.h" |
-#include "third_party/libva/va/va.h" |
-#include "ui/gfx/gpu_memory_buffer.h" |
-#include "ui/gl/gl_bindings.h" |
-#include "ui/gl/gl_image_ozone_native_pixmap.h" |
-#include "ui/gl/scoped_binders.h" |
-#include "ui/ozone/public/native_pixmap.h" |
-#include "ui/ozone/public/ozone_platform.h" |
-#include "ui/ozone/public/surface_factory_ozone.h" |
- |
-namespace { |
-// We decode video into YUV420, but for usage with GLImages we have to convert |
-// to BGRX_8888. |
-const gfx::BufferFormat kPictureForGLImageFormat = gfx::BufferFormat::BGRX_8888; |
- |
-} // namespace |
- |
-namespace content { |
- |
-VaapiDrmPicture::VaapiDrmPicture( |
- const scoped_refptr<VaapiWrapper>& vaapi_wrapper, |
- const MakeGLContextCurrentCallback& make_context_current_cb, |
- int32_t picture_buffer_id, |
- uint32_t texture_id, |
- const gfx::Size& size) |
- : VaapiPicture(picture_buffer_id, texture_id, size), |
- vaapi_wrapper_(vaapi_wrapper), |
- make_context_current_cb_(make_context_current_cb) {} |
- |
-VaapiDrmPicture::~VaapiDrmPicture() { |
- if (gl_image_ && make_context_current_cb_.Run()) { |
- gl_image_->ReleaseTexImage(GL_TEXTURE_EXTERNAL_OES); |
- gl_image_->Destroy(true); |
- |
- DCHECK_EQ(glGetError(), static_cast<GLenum>(GL_NO_ERROR)); |
- } |
-} |
- |
-bool VaapiDrmPicture::Initialize() { |
- // We want to create a VASurface and an EGLImage out of the same |
- // memory buffer, so we can output decoded pictures to it using |
- // VAAPI and also use it to paint with GL. |
- ui::OzonePlatform* platform = ui::OzonePlatform::GetInstance(); |
- ui::SurfaceFactoryOzone* factory = platform->GetSurfaceFactoryOzone(); |
- pixmap_ = factory->CreateNativePixmap(gfx::kNullAcceleratedWidget, size(), |
- kPictureForGLImageFormat, |
- gfx::BufferUsage::SCANOUT); |
- if (!pixmap_) { |
- LOG(ERROR) << "Failed creating an Ozone NativePixmap"; |
- return false; |
- } |
- |
- va_surface_ = vaapi_wrapper_->CreateVASurfaceForPixmap(pixmap_); |
- if (!va_surface_) { |
- LOG(ERROR) << "Failed creating VASurface for NativePixmap"; |
- return false; |
- } |
- |
- pixmap_->SetProcessingCallback( |
- base::Bind(&VaapiWrapper::ProcessPixmap, vaapi_wrapper_)); |
- |
- if (!make_context_current_cb_.Run()) |
- return false; |
- |
- gfx::ScopedTextureBinder texture_binder(GL_TEXTURE_EXTERNAL_OES, |
- texture_id()); |
- scoped_refptr<gfx::GLImageOzoneNativePixmap> image( |
- new gfx::GLImageOzoneNativePixmap(size(), GL_BGRA_EXT)); |
- if (!image->Initialize(pixmap_.get(), pixmap_->GetBufferFormat())) { |
- LOG(ERROR) << "Failed to create GLImage"; |
- return false; |
- } |
- gl_image_ = image; |
- if (!gl_image_->BindTexImage(GL_TEXTURE_EXTERNAL_OES)) { |
- LOG(ERROR) << "Failed to bind texture to GLImage"; |
- return false; |
- } |
- |
- return true; |
-} |
- |
-bool VaapiDrmPicture::DownloadFromSurface( |
- const scoped_refptr<VASurface>& va_surface) { |
- return vaapi_wrapper_->BlitSurface(va_surface, va_surface_); |
-} |
- |
-scoped_refptr<gl::GLImage> VaapiDrmPicture::GetImageToBind() { |
- return gl_image_; |
-} |
- |
-bool VaapiDrmPicture::AllowOverlay() const { |
- return true; |
-} |
- |
-} // namespace |