[Libva] [LIBVA_INTEL_DRIVER][PATCH V2 1/3] Move some VPP structures/functions into the common files to support more platforms
Zhao Yakui
yakui.zhao at intel.com
Fri Nov 25 08:59:11 UTC 2016
On 11/25/2016 04:36 PM, Xiang, Haihao wrote:
>
>> This is to define some common structures/functions so that they can
>> be used on more platforms when adding new VPP functions.
>
> Here new VPP functions just means CSC and scaling, right?
Yes.
Thanks
Yakui
>
>>
>> Signed-off-by: Zhao Yakui<yakui.zhao at intel.com>
>> ---
>> src/Makefile.am | 2 ++
>> src/gen75_picture_process.c | 1 +
>> src/gen8_post_processing.h | 8 -----
>> src/gen9_post_processing.c | 34 ++-------------------
>> src/intel_common_vpp_internal.h | 67
>> +++++++++++++++++++++++++++++++++++++++++
>> src/intel_gen_vppapi.h | 49 ++++++++++++++++++++++++++++++
>> 6 files changed, 121 insertions(+), 40 deletions(-)
>> create mode 100644 src/intel_common_vpp_internal.h
>> create mode 100644 src/intel_gen_vppapi.h
>>
>> diff --git a/src/Makefile.am b/src/Makefile.am
>> index b6e25d1..c262820 100755
>> --- a/src/Makefile.am
>> +++ b/src/Makefile.am
>> @@ -153,6 +153,8 @@ source_h = \
>> gen9_vp9_encapi.h \
>> gen9_vp9_const_def.h \
>> gen9_vp9_encoder_kernels.h \
>> + intel_gen_vppapi.h \
>> + intel_common_vpp_internal.h \
>> $(NULL)
>>
>> # convenience library that can be linked by driver and tests
>> diff --git a/src/gen75_picture_process.c
>> b/src/gen75_picture_process.c
>> index 46c4ed5..380015d 100644
>> --- a/src/gen75_picture_process.c
>> +++ b/src/gen75_picture_process.c
>> @@ -39,6 +39,7 @@
>> #include "i965_post_processing.h"
>> #include "gen75_picture_process.h"
>> #include "gen8_post_processing.h"
>> +#include "intel_gen_vppapi.h"
>>
>> extern struct hw_context *
>> i965_proc_context_init(VADriverContextP ctx,
>> diff --git a/src/gen8_post_processing.h b/src/gen8_post_processing.h
>> index bd0601a..18f523e 100644
>> --- a/src/gen8_post_processing.h
>> +++ b/src/gen8_post_processing.h
>> @@ -85,13 +85,5 @@
>> gen8_post_processing_context_common_init(VADriverContextP ctx,
>> struct pp_module
>> *pp_modules,
>> int num_pp_modules,
>> struct intel_batchbuffer
>> *batch);
>> -extern VAStatus
>> -gen9_p010_scaling_post_processing(
>> - VADriverContextP ctx,
>> - struct i965_post_processing_context *pp_context,
>> - struct i965_surface *src_surface,
>> - VARectangle *src_rect,
>> - struct i965_surface *dst_surface,
>> - VARectangle *dst_rect);
>>
>> #endif
>> diff --git a/src/gen9_post_processing.c b/src/gen9_post_processing.c
>> index 1e2d33a..efa8216 100644
>> --- a/src/gen9_post_processing.c
>> +++ b/src/gen9_post_processing.c
>> @@ -38,6 +38,8 @@
>> #include "intel_media.h"
>>
>> #include "gen8_post_processing.h"
>> +#include "intel_gen_vppapi.h"
>> +#include "intel_common_vpp_internal.h"
>>
>> static const uint32_t pp_null_gen9[][4] = {
>> };
>> @@ -106,38 +108,6 @@ static const uint32_t pp_nv12_blending_gen9[][4]
>> = {
>> #define MAX_SCALING_SURFACES 16
>>
>> #define DEFAULT_MOCS 0x02
>> -#define SRC_MSB 0x0001
>> -#define DST_MSB 0x0002
>> -#define SRC_PACKED 0x0004
>> -#define DST_PACKED 0x0008
>> -#define PACKED_MASK 0x000C
>> -
>> -#define BTI_SCALING_INPUT_Y 0
>> -#define BTI_SCALING_OUTPUT_Y 8
>> -
>> -struct scaling_input_parameter {
>> - unsigned int input_data[5];
>> -
>> - float inv_width;
>> - float inv_height;
>> -
>> - struct {
>> - unsigned int src_msb : 1;
>> - unsigned int dst_msb : 1;
>> - unsigned int src_packed : 1;
>> - unsigned int dst_packed : 1;
>> - unsigned int reserved : 28;
>> - } dw7;
>> -
>> - int x_dst;
>> - int y_dst;
>> - float x_factor; // src_rect_width / dst_rect_width /
>> Surface_width
>> - float y_factor; // src_rect_height / dst_rect_height /
>> Surface_height
>> - float x_orig;
>> - float y_orig;
>> - unsigned int bti_input;
>> - unsigned int bti_output;
>> -};
>>
>> static const uint32_t pp_10bit_scaling_gen9[][4] = {
>> #include "shaders/post_processing/gen9/conv_p010.g9b"
>> diff --git a/src/intel_common_vpp_internal.h
>> b/src/intel_common_vpp_internal.h
>> new file mode 100644
>> index 0000000..5917533
>> --- /dev/null
>> +++ b/src/intel_common_vpp_internal.h
>> @@ -0,0 +1,67 @@
>> +/*
>> + * Copyright © 2016 Intel Corporation
>> + *
>> + * Permission is hereby granted, free of charge, to any person
>> obtaining a
>> + * copy of this software and associated documentation files (the
>> + * "Software"), to deal in the Software without restriction,
>> including
>> + * without limitation the rights to use, copy, modify, merge,
>> publish,
>> + * distribute, sub license, and/or sell copies of the Software, and
>> to
>> + * permit persons to whom the Software is furnished to do so,
>> subject to
>> + * the following conditions:
>> + *
>> + * The above copyright notice and this permission notice (including
>> the
>> + * next paragraph) shall be included in all copies or substantial
>> portions
>> + * of the Software.
>> + *
>> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
>> EXPRESS
>> + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
>> + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-
>> INFRINGEMENT.
>> + * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE
>> LIABLE FOR
>> + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
>> CONTRACT,
>> + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
>> + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
>> + *
>> + * Authors:
>> + * Zhao Yakui<yakui.zhao at intel.com>
>> + *
>> + */
>> +
>> +#ifndef _INTEL_COMMON_VPP_INTERNAL_H_
>> +#define _INTEL_COMMON_VPP_INTERNAL_H_
>> +
>> +/* the below is defined for YUV420 format scaling */
>> +#define SRC_MSB 0x0001
>> +#define DST_MSB 0x0002
>> +#define SRC_PACKED 0x0004
>> +#define DST_PACKED 0x0008
>> +#define PACKED_MASK 0x000C
>> +
>> +#define BTI_SCALING_INPUT_Y 0
>> +#define BTI_SCALING_OUTPUT_Y 8
>> +
>> +struct scaling_input_parameter {
>> + unsigned int input_data[5];
>> +
>> + float inv_width;
>> + float inv_height;
>> +
>> + struct {
>> + unsigned int src_msb : 1;
>> + unsigned int dst_msb : 1;
>> + unsigned int src_packed : 1;
>> + unsigned int dst_packed : 1;
>> + unsigned int reserved : 28;
>> + } dw7;
>> +
>> + int x_dst;
>> + int y_dst;
>> + float x_factor; // src_rect_width / dst_rect_width /
>> Surface_width
>> + float y_factor; // src_rect_height / dst_rect_height /
>> Surface_height
>> + float x_orig;
>> + float y_orig;
>> + unsigned int bti_input;
>> + unsigned int bti_output;
>> +};
>> +
>> +
>> +#endif // _INTEL_COMMON_VPP_INTERNAL_H_
>> diff --git a/src/intel_gen_vppapi.h b/src/intel_gen_vppapi.h
>> new file mode 100644
>> index 0000000..270219e
>> --- /dev/null
>> +++ b/src/intel_gen_vppapi.h
>> @@ -0,0 +1,49 @@
>> +/*
>> + * Copyright © 2016 Intel Corporation
>> + *
>> + * Permission is hereby granted, free of charge, to any person
>> obtaining a
>> + * copy of this software and associated documentation files (the
>> + * "Software"), to deal in the Software without restriction,
>> including
>> + * without limitation the rights to use, copy, modify, merge,
>> publish,
>> + * distribute, sub license, and/or sell copies of the Software, and
>> to
>> + * permit persons to whom the Software is furnished to do so,
>> subject to
>> + * the following conditions:
>> + *
>> + * The above copyright notice and this permission notice (including
>> the
>> + * next paragraph) shall be included in all copies or substantial
>> portions
>> + * of the Software.
>> + *
>> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
>> EXPRESS
>> + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
>> + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-
>> INFRINGEMENT.
>> + * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE
>> LIABLE FOR
>> + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
>> CONTRACT,
>> + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
>> + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
>> + *
>> + * Authors:
>> + * Zhao Yakui<yakui.zhao at intel.com>
>> + *
>> + */
>> +
>> +#ifndef _INTEL_GEN_VPPAPI_H_
>> +#define _INTEL_GEN_VPPAPI_H_
>> +
>> +#include<va/va.h>
>> +#include<va/va_backend.h>
>> +
>> +/*
>> +struct i965_surface;
>> +struct i965_post_processing_context;
>> +*/
>> +
>> +extern VAStatus
>> +gen9_p010_scaling_post_processing(
>> + VADriverContextP ctx,
>> + struct i965_post_processing_context *pp_context,
>> + struct i965_surface *src_surface,
>> + VARectangle *src_rect,
>> + struct i965_surface *dst_surface,
>> + VARectangle *dst_rect);
>> +
>> +#endif // _INTE_GEN_VPPAPI_H_
More information about the Libva
mailing list