00001 /** 00002 * @file FrameQDefs.h 00003 * 00004 * @brief Defines configurable elements for FrameQ module. 00005 * 00006 * 00007 * 00008 * @ver 02.00.00.68_beta1 00009 * 00010 * ============================================================================ 00011 * 00012 * Copyright (c) 2008-2009, Texas Instruments Incorporated 00013 * 00014 * Redistribution and use in source and binary forms, with or without 00015 * modification, are permitted provided that the following conditions 00016 * are met: 00017 * 00018 * * Redistributions of source code must retain the above copyright 00019 * notice, this list of conditions and the following disclaimer. 00020 * 00021 * * Redistributions in binary form must reproduce the above copyright 00022 * notice, this list of conditions and the following disclaimer in the 00023 * documentation and/or other materials provided with the distribution. 00024 * 00025 * * Neither the name of Texas Instruments Incorporated nor the names of 00026 * its contributors may be used to endorse or promote products derived 00027 * from this software without specific prior written permission. 00028 * 00029 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00030 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 00031 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 00032 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 00033 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00034 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00035 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 00036 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 00037 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 00038 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 00039 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00040 * Contact information for paper mail: 00041 * Texas Instruments 00042 * Post Office Box 655303 00043 * Dallas, Texas 75265 00044 * Contact information: 00045 * http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm? 00046 * DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact 00047 * ============================================================================ 00048 * 00049 */ 00050 00051 00052 #ifndef FRAMEQDEFS_H_0x6e6f 00053 #define FRAMEQDEFS_H_0x6e6f 00054 00055 00056 #if defined (__cplusplus) 00057 extern "C" { 00058 #endif 00059 00060 /* ============================================================================= 00061 * macros & defines 00062 * ============================================================================= 00063 */ 00064 00065 /*! 00066 * @brief Macro used in FrameQ for sorting of passed parameters in V API. 00067 * In FrameQ_allocv case this denotes the number of frames that can be 00068 * allocated in one call. 00069 * In FrameQ_putv case this denotes the number of frames that can be 00070 * put in one call. 00071 * In FrameQ_getv case this denotes the number of frames that can be 00072 * retrieved in one call. 00073 */ 00074 #define FrameQ_MAX_FRAMESINVAPI (64u) 00075 00076 /* ============================================================================= 00077 * Structures & Enums 00078 * ============================================================================= 00079 */ 00080 /*! 00081 * @brief Structure to frame buffer informantion in frame header. 00082 */ 00083 typedef struct Frame_FrameBufInfo_tag { 00084 UInt32 bufPtr; 00085 /*!<Pointer to the frame buffer.*/ 00086 UInt32 bufSize; 00087 /*!<Size of the buffer. */ 00088 UInt32 startOffset; 00089 /*!<Start offset in the buffer from where valid data starts.*/ 00090 UInt32 validSize; 00091 /*!<Valid size in the buffer from the zeroth offset in the frame buffer*/ 00092 UInt32 pixelFormat; 00093 UInt32 height; 00094 UInt32 width; 00095 UInt32 stride; 00096 00097 }Frame_FrameBufInfo; 00098 00099 /*! 00100 * @brief Structure of the base frame header. FrameQ maintains list of frames 00101 * to be retrieved by FrameQ reader client. Application is expected to 00102 * use Helper API to extract fileds and exteneded header pointer. 00103 */ 00104 typedef struct Frame_FrameHeader_Tag { 00105 UInt32 reserved0; 00106 /*!<reserverd field */ 00107 UInt32 reserved1; 00108 /*!<reserverd field */ 00109 UInt16 baseHeaderSize; 00110 /*!< Size of the base frame header.*/ 00111 UInt16 headerSize; 00112 /*!< Size of the frame header(total size of base header 00113 * and extended header). 00114 */ 00115 UInt32 frmAllocaterId; 00116 /*!< Denotes the FrameQBufMgr Id from which frame is allocated. */ 00117 UInt32 frameBufType; 00118 /* Denotes the buffer type i.e Tiler buffer or shared region 1D buffer*/ 00119 UInt8 freeFrmQueueNo; 00120 /*!< Free quque No from which frame is allocated in FrameQBufMgr.*/ 00121 UInt8 numFrameBuffers; 00122 /*!<Number of framebuffers in frame. */ 00123 Frame_FrameBufInfo frameBufInfo[1]; 00124 /*!< Information of Frame buffers. see Frame_FrameBufInfo*/ 00125 } Frame_FrameHeader; 00126 00127 /*! 00128 * @brief Defines the type for a frame pointer 00129 */ 00130 typedef Frame_FrameHeader * Frame; 00131 00132 00133 #if defined (__cplusplus) 00134 } 00135 #endif /* defined (__cplusplus) */ 00136 00137 00138 #endif /*FRAMEQDEFS_H_0x6e6f*/
1.4.4