Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Side by Side Diff: content/common/gpu/media/vaapi_wrapper.cc

Issue 1422563002: [Ozone] Enables overlay render format setting path and by default use UYVY (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/common/gpu/media/vaapi_wrapper.h" 5 #include "content/common/gpu/media/vaapi_wrapper.h"
6 6
7 #include <dlfcn.h> 7 #include <dlfcn.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 required_attribs.insert( 107 required_attribs.insert(
108 required_attribs.end(), 108 required_attribs.end(),
109 kEncodeVAConfigAttribs, 109 kEncodeVAConfigAttribs,
110 kEncodeVAConfigAttribs + arraysize(kEncodeVAConfigAttribs)); 110 kEncodeVAConfigAttribs + arraysize(kEncodeVAConfigAttribs));
111 } 111 }
112 return required_attribs; 112 return required_attribs;
113 } 113 }
114 114
115 VASurface::VASurface(VASurfaceID va_surface_id, 115 VASurface::VASurface(VASurfaceID va_surface_id,
116 const gfx::Size& size, 116 const gfx::Size& size,
117 const unsigned int format,
117 const ReleaseCB& release_cb) 118 const ReleaseCB& release_cb)
118 : va_surface_id_(va_surface_id), size_(size), release_cb_(release_cb) { 119 : va_surface_id_(va_surface_id),
120 size_(size),
121 format_(format),
122 release_cb_(release_cb) {
119 DCHECK(!release_cb_.is_null()); 123 DCHECK(!release_cb_.is_null());
120 } 124 }
121 125
122 VASurface::~VASurface() { 126 VASurface::~VASurface() {
123 release_cb_.Run(va_surface_id_); 127 release_cb_.Run(va_surface_id_);
124 } 128 }
125 129
126 VaapiWrapper::VaapiWrapper() 130 VaapiWrapper::VaapiWrapper()
127 : va_display_(NULL), 131 : va_display_(NULL),
128 va_config_id_(VA_INVALID_ID), 132 va_config_id_(VA_INVALID_ID),
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
572 &va_surface_id, 1, &attribs[0], attribs.size()); 576 &va_surface_id, 1, &attribs[0], attribs.size());
573 577
574 scoped_refptr<VASurface> va_surface; 578 scoped_refptr<VASurface> va_surface;
575 VA_SUCCESS_OR_RETURN(va_res, "Failed to create unowned VASurface", 579 VA_SUCCESS_OR_RETURN(va_res, "Failed to create unowned VASurface",
576 va_surface); 580 va_surface);
577 581
578 // This is safe to use Unretained() here, because the VDA takes care 582 // This is safe to use Unretained() here, because the VDA takes care
579 // of the destruction order. All the surfaces will be destroyed 583 // of the destruction order. All the surfaces will be destroyed
580 // before VaapiWrapper. 584 // before VaapiWrapper.
581 va_surface = new VASurface( 585 va_surface = new VASurface(
582 va_surface_id, size, 586 va_surface_id, size, va_format,
583 base::Bind(&VaapiWrapper::DestroyUnownedSurface, base::Unretained(this))); 587 base::Bind(&VaapiWrapper::DestroyUnownedSurface, base::Unretained(this)));
584 588
585 return va_surface; 589 return va_surface;
586 } 590 }
587 591
588 void VaapiWrapper::DestroyUnownedSurface(VASurfaceID va_surface_id) { 592 void VaapiWrapper::DestroyUnownedSurface(VASurfaceID va_surface_id) {
589 base::AutoLock auto_lock(*va_lock_); 593 base::AutoLock auto_lock(*va_lock_);
590 594
591 VAStatus va_res = vaDestroySurfaces(va_display_, &va_surface_id, 1); 595 VAStatus va_res = vaDestroySurfaces(va_display_, &va_surface_id, 1);
592 VA_LOG_ON_ERROR(va_res, "vaDestroySurfaces on surface failed"); 596 VA_LOG_ON_ERROR(va_res, "vaDestroySurfaces on surface failed");
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after
1150 drm_fd_.reset(HANDLE_EINTR(dup(fd))); 1154 drm_fd_.reset(HANDLE_EINTR(dup(fd)));
1151 } 1155 }
1152 #endif // USE_OZONE 1156 #endif // USE_OZONE
1153 1157
1154 bool VaapiWrapper::VADisplayState::VAAPIVersionLessThan(int major, int minor) { 1158 bool VaapiWrapper::VADisplayState::VAAPIVersionLessThan(int major, int minor) {
1155 return (major_version_ < major) || 1159 return (major_version_ < major) ||
1156 (major_version_ == major && minor_version_ < minor); 1160 (major_version_ == major && minor_version_ < minor);
1157 } 1161 }
1158 1162
1159 } // namespace content 1163 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698