From: Boyuan Zhang Date: Thu, 23 Mar 2023 13:34:55 +0000 (-0400) Subject: frontends/va: check decoder in va surface call X-Git-Tag: upstream/23.3.3~11218 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2c1da7fbde06900433993fda7813114510d59c0c;p=platform%2Fupstream%2Fmesa.git frontends/va: check decoder in va surface call Add a check to see if decoder is valid before using it. Currently we only support decode and encode operations, return unsupported error for all other entrypoints. Signed-off-by: Boyuan Zhang Reviewed-by: Leo Liu Part-of: --- diff --git a/src/gallium/frontends/va/surface.c b/src/gallium/frontends/va/surface.c index 936fd31..21cf8ad 100644 --- a/src/gallium/frontends/va/surface.c +++ b/src/gallium/frontends/va/surface.c @@ -132,6 +132,11 @@ vlVaSyncSurface(VADriverContextP ctx, VASurfaceID render_target) return VA_STATUS_ERROR_INVALID_CONTEXT; } + if (!context->decoder) { + mtx_unlock(&drv->mutex); + return VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; + } + if (context->decoder->entrypoint == PIPE_VIDEO_ENTRYPOINT_BITSTREAM) { int ret = 0; @@ -212,6 +217,11 @@ vlVaQuerySurfaceStatus(VADriverContextP ctx, VASurfaceID render_target, VASurfac return VA_STATUS_ERROR_INVALID_CONTEXT; } + if (!context->decoder) { + mtx_unlock(&drv->mutex); + return VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; + } + if (context->decoder->entrypoint == PIPE_VIDEO_ENTRYPOINT_ENCODE) { if(surf->feedback == NULL) *status=VASurfaceReady;