Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

FrameQDefs.h

Go to the documentation of this file.
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*/

Generated on Mon Mar 14 11:59:45 2011 for Syslink by  doxygen 1.4.4