[Libva] [PATCH V3: 1/4] HEVC10bit ENC: add private surface for p010 conversion to nv12
Zhao Yakui
yakui.zhao at intel.com
Tue Sep 6 00:29:33 UTC 2016
On 09/06/2016 08:09 AM, Pengfei Qu wrote:
> Signed-off-by: Pengfei Qu<Pengfei.Qu at intel.com>
This looks good to me.
Add: Reviewed-by: Zhao Yakui <yakui.zhao at intel.com>
> ---
> src/intel_media.h | 5 +++++
> src/intel_media_common.c | 10 ++++++++++
> 2 files changed, 15 insertions(+)
>
> diff --git a/src/intel_media.h b/src/intel_media.h
> index 87d315f..4a55a93 100644
> --- a/src/intel_media.h
> +++ b/src/intel_media.h
> @@ -57,6 +57,11 @@ struct gen_hevc_surface
> {
> GenCodecSurface base;
> dri_bo *motion_vector_temporal_bo;
> + //Encoding HEVC10:internal surface keep for P010->NV12 , this is only for hevc10 to save the P010->NV12
> + struct object_surface *nv12_surface_obj;
> + VASurfaceID nv12_surface_id;
> + VADriverContextP ctx;
> + int has_p010_to_nv12_done;
> };
>
> typedef struct gen_vp9_surface GenVP9Surface;
> diff --git a/src/intel_media_common.c b/src/intel_media_common.c
> index 8821bc4..01828b0 100644
> --- a/src/intel_media_common.c
> +++ b/src/intel_media_common.c
> @@ -29,6 +29,7 @@
>
> #include "intel_driver.h"
> #include "intel_media.h"
> +#include "i965_drv_video.h"
>
> static pthread_mutex_t free_avc_surface_lock = PTHREAD_MUTEX_INITIALIZER;
>
> @@ -92,6 +93,9 @@ gen_free_hevc_surface(void **data)
>
> pthread_mutex_lock(&free_hevc_surface_lock);
>
> + if (!data || !*data)
> + return;
> +
> hevc_surface = *data;
>
> if (!hevc_surface) {
> @@ -102,6 +106,12 @@ gen_free_hevc_surface(void **data)
> dri_bo_unreference(hevc_surface->motion_vector_temporal_bo);
> hevc_surface->motion_vector_temporal_bo = NULL;
>
> + if (hevc_surface->nv12_surface_obj) {
> + i965_DestroySurfaces(hevc_surface->ctx,&hevc_surface->nv12_surface_id, 1);
> + hevc_surface->nv12_surface_id = VA_INVALID_SURFACE;
> + hevc_surface->nv12_surface_obj = NULL;
> + }
> +
> free(hevc_surface);
> *data = NULL;
>
More information about the Libva
mailing list