> 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? > > Signed-off-by: Zhao Yakui <yakui.z...@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.z...@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.z...@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_ _______________________________________________ Libva mailing list Libva@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libva