[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