OLD | NEW |
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 477 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 if (va_display_state) { | 488 if (va_display_state) { |
489 VAStatus va_res = VA_STATUS_SUCCESS; | 489 VAStatus va_res = VA_STATUS_SUCCESS; |
490 va_display_state->Deinitialize(&va_res); | 490 va_display_state->Deinitialize(&va_res); |
491 VA_LOG_ON_ERROR(va_res, "vaTerminate failed"); | 491 VA_LOG_ON_ERROR(va_res, "vaTerminate failed"); |
492 } | 492 } |
493 | 493 |
494 va_config_id_ = VA_INVALID_ID; | 494 va_config_id_ = VA_INVALID_ID; |
495 va_display_ = NULL; | 495 va_display_ = NULL; |
496 } | 496 } |
497 | 497 |
498 bool VaapiWrapper::CreateSurfaces(unsigned int va_format, | 498 bool VaapiWrapper::CreateSurfaces(const gfx::Size& size, |
499 const gfx::Size& size, | |
500 size_t num_surfaces, | 499 size_t num_surfaces, |
501 std::vector<VASurfaceID>* va_surfaces) { | 500 std::vector<VASurfaceID>* va_surfaces) { |
502 base::AutoLock auto_lock(*va_lock_); | 501 base::AutoLock auto_lock(*va_lock_); |
503 DVLOG(2) << "Creating " << num_surfaces << " surfaces"; | 502 DVLOG(2) << "Creating " << num_surfaces << " surfaces"; |
504 | 503 |
505 DCHECK(va_surfaces->empty()); | 504 DCHECK(va_surfaces->empty()); |
506 DCHECK(va_surface_ids_.empty()); | 505 DCHECK(va_surface_ids_.empty()); |
507 va_surface_ids_.resize(num_surfaces); | 506 va_surface_ids_.resize(num_surfaces); |
508 | 507 |
509 // Allocate surfaces in driver. | 508 // Allocate surfaces in driver. |
510 VAStatus va_res = | 509 VAStatus va_res = vaCreateSurfaces(va_display_, |
511 vaCreateSurfaces(va_display_, va_format, size.width(), size.height(), | 510 VA_RT_FORMAT_YUV420, |
512 &va_surface_ids_[0], va_surface_ids_.size(), NULL, 0); | 511 size.width(), size.height(), |
| 512 &va_surface_ids_[0], |
| 513 va_surface_ids_.size(), |
| 514 NULL, 0); |
513 | 515 |
514 VA_LOG_ON_ERROR(va_res, "vaCreateSurfaces failed"); | 516 VA_LOG_ON_ERROR(va_res, "vaCreateSurfaces failed"); |
515 if (va_res != VA_STATUS_SUCCESS) { | 517 if (va_res != VA_STATUS_SUCCESS) { |
516 va_surface_ids_.clear(); | 518 va_surface_ids_.clear(); |
517 return false; | 519 return false; |
518 } | 520 } |
519 | 521 |
520 // And create a context associated with them. | 522 // And create a context associated with them. |
521 va_res = vaCreateContext(va_display_, va_config_id_, | 523 va_res = vaCreateContext(va_display_, va_config_id_, |
522 size.width(), size.height(), VA_PROGRESSIVE, | 524 size.width(), size.height(), VA_PROGRESSIVE, |
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1140 drm_fd_.reset(HANDLE_EINTR(dup(fd))); | 1142 drm_fd_.reset(HANDLE_EINTR(dup(fd))); |
1141 } | 1143 } |
1142 #endif // USE_OZONE | 1144 #endif // USE_OZONE |
1143 | 1145 |
1144 bool VaapiWrapper::VADisplayState::VAAPIVersionLessThan(int major, int minor) { | 1146 bool VaapiWrapper::VADisplayState::VAAPIVersionLessThan(int major, int minor) { |
1145 return (major_version_ < major) || | 1147 return (major_version_ < major) || |
1146 (major_version_ == major && minor_version_ < minor); | 1148 (major_version_ == major && minor_version_ < minor); |
1147 } | 1149 } |
1148 | 1150 |
1149 } // namespace content | 1151 } // namespace content |
OLD | NEW |