1 /* 2 * Copyright (c) 2010, Texas Instruments Incorporated 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * * Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 12 * * Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * * Neither the name of Texas Instruments Incorporated nor the names of 17 * its contributors may be used to endorse or promote products derived 18 * from this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 27 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 /** 34 * @file omx_ti_common.h 35 * 36 * 37 * @path \OMAPSW_SysDev\multimedia\omx\khronos1_1\omx_core\inc 38 * 39 * @rev 1.0 40 */ 41 42 /*============================================================== 43 *! Revision History 44 *! ============================ 45 *! 20-Dec-2008 x0052661 (at) ti.com, initial version 46 *================================================================*/ 47 48 #ifndef _OMX_TI_COMMON_H_ 49 #define _OMX_TI_COMMON_H_ 50 51 #ifdef __cplusplus 52 extern "C" { 53 #endif /* __cplusplus */ 54 55 /****************************************************************** 56 * INCLUDE FILES 57 ******************************************************************/ 58 #include <OMX_Core.h> 59 60 /******************************************************************* 61 * EXTERNAL REFERENCE NOTE: only use if not found in header file 62 *******************************************************************/ 63 /*---------- function prototypes ------------------- */ 64 /*---------- data declarations ------------------- */ 65 /******************************************************************* 66 * PUBLIC DECLARATIONS: defined here, used elsewhere 67 *******************************************************************/ 68 /*---------- function prototypes ------------------- */ 69 /*---------- data declarations ------------------- */ 70 #define OMX_BUFFERHEADERFLAG_MODIFIED 0x00000100 71 72 #define OMX_TI_BUFFERFLAG_READONLY 0x00000200 73 74 /* TI extra data will be passed in the platform private structure rather than 75 * appended at the end of the buffer. Adding a new custom flag to indicate 76 * this.*/ 77 #define OMX_TI_BUFFERFLAG_DETACHEDEXTRADATA 0x00000400 78 79 typedef struct OMX_CONFIG_CHANNELNAME { 80 81 OMX_U32 nSize; /**< Size of the structure in bytes */ 82 OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 83 OMX_U32 nPortIndex; /**< Index of the port */ 84 OMX_STRING cChannelName; /**< Channel name */ 85 86 } OMX_CONFIG_CHANNELNAME; 87 88 typedef struct OMX_TI_PLATFORMPRIVATE 89 { 90 OMX_U32 nSize; 91 OMX_PTR pExtendedPlatformPrivate; 92 OMX_BOOL bReadViaCPU; 93 OMX_BOOL bWriteViaCPU; 94 OMX_PTR pMetaDataBuffer; 95 OMX_U32 nMetaDataSize; 96 OMX_PTR pAuxBuf1; 97 OMX_U32 pAuxBufSize1; 98 }OMX_TI_PLATFORMPRIVATE; 99 100 /*===============================================================*/ 101 /** OMX_TI_PARAM_BUFFERPREANNOUNCE : This parameter is used to enable/disable 102 * buffer pre announcement. Buffer pre 103 * announcement is enabled by default i.e. 104 * if buffer is being allocated by client 105 * then the buffer ptrs will be made known 106 * to the component at the time of 107 * UseBuffer and these will not change in 108 * lifetime of the component. If pre 109 * announcement is disabled then new 110 * buffers can be allocated by the client 111 * at runtime and passed in ETB/FTB. This 112 * parameter is valid only in cases where 113 * client allocates the buffer 114 * (i.e. UseBuffer cases). 115 * 116 * @ param nSize : Size of the structure. 117 * @ param nVersion : Version. 118 * @ param nPortIndex : Port index on which the parameter will 119 * be applied. 120 * @ param bEnabled : Whether buffer pre announcement is 121 * enabled or not. Set to TRUE (enabled) 122 * by default. 123 */ 124 /*===============================================================*/ 125 typedef struct OMX_TI_PARAM_BUFFERPREANNOUNCE 126 { 127 OMX_U32 nSize; 128 OMX_VERSIONTYPE nVersion; 129 OMX_U32 nPortIndex; 130 OMX_BOOL bEnabled; 131 }OMX_TI_PARAM_BUFFERPREANNOUNCE; 132 133 134 135 /*===============================================================*/ 136 /** OMX_TI_CONFIG_BUFFERREFCOUNTNOTIFYTYPE : This config is used to 137 * enable/disable notification when 138 * reference count of a buffer changes 139 * This happens usually when buffers 140 * are locked/unlocked by codecs. By 141 * DEFAULT all notifications are 142 * DISABLED. 143 * 144 * @ param nSize : Size of the structure. 145 * @ param nVersion : Version. 146 * @ param nPortIndex : Port index on which the config will 147 * be applied. 148 * @param bNotifyOnIncrease : Enable notification when reference 149 * count is increased. 150 * @ param bNotifyOnDecrease : Enable notification when reference 151 * count is decreased. 152 * @ param nCountForNotification : Count at which to trigger 153 * notification. Count indicates no. 154 * of copies of the buffer in 155 * circulation e.g. 156 * 1 - Only the original buffer is in 157 * circulation i.e. no buffers are 158 * currently locked. 159 * 2 - There are two copies of the 160 * buffer i.e. one original and 161 * one copy which has been locked 162 * by the codec. 163 * And so on 164 * SPECIAL CASE 165 * 0 - Indicates notify always 166 * irrespective of count value. 167 */ 168 /*===============================================================*/ 169 typedef struct OMX_TI_CONFIG_BUFFERREFCOUNTNOTIFYTYPE 170 { 171 OMX_U32 nSize; 172 OMX_VERSIONTYPE nVersion; 173 OMX_U32 nPortIndex; 174 OMX_BOOL bNotifyOnIncrease; 175 OMX_BOOL bNotifyOnDecrease; 176 OMX_U32 nCountForNotification; 177 }OMX_TI_CONFIG_BUFFERREFCOUNTNOTIFYTYPE; 178 179 180 181 182 183 /* OMX_TI_SEVERITYTYPE enumeration is used to indicate severity level of errors returned by TI OpenMax components. 184 Critcal Requires reboot/reset DSP 185 Severe Have to unload components and free memory and try again 186 Major Can be handled without unloading the component 187 Minor Essentially informational 188 */ 189 typedef enum OMX_TI_SEVERITYTYPE { 190 OMX_TI_ErrorCritical=1, 191 OMX_TI_ErrorSevere, 192 OMX_TI_ErrorMajor, 193 OMX_TI_ErrorMinor 194 } OMX_TI_SEVERITYTYPE; 195 196 /* ============================================================================= */ 197 /* 198 @brief OMX_TI_PARAM_METADATABUFFERINFO : Structure to access metadata buffer info needed 199 by proxy to allocate metadat buffers. 200 201 */ 202 /* ============================================================================= */ 203 typedef struct OMX_TI_PARAM_METADATABUFFERINFO { 204 OMX_U32 nSize; 205 OMX_VERSIONTYPE nVersion; 206 OMX_U32 nPortIndex; 207 OMX_BOOL bIsMetaDataEnabledOnPort; 208 OMX_U32 nMetaDataSize; 209 } OMX_TI_PARAM_METADATABUFFERINFO; 210 211 /******************************************************************* 212 * PRIVATE DECLARATIONS: defined here, used only here 213 *******************************************************************/ 214 /*---------- data declarations ------------------- */ 215 /*---------- function prototypes ------------------- */ 216 217 #ifdef __cplusplus 218 } 219 #endif /* __cplusplus */ 220 221 #endif /* _OMX_TI_COMMON_H_ */ 222