[Libva] [PATCH] MADI: Reject reference surfaces in the wrong format
Gwenole Beauchesne
gb.devel at gmail.com
Tue Aug 26 21:00:13 PDT 2014
Hi,
2014-08-14 13:04 GMT+02:00 Qu, Pengfei <pengfei.qu at intel.com>:
>
> From b62ef279566e8d2548b519f5b62abceede1042c7 Mon Sep 17 00:00:00 2001
> From: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
> Date: Thu, 29 May 2014 10:21:03 +0100
> Subject: [PATCH] MADI: Reject reference surfaces in the wrong format
>
> SNB and IVB DNDI only work with NV12 surfaces. Reject anything else.
>
> Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
> ---
> src/i965_post_processing.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/src/i965_post_processing.c b/src/i965_post_processing.c index 5f5a508..44ba3e0 100755
> --- a/src/i965_post_processing.c
> +++ b/src/i965_post_processing.c
> @@ -3106,6 +3106,11 @@ pp_nv12_dndi_initialize(VADriverContextP ctx, struct i965_post_processing_contex
> return VA_STATUS_ERROR_UNIMPLEMENTED;
> }
>
> + if (previous_in_obj_surface && previous_in_obj_surface->fourcc != VA_FOURCC_NV12) {
> + WARN_ONCE("Forward temporal reference must be NV12\n");
> + return VA_STATUS_ERROR_INVALID_PARAMETER;
> + }
> +
> /* source (temporal reference) YUV surface index 5 */
> orig_w = previous_in_obj_surface->orig_width;
> orig_h = previous_in_obj_surface->orig_height;
> @@ -3605,6 +3610,11 @@ gen7_pp_nv12_dndi_initialize(VADriverContextP ctx, struct i965_post_processing_c
> return VA_STATUS_ERROR_UNIMPLEMENTED;
> }
>
> + if (previous_in_obj_surface && previous_in_obj_surface->fourcc != VA_FOURCC_NV12) {
> + WARN_ONCE("Forward temporal reference must be NV12\n");
> + return VA_STATUS_ERROR_INVALID_PARAMETER;
> + }
> +
> /* source (temporal reference) YUV surface index 4 */
> orig_w = previous_in_obj_surface->orig_width;
> orig_h = previous_in_obj_surface->orig_height;
> --
> 1.9.0
> _______________________________________________
> Libva mailing list
> Libva at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libva
This looks OK as a last resort solution, but it should be completed
with an earlier check in vaQueryVideoProcPipelineCaps(). This is the
function used to validate the filter chain somehow.
Besides, I believe we should probably return
VA_STATUS_ERROR_INVALID_IMAGE_FORMAT or any other
VA_STATUS_ERROR_INVALID_SURFACE_FORMAT that yields the same error
code?
Thanks,
--
Gwenole Beauchesne
Intel Corporation SAS / 2 rue de Paris, 92196 Meudon Cedex, France
Registration Number (RCS): Nanterre B 302 456 199
More information about the Libva
mailing list