GPU workaround to simulate Out of Memory errors with large textures
[chromium-blink-merge.git] / content / common / gpu / media / vaapi_picture.cc
blobcd886c06ebfc601c31f1dd9fd4a053cf3433d562
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "content/common/gpu/media/vaapi_picture.h"
6 #include "content/common/gpu/media/vaapi_wrapper.h"
7 #include "ui/gl/gl_bindings.h"
8 #include "ui/gl/gl_implementation.h"
10 #if defined(USE_X11)
11 #include "content/common/gpu/media/vaapi_tfp_picture.h"
12 #elif defined(USE_OZONE)
13 #include "content/common/gpu/media/vaapi_drm_picture.h"
14 #endif
16 namespace content {
18 // static
19 linked_ptr<VaapiPicture> VaapiPicture::CreatePicture(
20 VaapiWrapper* vaapi_wrapper,
21 const base::Callback<bool(void)> make_context_current,
22 int32 picture_buffer_id,
23 uint32 texture_id,
24 const gfx::Size& size) {
25 linked_ptr<VaapiPicture> picture;
26 #if defined(USE_X11)
27 picture.reset(new VaapiTFPPicture(vaapi_wrapper, make_context_current,
28 picture_buffer_id, texture_id, size));
29 #elif defined(USE_OZONE)
30 picture.reset(new VaapiDrmPicture(vaapi_wrapper, make_context_current,
31 picture_buffer_id, texture_id, size));
32 #endif // USE_X11
34 if (picture.get() && !picture->Initialize())
35 picture.reset();
37 return picture;
40 bool VaapiPicture::AllowOverlay() const {
41 return false;
44 // static
45 uint32 VaapiPicture::GetGLTextureTarget() {
46 #if defined(USE_OZONE)
47 return GL_TEXTURE_EXTERNAL_OES;
48 #else
49 return GL_TEXTURE_2D;
50 #endif
53 } // namespace content