From d9e4d8c266c029ec70793e1d1b69a4d823044f99 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 13 Jun 2017 17:58:36 +0100 Subject: [PATCH] vc_image: Remove structure definition duplication interface/vctypes/vc_image_structs.h gained all the VC_IMAGE structures, but they didn't removed from helpers/vc_image/vc_image.h. Remove this duplication. --- helpers/vc_image/vc_image.h | 185 ---------------------- interface/vctypes/vc_image_structs.h | 224 +++++++++++++++++++++++++++ vcinclude/vc_image_types.h | 1 + 3 files changed, 225 insertions(+), 185 deletions(-) create mode 100644 interface/vctypes/vc_image_structs.h diff --git a/helpers/vc_image/vc_image.h b/helpers/vc_image/vc_image.h index 1e5bf22..a84e792 100644 --- a/helpers/vc_image/vc_image.h +++ b/helpers/vc_image/vc_image.h @@ -119,39 +119,6 @@ extern "C" { #define VC_IMAGE_PROPLIST_COUNT(x) (sizeof(x)/sizeof(x[0])) #define VC_IMAGE_PROPLIST_NULL ((VC_IMAGE_PROPLIST_T*)0) - /* Format specific infos for vc images */ - - /* YUV information, co-sited h/v flags & colour space words */ - typedef enum { - VC_IMAGE_YUVINFO_UNSPECIFIED = 0, /* Unknown or unset - defaults to BT601 interstitial */ - - /* colour-space conversions data [4 bits] */ - /* Note that colour conversions for SMPTE 170M are identical to BT.601 */ - VC_IMAGE_YUVINFO_CSC_ITUR_BT601 = 1, /* ITU-R BT.601-5 [SDTV] (compatible with VideoCore-II) */ - VC_IMAGE_YUVINFO_CSC_ITUR_BT709 = 2, /* ITU-R BT.709-3 [HDTV] */ - VC_IMAGE_YUVINFO_CSC_JPEG_JFIF = 3, /* JPEG JFIF */ - VC_IMAGE_YUVINFO_CSC_FCC = 4, /* Title 47 Code of Federal Regulations (2003) 73.682 (a) (20) */ - VC_IMAGE_YUVINFO_CSC_SMPTE_240M = 5, /* Society of Motion Picture and Television Engineers 240M (1999) */ - VC_IMAGE_YUVINFO_CSC_ITUR_BT470_2_M = 6, /* ITU-R BT.470-2 System M */ - VC_IMAGE_YUVINFO_CSC_ITUR_BT470_2_BG = 7, /* ITU-R BT.470-2 System B,G */ - VC_IMAGE_YUVINFO_CSC_JPEG_JFIF_Y16_255 = 8, /* JPEG JFIF, but with 16..255 luma */ - VC_IMAGE_YUVINFO_CSC_CUSTOM = 15, /* Custom colour matrix follows header */ - VC_IMAGE_YUVINFO_CSC_SMPTE_170M = VC_IMAGE_YUVINFO_CSC_ITUR_BT601, - - /* co-sited flags, assumed interstitial if not co-sited [2 bits] */ - VC_IMAGE_YUVINFO_H_COSITED = 256, - VC_IMAGE_YUVINFO_V_COSITED = 512, - - VC_IMAGE_YUVINFO_TOP_BOTTOM = 1024, - VC_IMAGE_YUVINFO_DECIMATED = 2048, - VC_IMAGE_YUVINFO_PACKED = 4096, - - /* Certain YUV image formats can either be V/U interleaved or U/V interleaved */ - VC_IMAGE_YUVINFO_IS_VU = 0x8000, - - /* Force Metaware to use 16 bits */ - VC_IMAGE_YUVINFO_FORCE_ENUM_16BIT = 0xffff, - } VC_IMAGE_YUVINFO_T; /* Useful bits that can be set, to check validity we'll assume that all other bits should be zero and enforce this in vc_image functions to catch people @@ -253,12 +220,6 @@ extern "C" { #endif //#if !defined __SYMBIAN32__ -#define VC_IMAGE_YUV_UV_STRIPE_WIDTH_LOG2 7 -#define VC_IMAGE_YUV_UV_STRIPE_WIDTH (1 << VC_IMAGE_YUV_UV_STRIPE_WIDTH_LOG2) - -#define VC_IMAGE_YUV_UV32_STRIPE_WIDTH_LOG2 5 -#define VC_IMAGE_YUV_UV32_STRIPE_WIDTH (1 << VC_IMAGE_YUV_UV32_STRIPE_WIDTH_LOG2) - #define is_valid_vc_image_hndl(_img, _type) ((_img) != NULL \ && (_img)->image_data == NULL \ && ((_img)->info.info & ~VC_IMAGE_INFO_VALIDBITS) == 0 \ @@ -283,142 +244,6 @@ extern "C" { #if !defined __SYMBIAN32__ - /* The image structure. */ - typedef struct vc_image_extra_uv_s { - void *u, *v; - int vpitch; - } VC_IMAGE_EXTRA_UV_T; - - typedef struct vc_image_extra_rgba_s { - unsigned component_order : 24, /* diagnostic use only */ - normalised_alpha : 1, - transparent_colour: 1, - unused_26_31 : 6; - unsigned int arg; - } VC_IMAGE_EXTRA_RGBA_T; - - typedef struct vc_image_extra_pal_s { - short *palette; - int palette32 : 1; - } VC_IMAGE_EXTRA_PAL_T; - -// These fields are subject to change / being moved around - typedef struct vc_image_extra_tf_s { -signed int mipmap_levels : 8; -unsigned int xxx : 23; -unsigned int cube_map : 1; - void *palette; - } VC_IMAGE_EXTRA_TF_T; - - typedef struct vc_image_extra_bayer_s { - unsigned short order; - unsigned short format; - int block_length; - } VC_IMAGE_EXTRA_BAYER_T; - -//The next block can be used with Visual C++ -//which treats enums as long ints - typedef struct vc_image_extra_msbayer_s { - unsigned char order; - unsigned char format; - unsigned char dummy1; - unsigned char dummy2; - int block_length; - } VC_IMAGE_EXTRA_MSBAYER_T; - - typedef struct vc_image_extra_codec_s { - int fourcc; - int maxsize; //NB this will be copied to image.size in parmalloc() - } VC_IMAGE_EXTRA_CODEC_T; - -#define VC_IMAGE_OPENGL_RGBA32 0x14011908 //GL_UNSIGNED_BYTE GL_RGBA -#define VC_IMAGE_OPENGL_RGB24 0x14011907 //GL_UNSIGNED_BYTE GL_RGB -#define VC_IMAGE_OPENGL_RGBA16 0x80331908 //GL_UNSIGNED_SHORT_4_4_4_4 GL_RGBA -#define VC_IMAGE_OPENGL_RGBA5551 0x80341908 //GL_UNSIGNED_SHORT_5_5_5_1 GL_RGBA -#define VC_IMAGE_OPENGL_RGB565 0x83631907 //GL_UNSIGNED_SHORT_5_6_5 GL_RGB -#define VC_IMAGE_OPENGL_YA88 0x1401190A //GL_UNSIGNED_BYTE GL_LUMINANCE_ALPHA -#define VC_IMAGE_OPENGL_Y8 0x14011909 //GL_UNSIGNED_BYTE GL_LUMINANCE -#define VC_IMAGE_OPENGL_A8 0x14011906 //GL_UNSIGNED_BYTE GL_ALPHA -#define VC_IMAGE_OPENGL_ETC1 0x8D64 //GL_ETC1_RGB8_OES -#define VC_IMAGE_OPENGL_PALETTE4_RGB24 0x8B90 //GL_PALETTE4_RGB8_OES -#define VC_IMAGE_OPENGL_PALETTE4_RGBA32 0x8B91 //GL_PALETTE4_RGBA8_OES -#define VC_IMAGE_OPENGL_PALETTE4_RGB565 0x8B92 //GL_PALETTE4_R5_G6_B5_OES -#define VC_IMAGE_OPENGL_PALETTE4_RGBA16 0x8B93 //GL_PALETTE4_RGBA4_OES -#define VC_IMAGE_OPENGL_PALETTE4_RGB5551 0x8B94 //GL_PALETTE4_RGB5_A1_OES -#define VC_IMAGE_OPENGL_PALETTE8_RGB24 0x8B95 //GL_PALETTE8_RGB8_OES -#define VC_IMAGE_OPENGL_PALETTE8_RGBA32 0x8B96 //GL_PALETTE8_RGBA8_OES -#define VC_IMAGE_OPENGL_PALETTE8_RGB565 0x8B97 //GL_PALETTE8_R5_G6_B5_OES -#define VC_IMAGE_OPENGL_PALETTE8_RGBA16 0x8B98 //GL_PALETTE8_RGBA4_OES -#define VC_IMAGE_OPENGL_PALETTE8_RGB5551 0x8B99 //GL_PALETTE8_RGB5_A1_OES - - typedef struct vc_image_extra_opengl_s { - unsigned int format_and_type; - void const *palette; - } VC_IMAGE_EXTRA_OPENGL_T; - - typedef union { - VC_IMAGE_EXTRA_UV_T uv; - VC_IMAGE_EXTRA_RGBA_T rgba; - VC_IMAGE_EXTRA_PAL_T pal; - VC_IMAGE_EXTRA_TF_T tf; - VC_IMAGE_EXTRA_BAYER_T bayer; - VC_IMAGE_EXTRA_MSBAYER_T msbayer; - VC_IMAGE_EXTRA_CODEC_T codec; - VC_IMAGE_EXTRA_OPENGL_T opengl; - } VC_IMAGE_EXTRA_T; - - /* structure containing various colour meta-data for each format */ - typedef union { -#ifdef __HIGHC__ - VC_IMAGE_YUVINFO_T yuv; /* We know Metaware will use 16 bits for this enum, so use the correct type for debug info */ -#else - unsigned short yuv; /* Information pertinent to all YUV implementations */ -#endif - unsigned short info; /* dummy, force size to min 16 bits */ - } VC_IMAGE_INFO_T; - - - /** - * Image handle object, which must be locked before image data becomes - * accessible. - * - * A handle to an image where the image data does not have a guaranteed - * storage location. A call to \c vc_image_lock() must be made to convert - * this into a \c VC_IMAGE_BUF_T, which guarantees that image data can - * be accessed safely. - * - * This type will also be used in cases where it's unclear whether or not - * the buffer is already locked, and in legacy code. - */ - struct VC_IMAGE_T { -#ifdef __HIGHC__ - VC_IMAGE_TYPE_T type; /* Metaware will use 16 bits for this enum - so use the correct type for debug info */ -#else - unsigned short type; /* should restrict to 16 bits */ -#endif - VC_IMAGE_INFO_T info; /* format-specific info; zero for VC02 behaviour */ - unsigned short width; /* width in pixels */ - unsigned short height; /* height in pixels */ - int pitch; /* pitch of image_data array in bytes */ - int size; /* number of bytes available in image_data array */ - void *image_data; /* pixel data */ - VC_IMAGE_EXTRA_T extra; /* extra data like palette pointer */ - VC_METADATA_HEADER_T *metadata; /* metadata header for the image */ - struct opaque_vc_pool_object_s *pool_object; /* nonNULL if image was allocated from a vc_pool */ - MEM_HANDLE_T mem_handle; /* the mem handle for relocatable memory storage */ - int metadata_size; /* size of metadata of each channel in bytes */ - int channel_offset; /* offset of consecutive channels in bytes */ - uint32_t video_timestamp;/* 90000 Hz RTP times domain - derived from audio timestamp */ - uint8_t num_channels; /* number of channels (2 for stereo) */ - uint8_t current_channel;/* the channel this header is currently pointing to */ - uint8_t linked_multichann_flag;/* Indicate the header has the linked-multichannel structure*/ - uint8_t is_channel_linked; /* Track if the above structure is been used to link the header - into a linked-mulitchannel image */ - uint8_t channel_index; /* index of the channel this header represents while - it is being linked. */ - uint8_t _dummy[3]; /* pad struct to 64 bytes */ - }; /** * \brief storage for pointers to image headers of the previous and next channel @@ -442,16 +267,6 @@ unsigned int cube_map : 1; */ typedef VC_IMAGE_T VC_IMAGE_BUF_T; -# ifdef __COVERITY__ - /* Currently battling with the size of enums when running through static analysis stage */ - typedef int vc_image_t_size_check[(sizeof(VC_IMAGE_T) == 68) * 2 - 1]; -# else - /* compile time assert to ensure size of VC_IMAGE_T is as expected, if the - compiler kicks out a "negative subscript" message then the size - of VC_IMAGE_T is *not* 64 bytes, which is a problem ... */ - typedef int vc_image_t_size_check[(sizeof(VC_IMAGE_T) == 64) * 2 - 1]; -#endif - /* Point type for use in polygon drawing. */ typedef struct vc_image_point_s { int x, y; diff --git a/interface/vctypes/vc_image_structs.h b/interface/vctypes/vc_image_structs.h new file mode 100644 index 0000000..2dbbaff --- /dev/null +++ b/interface/vctypes/vc_image_structs.h @@ -0,0 +1,224 @@ +/*============================================================================= +Copyright (c) 2006 Broadcom Europe Limited. +Copyright (c) 2005 Alphamosaic Limited. +All rights reserved. + +Project : VideoCore +Module : VideoCore specific header (vc_image_types) + +FILE DESCRIPTION +Common image types used by the vc_image library. +=============================================================================*/ + +#ifndef INTERFACE_VC_IMAGE_STRUCTS_H +#define INTERFACE_VC_IMAGE_STRUCTS_H + +/* This file gets included by the VCE compiler, which gets confused + * easily by the VCOS headers. So cannot include vcos.h here. + */ +#include "interface/vcos/vcos_stdint.h" +#include "interface/vcos/vcos_attr.h" + +#include "helpers/debug_utils/debug_writer.h" + +#include "interface/vctypes/vc_image_types.h" + + /* Format specific infos for vc images */ + + /* YUV information, co-sited h/v flags & colour space words */ + typedef enum { + VC_IMAGE_YUVINFO_UNSPECIFIED = 0, /* Unknown or unset - defaults to BT601 interstitial */ + + /* colour-space conversions data [4 bits] */ + /* Note that colour conversions for SMPTE 170M are identical to BT.601 */ + VC_IMAGE_YUVINFO_CSC_ITUR_BT601 = 1, /* ITU-R BT.601-5 [SDTV] (compatible with VideoCore-II) */ + VC_IMAGE_YUVINFO_CSC_ITUR_BT709 = 2, /* ITU-R BT.709-3 [HDTV] */ + VC_IMAGE_YUVINFO_CSC_JPEG_JFIF = 3, /* JPEG JFIF */ + VC_IMAGE_YUVINFO_CSC_FCC = 4, /* Title 47 Code of Federal Regulations (2003) 73.682 (a) (20) */ + VC_IMAGE_YUVINFO_CSC_SMPTE_240M = 5, /* Society of Motion Picture and Television Engineers 240M (1999) */ + VC_IMAGE_YUVINFO_CSC_ITUR_BT470_2_M = 6, /* ITU-R BT.470-2 System M */ + VC_IMAGE_YUVINFO_CSC_ITUR_BT470_2_BG = 7, /* ITU-R BT.470-2 System B,G */ + VC_IMAGE_YUVINFO_CSC_JPEG_JFIF_Y16_255 = 8, /* JPEG JFIF, but with 16..255 luma */ + VC_IMAGE_YUVINFO_CSC_CUSTOM = 15, /* Custom colour matrix follows header */ + VC_IMAGE_YUVINFO_CSC_SMPTE_170M = VC_IMAGE_YUVINFO_CSC_ITUR_BT601, + + /* co-sited flags, assumed interstitial if not co-sited [2 bits] */ + VC_IMAGE_YUVINFO_H_COSITED = 256, + VC_IMAGE_YUVINFO_V_COSITED = 512, + + VC_IMAGE_YUVINFO_TOP_BOTTOM = 1024, + VC_IMAGE_YUVINFO_DECIMATED = 2048, + VC_IMAGE_YUVINFO_PACKED = 4096, + + /* Certain YUV image formats can either be V/U interleaved or U/V interleaved */ + VC_IMAGE_YUVINFO_IS_VU = 0x8000, + + /* Force Metaware to use 16 bits */ + VC_IMAGE_YUVINFO_FORCE_ENUM_16BIT = 0xffff, + } VC_IMAGE_YUVINFO_T; + +#define VC_IMAGE_YUV_UV_STRIPE_WIDTH_LOG2 7 +#define VC_IMAGE_YUV_UV_STRIPE_WIDTH (1 << VC_IMAGE_YUV_UV_STRIPE_WIDTH_LOG2) + +#define VC_IMAGE_YUV_UV32_STRIPE_WIDTH_LOG2 5 +#define VC_IMAGE_YUV_UV32_STRIPE_WIDTH (1 << VC_IMAGE_YUV_UV32_STRIPE_WIDTH_LOG2) + + /* The image structure. */ + typedef struct vc_image_extra_uv_s { + void *u, *v; + int vpitch; + } VC_IMAGE_EXTRA_UV_T; + + typedef struct vc_image_extra_rgba_s { + unsigned component_order : 24, /* diagnostic use only */ + normalised_alpha : 1, + transparent_colour: 1, + unused_26_31 : 6; + unsigned int arg; + } VC_IMAGE_EXTRA_RGBA_T; + + typedef struct vc_image_extra_pal_s { + short *palette; + int palette32 : 1; + } VC_IMAGE_EXTRA_PAL_T; + +// These fields are subject to change / being moved around + typedef struct vc_image_extra_tf_s { +signed int mipmap_levels : 8; +unsigned int xxx : 23; +unsigned int cube_map : 1; + void *palette; + } VC_IMAGE_EXTRA_TF_T; + + typedef struct vc_image_extra_bayer_s { + unsigned short order; + unsigned short format; + int block_length; + } VC_IMAGE_EXTRA_BAYER_T; + +//The next block can be used with Visual C++ +//which treats enums as long ints + typedef struct vc_image_extra_msbayer_s { + unsigned char order; + unsigned char format; + unsigned char dummy1; + unsigned char dummy2; + int block_length; + } VC_IMAGE_EXTRA_MSBAYER_T; + + typedef struct vc_image_extra_codec_s { + int fourcc; + int maxsize; //NB this will be copied to image.size in parmalloc() + } VC_IMAGE_EXTRA_CODEC_T; + +#define VC_IMAGE_OPENGL_RGBA32 0x14011908 //GL_UNSIGNED_BYTE GL_RGBA +#define VC_IMAGE_OPENGL_RGB24 0x14011907 //GL_UNSIGNED_BYTE GL_RGB +#define VC_IMAGE_OPENGL_RGBA16 0x80331908 //GL_UNSIGNED_SHORT_4_4_4_4 GL_RGBA +#define VC_IMAGE_OPENGL_RGBA5551 0x80341908 //GL_UNSIGNED_SHORT_5_5_5_1 GL_RGBA +#define VC_IMAGE_OPENGL_RGB565 0x83631907 //GL_UNSIGNED_SHORT_5_6_5 GL_RGB +#define VC_IMAGE_OPENGL_YA88 0x1401190A //GL_UNSIGNED_BYTE GL_LUMINANCE_ALPHA +#define VC_IMAGE_OPENGL_Y8 0x14011909 //GL_UNSIGNED_BYTE GL_LUMINANCE +#define VC_IMAGE_OPENGL_A8 0x14011906 //GL_UNSIGNED_BYTE GL_ALPHA +#define VC_IMAGE_OPENGL_ETC1 0x8D64 //GL_ETC1_RGB8_OES +#define VC_IMAGE_OPENGL_PALETTE4_RGB24 0x8B90 //GL_PALETTE4_RGB8_OES +#define VC_IMAGE_OPENGL_PALETTE4_RGBA32 0x8B91 //GL_PALETTE4_RGBA8_OES +#define VC_IMAGE_OPENGL_PALETTE4_RGB565 0x8B92 //GL_PALETTE4_R5_G6_B5_OES +#define VC_IMAGE_OPENGL_PALETTE4_RGBA16 0x8B93 //GL_PALETTE4_RGBA4_OES +#define VC_IMAGE_OPENGL_PALETTE4_RGB5551 0x8B94 //GL_PALETTE4_RGB5_A1_OES +#define VC_IMAGE_OPENGL_PALETTE8_RGB24 0x8B95 //GL_PALETTE8_RGB8_OES +#define VC_IMAGE_OPENGL_PALETTE8_RGBA32 0x8B96 //GL_PALETTE8_RGBA8_OES +#define VC_IMAGE_OPENGL_PALETTE8_RGB565 0x8B97 //GL_PALETTE8_R5_G6_B5_OES +#define VC_IMAGE_OPENGL_PALETTE8_RGBA16 0x8B98 //GL_PALETTE8_RGBA4_OES +#define VC_IMAGE_OPENGL_PALETTE8_RGB5551 0x8B99 //GL_PALETTE8_RGB5_A1_OES + + typedef struct vc_image_extra_opengl_s { + unsigned int format_and_type; + void const *palette; + } VC_IMAGE_EXTRA_OPENGL_T; + + typedef union { + VC_IMAGE_EXTRA_UV_T uv; + VC_IMAGE_EXTRA_RGBA_T rgba; + VC_IMAGE_EXTRA_PAL_T pal; + VC_IMAGE_EXTRA_TF_T tf; + VC_IMAGE_EXTRA_BAYER_T bayer; + VC_IMAGE_EXTRA_MSBAYER_T msbayer; + VC_IMAGE_EXTRA_CODEC_T codec; + VC_IMAGE_EXTRA_OPENGL_T opengl; + } VC_IMAGE_EXTRA_T; + + /* structure containing various colour meta-data for each format */ + typedef union { +#ifdef __HIGHC__ + VC_IMAGE_YUVINFO_T yuv; /* We know Metaware will use 16 bits for this enum, so use the correct type for debug info */ +#else + unsigned short yuv; /* Information pertinent to all YUV implementations */ +#endif + unsigned short info; /* dummy, force size to min 16 bits */ + } VC_IMAGE_INFO_T; + + + /** + * Image handle object, which must be locked before image data becomes + * accessible. + * + * A handle to an image where the image data does not have a guaranteed + * storage location. A call to \c vc_image_lock() must be made to convert + * this into a \c VC_IMAGE_BUF_T, which guarantees that image data can + * be accessed safely. + * + * This type will also be used in cases where it's unclear whether or not + * the buffer is already locked, and in legacy code. + */ + struct VC_IMAGE_T { +#ifdef __HIGHC__ + VC_IMAGE_TYPE_T type; /* Metaware will use 16 bits for this enum + so use the correct type for debug info */ +#else + unsigned short type; /* should restrict to 16 bits */ +#endif + VC_IMAGE_INFO_T info; /* format-specific info; zero for VC02 behaviour */ + unsigned short width; /* width in pixels */ + unsigned short height; /* height in pixels */ + int pitch; /* pitch of image_data array in bytes */ + int size; /* number of bytes available in image_data array */ + void *image_data; /* pixel data */ + VC_IMAGE_EXTRA_T extra; /* extra data like palette pointer */ + struct vc_metadata_header_s *metadata; /* metadata header for the image */ + struct opaque_vc_pool_object_s *pool_object; /* nonNULL if image was allocated from a vc_pool */ + uint32_t mem_handle; /* the mem handle for relocatable memory storage */ + int metadata_size; /* size of metadata of each channel in bytes */ + int channel_offset; /* offset of consecutive channels in bytes */ + uint32_t video_timestamp;/* 90000 Hz RTP times domain - derived from audio timestamp */ + uint8_t num_channels; /* number of channels (2 for stereo) */ + uint8_t current_channel;/* the channel this header is currently pointing to */ + uint8_t linked_multichann_flag;/* Indicate the header has the linked-multichannel structure*/ + uint8_t is_channel_linked; /* Track if the above structure is been used to link the header + into a linked-mulitchannel image */ + uint8_t channel_index; /* index of the channel this header represents while + it is being linked. */ + uint8_t _dummy[3]; /* pad struct to 64 bytes */ + }; + + +# ifdef __COVERITY__ + /* Currently battling with the size of enums when running through static analysis stage */ + typedef int vc_image_t_size_check[(sizeof(VC_IMAGE_T) == 68) * 2 - 1]; +# else + /* compile time assert to ensure size of VC_IMAGE_T is as expected, if the + compiler kicks out a "negative subscript" message then the size + of VC_IMAGE_T is *not* 64 bytes, which is a problem ... */ + typedef int vc_image_t_size_check[(sizeof(VC_IMAGE_T) == 64) * 2 - 1]; +#endif + +/****************************************************************************** + Debugging rules (defined in camera_debug.c) + *****************************************************************************/ +extern DEBUG_WRITE_ENUM_LOOKUP_T vc_image_type_lookup[]; +extern DEBUG_WRITE_ENUM_LOOKUP_T vc_image_bayer_order_lookup[]; +extern DEBUG_WRITE_ENUM_LOOKUP_T vc_image_bayer_format_lookup[]; +extern DEBUG_WRITE_RULE_T vc_image_info_rule[]; +extern DEBUG_WRITE_RULE_T vc_image_rule[]; + +#endif /* __VC_INCLUDE_IMAGE_TYPES_H__ */ + diff --git a/vcinclude/vc_image_types.h b/vcinclude/vc_image_types.h index a67dec6..58ac333 100644 --- a/vcinclude/vc_image_types.h +++ b/vcinclude/vc_image_types.h @@ -29,5 +29,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define __VC_INCLUDE_IMAGE_TYPES_H__ #include "interface/vctypes/vc_image_types.h" +#include "interface/vctypes/vc_image_structs.h" #endif /* __VC_INCLUDE_IMAGE_TYPES_H__ */