Chromium Code Reviews| 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 921 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 932 | 932 |
| 933 va_res = vaDestroyBuffer(va_display_, buffer_id); | 933 va_res = vaDestroyBuffer(va_display_, buffer_id); |
| 934 VA_LOG_ON_ERROR(va_res, "vaDestroyBuffer failed"); | 934 VA_LOG_ON_ERROR(va_res, "vaDestroyBuffer failed"); |
| 935 | 935 |
| 936 const auto was_found = coded_buffers_.erase(buffer_id); | 936 const auto was_found = coded_buffers_.erase(buffer_id); |
| 937 DCHECK(was_found); | 937 DCHECK(was_found); |
| 938 | 938 |
| 939 return buffer_segment == NULL; | 939 return buffer_segment == NULL; |
| 940 } | 940 } |
| 941 | 941 |
| 942 bool VaapiWrapper::BlitSurface(VASurfaceID va_surface_id_src, | 942 bool VaapiWrapper::BlitSurface( |
| 943 const gfx::Size& src_size, | 943 const scoped_refptr<VASurface>& va_surface_src, |
|
kalyank
2015/10/21 19:48:41
These changes seem unrelated, can you separate the
william.xie1
2015/10/22 07:35:41
Done.
| |
| 944 VASurfaceID va_surface_id_dest, | 944 const scoped_refptr<VASurface>& va_surface_dest) { |
| 945 const gfx::Size& dest_size) { | |
| 946 base::AutoLock auto_lock(*va_lock_); | 945 base::AutoLock auto_lock(*va_lock_); |
| 947 | 946 |
| 948 // Initialize the post processing engine if not already done. | 947 // Initialize the post processing engine if not already done. |
| 949 if (va_vpp_buffer_id_ == VA_INVALID_ID) { | 948 if (va_vpp_buffer_id_ == VA_INVALID_ID) { |
| 950 if (!InitializeVpp_Locked()) | 949 if (!InitializeVpp_Locked()) |
| 951 return false; | 950 return false; |
| 952 } | 951 } |
| 953 | 952 |
| 954 VAProcPipelineParameterBuffer* pipeline_param; | 953 VAProcPipelineParameterBuffer* pipeline_param; |
| 955 VA_SUCCESS_OR_RETURN(vaMapBuffer(va_display_, va_vpp_buffer_id_, | 954 VA_SUCCESS_OR_RETURN(vaMapBuffer(va_display_, va_vpp_buffer_id_, |
| 956 reinterpret_cast<void**>(&pipeline_param)), | 955 reinterpret_cast<void**>(&pipeline_param)), |
| 957 "Couldn't map vpp buffer", false); | 956 "Couldn't map vpp buffer", false); |
| 958 | 957 |
| 959 memset(pipeline_param, 0, sizeof *pipeline_param); | 958 memset(pipeline_param, 0, sizeof *pipeline_param); |
| 959 const gfx::Size src_size = va_surface_src->size(); | |
| 960 const gfx::Size dest_size = va_surface_dest->size(); | |
| 960 | 961 |
| 961 VARectangle input_region; | 962 VARectangle input_region; |
| 962 input_region.x = input_region.y = 0; | 963 input_region.x = input_region.y = 0; |
| 963 input_region.width = src_size.width(); | 964 input_region.width = src_size.width(); |
| 964 input_region.height = src_size.height(); | 965 input_region.height = src_size.height(); |
| 965 pipeline_param->surface_region = &input_region; | 966 pipeline_param->surface_region = &input_region; |
| 966 pipeline_param->surface = va_surface_id_src; | 967 pipeline_param->surface = va_surface_src->id(); |
| 967 pipeline_param->surface_color_standard = VAProcColorStandardNone; | 968 pipeline_param->surface_color_standard = VAProcColorStandardNone; |
| 968 | 969 |
| 969 VARectangle output_region; | 970 VARectangle output_region; |
| 970 output_region.x = output_region.y = 0; | 971 output_region.x = output_region.y = 0; |
| 971 output_region.width = dest_size.width(); | 972 output_region.width = dest_size.width(); |
| 972 output_region.height = dest_size.height(); | 973 output_region.height = dest_size.height(); |
| 973 pipeline_param->output_region = &output_region; | 974 pipeline_param->output_region = &output_region; |
| 974 pipeline_param->output_background_color = 0xff000000; | 975 pipeline_param->output_background_color = 0xff000000; |
| 975 pipeline_param->output_color_standard = VAProcColorStandardNone; | 976 pipeline_param->surface_color_standard = VAProcColorStandardNone; |
| 976 | 977 |
| 977 VA_SUCCESS_OR_RETURN(vaUnmapBuffer(va_display_, va_vpp_buffer_id_), | 978 VA_SUCCESS_OR_RETURN(vaUnmapBuffer(va_display_, va_vpp_buffer_id_), |
| 978 "Couldn't unmap vpp buffer", false); | 979 "Couldn't unmap vpp buffer", false); |
| 979 | 980 |
| 980 VA_SUCCESS_OR_RETURN( | 981 VA_SUCCESS_OR_RETURN( |
| 981 vaBeginPicture(va_display_, va_vpp_context_id_, va_surface_id_dest), | 982 vaBeginPicture(va_display_, va_vpp_context_id_, va_surface_dest->id()), |
| 982 "Couldn't begin picture", false); | 983 "Couldn't begin picture", false); |
| 983 | 984 |
| 984 VA_SUCCESS_OR_RETURN( | 985 VA_SUCCESS_OR_RETURN( |
| 985 vaRenderPicture(va_display_, va_vpp_context_id_, &va_vpp_buffer_id_, 1), | 986 vaRenderPicture(va_display_, va_vpp_context_id_, &va_vpp_buffer_id_, 1), |
| 986 "Couldn't render picture", false); | 987 "Couldn't render picture", false); |
| 987 | 988 |
| 988 VA_SUCCESS_OR_RETURN(vaEndPicture(va_display_, va_vpp_context_id_), | 989 VA_SUCCESS_OR_RETURN(vaEndPicture(va_display_, va_vpp_context_id_), |
| 989 "Couldn't end picture", false); | 990 "Couldn't end picture", false); |
| 990 | 991 |
| 991 return true; | 992 return true; |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1149 drm_fd_.reset(HANDLE_EINTR(dup(fd))); | 1150 drm_fd_.reset(HANDLE_EINTR(dup(fd))); |
| 1150 } | 1151 } |
| 1151 #endif // USE_OZONE | 1152 #endif // USE_OZONE |
| 1152 | 1153 |
| 1153 bool VaapiWrapper::VADisplayState::VAAPIVersionLessThan(int major, int minor) { | 1154 bool VaapiWrapper::VADisplayState::VAAPIVersionLessThan(int major, int minor) { |
| 1154 return (major_version_ < major) || | 1155 return (major_version_ < major) || |
| 1155 (major_version_ == major && minor_version_ < minor); | 1156 (major_version_ == major && minor_version_ < minor); |
| 1156 } | 1157 } |
| 1157 | 1158 |
| 1158 } // namespace content | 1159 } // namespace content |
| OLD | NEW |