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 // This file contains an implementation of VaapiWrapper, used by | 5 // This file contains an implementation of VaapiWrapper, used by |
6 // VaapiVideoDecodeAccelerator and VaapiH264Decoder for decode, | 6 // VaapiVideoDecodeAccelerator and VaapiH264Decoder for decode, |
7 // and VaapiVideoEncodeAccelerator for encode, to interface | 7 // and VaapiVideoEncodeAccelerator for encode, to interface |
8 // with libva (VA-API library for hardware video codec). | 8 // with libva (VA-API library for hardware video codec). |
9 | 9 |
10 #ifndef CONTENT_COMMON_GPU_MEDIA_VAAPI_WRAPPER_H_ | 10 #ifndef CONTENT_COMMON_GPU_MEDIA_VAAPI_WRAPPER_H_ |
11 #define CONTENT_COMMON_GPU_MEDIA_VAAPI_WRAPPER_H_ | 11 #define CONTENT_COMMON_GPU_MEDIA_VAAPI_WRAPPER_H_ |
12 | 12 |
13 #include <set> | 13 #include <set> |
14 #include <vector> | 14 #include <vector> |
15 | 15 |
| 16 #include "base/files/file.h" |
16 #include "base/lazy_instance.h" | 17 #include "base/lazy_instance.h" |
17 #include "base/memory/ref_counted.h" | 18 #include "base/memory/ref_counted.h" |
18 #include "base/synchronization/lock.h" | 19 #include "base/synchronization/lock.h" |
19 #include "content/common/content_export.h" | 20 #include "content/common/content_export.h" |
20 #include "content/common/gpu/media/va_surface.h" | 21 #include "content/common/gpu/media/va_surface.h" |
21 #include "media/base/video_decoder_config.h" | 22 #include "media/base/video_decoder_config.h" |
22 #include "media/base/video_frame.h" | 23 #include "media/base/video_frame.h" |
23 #include "media/video/video_encode_accelerator.h" | 24 #include "media/video/video_encode_accelerator.h" |
24 #include "third_party/libva/va/va.h" | 25 #include "third_party/libva/va/va.h" |
25 #include "third_party/libva/va/va_vpp.h" | 26 #include "third_party/libva/va/va_vpp.h" |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 // return values from public methods. | 296 // return values from public methods. |
296 base::Closure report_error_to_uma_cb_; | 297 base::Closure report_error_to_uma_cb_; |
297 | 298 |
298 // VPP (Video Post Processing) context, this is used to convert | 299 // VPP (Video Post Processing) context, this is used to convert |
299 // pictures used by the decoder to RGBA pictures usable by GL or the | 300 // pictures used by the decoder to RGBA pictures usable by GL or the |
300 // display hardware. | 301 // display hardware. |
301 VAConfigID va_vpp_config_id_; | 302 VAConfigID va_vpp_config_id_; |
302 VAContextID va_vpp_context_id_; | 303 VAContextID va_vpp_context_id_; |
303 VABufferID va_vpp_buffer_id_; | 304 VABufferID va_vpp_buffer_id_; |
304 | 305 |
| 306 #if defined(USE_OZONE) |
| 307 // Drm file used to obtain access to the driver interface by VA. |
| 308 base::File drm_file_; |
| 309 #endif // USE_OZONE |
| 310 |
305 // Singleton variable to store supported profile information for encode and | 311 // Singleton variable to store supported profile information for encode and |
306 // decode. | 312 // decode. |
307 static base::LazyInstance<LazyProfileInfos> profile_infos_; | 313 static base::LazyInstance<LazyProfileInfos> profile_infos_; |
308 | 314 |
309 DISALLOW_COPY_AND_ASSIGN(VaapiWrapper); | 315 DISALLOW_COPY_AND_ASSIGN(VaapiWrapper); |
310 }; | 316 }; |
311 | 317 |
312 } // namespace content | 318 } // namespace content |
313 | 319 |
314 #endif // CONTENT_COMMON_GPU_MEDIA_VAAPI_WRAPPER_H_ | 320 #endif // CONTENT_COMMON_GPU_MEDIA_VAAPI_WRAPPER_H_ |
OLD | NEW |