[Libva] [PATCH] Allow va{Get,Put}Image() to use derived image

Sean V Kelley seanvk at posteo.de
Tue Mar 31 11:25:02 PDT 2015



On 03/30/2015 09:48 PM, Xiang, Haihao wrote:
> From: "Xiang, Haihao" <haihao.xiang at intel.com>
> 
> The surface can't be the same surface from which the image has
> been derived.
> 
> Signed-off-by: Xiang, Haihao <haihao.xiang at intel.com>

lgtm

Reviewed-by: Sean V Kelley <seanvk at posteo.de>
Tested-by: Sean V Kelley <seanvk at posteo.de>

> ---
>  src/i965_drv_video.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c
> index d87a232..0f0e7c6 100644
> --- a/src/i965_drv_video.c
> +++ b/src/i965_drv_video.c
> @@ -363,13 +363,14 @@ is_surface_busy(struct i965_driver_data *i965,
>  
>  /* Checks whether the image is in busy state */
>  static bool
> -is_image_busy(struct i965_driver_data *i965, struct object_image *obj_image)
> +is_image_busy(struct i965_driver_data *i965, struct object_image *obj_image, VASurfaceID surface)
>  {
>      struct object_buffer *obj_buffer;
>  
>      assert(obj_image != NULL);
>  
> -    if (obj_image->derived_surface != VA_INVALID_ID)
> +    if (obj_image->derived_surface != VA_INVALID_ID &&
> +        obj_image->derived_surface == surface)
>          return true;
>  
>      obj_buffer = BUFFER(obj_image->image.buf);
> @@ -4108,7 +4109,7 @@ i965_GetImage(VADriverContextP ctx,
>  
>      if (!obj_image || !obj_image->bo)
>          return VA_STATUS_ERROR_INVALID_IMAGE;
> -    if (is_image_busy(i965, obj_image))
> +    if (is_image_busy(i965, obj_image, surface))
>          return VA_STATUS_ERROR_SURFACE_BUSY;
>  
>      if (x < 0 || y < 0)
> @@ -4419,7 +4420,7 @@ i965_PutImage(VADriverContextP ctx,
>  
>      if (!obj_image || !obj_image->bo)
>          return VA_STATUS_ERROR_INVALID_IMAGE;
> -    if (is_image_busy(i965, obj_image))
> +    if (is_image_busy(i965, obj_image, surface))
>          return VA_STATUS_ERROR_SURFACE_BUSY;
>  
>      if (src_x < 0 ||
> 


More information about the Libva mailing list