Chromium Code Reviews| Index: content/common/gpu/media/vaapi_wrapper.h |
| diff --git a/content/common/gpu/media/vaapi_wrapper.h b/content/common/gpu/media/vaapi_wrapper.h |
| index 4efb558d69e42a54a1bebd5a3ae00ee945737573..0b42de1bb95b8299168d2558af52640f6a9d5c39 100644 |
| --- a/content/common/gpu/media/vaapi_wrapper.h |
| +++ b/content/common/gpu/media/vaapi_wrapper.h |
| @@ -13,15 +13,17 @@ |
| #include <set> |
| #include <vector> |
| -#include "base/callback.h" |
| #include "base/memory/ref_counted.h" |
| #include "base/synchronization/lock.h" |
| #include "content/common/content_export.h" |
| #include "content/common/gpu/media/va_surface.h" |
| #include "media/base/video_decoder_config.h" |
| #include "media/base/video_frame.h" |
| -#include "third_party/libva/va/va_x11.h" |
| +#include "third_party/libva/va/va.h" |
| #include "ui/gfx/size.h" |
| +#if defined(USE_X11) |
| +#include "third_party/libva/va/va_x11.h" |
| +#endif // USE_X11 |
| namespace content { |
| @@ -35,7 +37,7 @@ namespace content { |
| // It is also responsible for managing and freeing VABuffers (not VASurfaces), |
| // which are used to queue parameters and slice data to the HW codec, |
| // as well as underlying memory for VASurfaces themselves. |
| -class CONTENT_EXPORT VaapiWrapper { |
| +class CONTENT_EXPORT VaapiWrapper : public base::RefCounted<VaapiWrapper> { |
| public: |
| enum CodecMode { |
| kDecode, |
| @@ -44,19 +46,15 @@ class CONTENT_EXPORT VaapiWrapper { |
| // |report_error_to_uma_cb| will be called independently from reporting |
| // errors to clients via method return values. |
| - static scoped_ptr<VaapiWrapper> Create( |
| + static scoped_refptr<VaapiWrapper> Create( |
| CodecMode mode, |
| media::VideoCodecProfile profile, |
| - Display* x_display, |
| const base::Closure& report_error_to_uma_cb); |
| // Return the supported encode profiles. |
| static std::vector<media::VideoCodecProfile> GetSupportedEncodeProfiles( |
| - Display* x_display, |
| const base::Closure& report_error_to_uma_cb); |
| - ~VaapiWrapper(); |
| - |
| // Create |num_surfaces| backing surfaces in driver for VASurfaces, each |
| // of size |size|. Returns true when successful, with the created IDs in |
| // |va_surfaces| to be managed and later wrapped in VASurfaces. |
| @@ -64,7 +62,7 @@ class CONTENT_EXPORT VaapiWrapper { |
| // again to free the allocated surfaces first, but is not required to do so |
| // at destruction time, as this will be done automatically from |
| // the destructor. |
| - bool CreateSurfaces(gfx::Size size, |
| + bool CreateSurfaces(const gfx::Size& size, |
| size_t num_surfaces, |
| std::vector<VASurfaceID>* va_surfaces); |
| @@ -97,12 +95,6 @@ class CONTENT_EXPORT VaapiWrapper { |
| // buffers. Return false if Execute() fails. |
| bool ExecuteAndDestroyPendingBuffers(VASurfaceID va_surface_id); |
| - // Put data from |va_surface_id| into |x_pixmap| of size |size|, |
| - // converting/scaling to it. |
| - bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id, |
| - Pixmap x_pixmap, |
| - gfx::Size dest_size); |
| - |
| // Returns true if the VAAPI version is less than the specified version. |
| bool VAAPIVersionLessThan(int major, int minor); |
| @@ -139,16 +131,24 @@ class CONTENT_EXPORT VaapiWrapper { |
| // Destroy all previously-allocated (and not yet destroyed) coded buffers. |
| void DestroyCodedBuffers(); |
| +#if defined(USE_X11) |
| + // Put data from |va_surface_id| into |x_pixmap| of size |
| + // |dest_size|, converting/scaling to it. |
| + bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id, |
| + Pixmap x_pixmap, |
| + gfx::Size dest_size); |
| +#endif // USE_X11 |
| + |
| private: |
| + friend class base::RefCounted<VaapiWrapper>; |
| VaapiWrapper(); |
| + ~VaapiWrapper(); |
| bool Initialize(CodecMode mode, |
| media::VideoCodecProfile profile, |
| - Display* x_display, |
| - const base::Closure& report_error_to_uma_cb); |
| + const base::Closure& report_error__to_uma_cb); |
|
piman
2014/12/17 18:57:06
nit: spurious _ added
|
| void Deinitialize(); |
| - bool VaInitialize(Display* x_display, |
| - const base::Closure& report_error_to_uma_cb); |
| + bool VaInitialize(const base::Closure& report_error_to_uma_cb); |
| bool GetSupportedVaProfiles(std::vector<VAProfile>* profiles); |
| bool IsEntrypointSupported(VAProfile va_profile, VAEntrypoint entrypoint); |
| bool AreAttribsSupported(VAProfile va_profile, |
| @@ -179,7 +179,7 @@ class CONTENT_EXPORT VaapiWrapper { |
| int major_version_, minor_version_; |
| // VA handles. |
| - // Both valid after successful Initialize() and until Deinitialize(). |
| + // All valid after successful Initialize() and until Deinitialize(). |
| VADisplay va_display_; |
| VAConfigID va_config_id_; |
| // Created for the current set of va_surface_ids_ in CreateSurfaces() and |