| 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 fe53552336badfe6bf46a3d3b624506820bf352f..d21f3f1ee5ec52ece294ce53594c01e4f7252846 100644
|
| --- a/content/common/gpu/media/vaapi_wrapper.h
|
| +++ b/content/common/gpu/media/vaapi_wrapper.h
|
| @@ -45,10 +45,20 @@ class CONTENT_EXPORT VaapiWrapper {
|
| kEncode,
|
| };
|
|
|
| + // Create VaapiWrapper for VAProfile.
|
| // |report_error_to_uma_cb| will be called independently from reporting
|
| // errors to clients via method return values.
|
| static scoped_ptr<VaapiWrapper> Create(
|
| CodecMode mode,
|
| + VAProfile profile,
|
| + const base::Closure& report_error_to_uma_cb);
|
| +
|
| + // Create VaapiWrapper for VideoCodecProfile. It maps VideoCodecProfile
|
| + // |profile| to VAProfile.
|
| + // |report_error_to_uma_cb| will be called independently from reporting
|
| + // errors to clients via method return values.
|
| + static scoped_ptr<VaapiWrapper> CreateForVideoCodec(
|
| + CodecMode mode,
|
| media::VideoCodecProfile profile,
|
| const base::Closure& report_error_to_uma_cb);
|
|
|
| @@ -118,16 +128,29 @@ class CONTENT_EXPORT VaapiWrapper {
|
| // Returns true if the VAAPI version is less than the specified version.
|
| bool VAAPIVersionLessThan(int major, int minor);
|
|
|
| - // Get a VAImage from a VASurface and map it into memory. The VAImage should
|
| - // be released using the ReturnVaImage function. Returns true when successful.
|
| - // This is intended for testing only.
|
| - bool GetVaImageForTesting(VASurfaceID va_surface_id,
|
| - VAImage* image,
|
| - void** mem);
|
| + // Get a VAImage from a VASurface and map it into memory. The size and format
|
| + // are derived from the surface. Use GetVaImage() instead if |format| or
|
| + // |size| are different from surface internal representation. The VAImage
|
| + // should be released using the ReturnVaImage function. Returns true when
|
| + // successful.
|
| + bool GetDerivedVaImage(VASurfaceID va_surface_id, VAImage* image, void** mem);
|
| +
|
| + // Get a VAImage from a VASurface |va_surface_id| and map it into memory with
|
| + // given |format| and |size|. The output is |image| and the mapped memory is
|
| + // |mem|. If |format| doesn't equal to the internal format, the underlying
|
| + // implementation will do format conversion if supported. |size| should be
|
| + // smaller than or equal to the surface. If |size| is smaller, the image will
|
| + // be cropped. The VAImage should be released using the ReturnVaImage
|
| + // function. Returns true when successful.
|
| + bool GetVaImage(VASurfaceID va_surface_id,
|
| + VAImageFormat* format,
|
| + const gfx::Size& size,
|
| + VAImage* image,
|
| + void** mem);
|
|
|
| // Release the VAImage (and the associated memory mapping) obtained from
|
| - // GetVaImage(). This is intended for testing only.
|
| - void ReturnVaImageForTesting(VAImage* image);
|
| + // GetVaImage() or GetDerivedVaImage().
|
| + void ReturnVaImage(VAImage* image);
|
|
|
| // Upload contents of |frame| into |va_surface_id| for encode.
|
| bool UploadVideoFrameToSurface(const scoped_refptr<media::VideoFrame>& frame,
|
| @@ -162,9 +185,7 @@ class CONTENT_EXPORT VaapiWrapper {
|
| private:
|
| VaapiWrapper();
|
|
|
| - bool Initialize(CodecMode mode,
|
| - media::VideoCodecProfile profile,
|
| - const base::Closure& report_error__to_uma_cb);
|
| + bool Initialize(CodecMode mode, VAProfile va_profile);
|
| void Deinitialize();
|
| bool VaInitialize(const base::Closure& report_error_to_uma_cb);
|
| bool GetSupportedVaProfiles(std::vector<VAProfile>* profiles);
|
|
|