1 /* 2 ** Copyright 2003-2010, VisualOn, Inc. 3 ** 4 ** Licensed under the Apache License, Version 2.0 (the "License"); 5 ** you may not use this file except in compliance with the License. 6 ** You may obtain a copy of the License at 7 ** 8 ** http://www.apache.org/licenses/LICENSE-2.0 9 ** 10 ** Unless required by applicable law or agreed to in writing, software 11 ** distributed under the License is distributed on an "AS IS" BASIS, 12 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 ** See the License for the specific language governing permissions and 14 ** limitations under the License. 15 */ 16 /******************************************************************************* 17 File: voIndex.h 18 19 Content: module and ID definition 20 21 *******************************************************************************/ 22 23 #ifndef __voIndex_H__ 24 #define __voIndex_H__ 25 26 #ifdef __cplusplus 27 extern "C" { 28 #endif /* __cplusplus */ 29 30 #include "voType.h" 31 32 /* Define the module ID */ 33 #define _MAKE_SOURCE_ID(id, name) \ 34 VO_INDEX_SRC_##name = _VO_INDEX_SOURCE | (id), 35 36 #define _MAKE_CODEC_ID(id, name) \ 37 VO_INDEX_DEC_##name = _VO_INDEX_DEC | (id), \ 38 VO_INDEX_ENC_##name = _VO_INDEX_ENC | (id), 39 40 #define _MAKE_EFFECT_ID(id, name) \ 41 VO_INDEX_EFT_##name = _VO_INDEX_EFFECT | (id), 42 43 #define _MAKE_SINK_ID(id, name) \ 44 VO_INDEX_SNK_##name = _VO_INDEX_SINK | (id), 45 46 #define _MAKE_FILTER_ID(id, name) \ 47 VO_INDEX_FLT_##name = _VO_INDEX_FILTER | (id), 48 49 #define _MAKE_OMX_ID(id, name) \ 50 VO_INDEX_OMX_##name = _VO_INDEX_OMX | (id), 51 52 #define _MAKE_MFW_ID(id, name) \ 53 VO_INDEX_MFW_##name = _VO_INDEX_MFW | (id), 54 55 enum 56 { 57 _VO_INDEX_SOURCE = 0x01000000, 58 _VO_INDEX_DEC = 0x02000000, 59 _VO_INDEX_ENC = 0x03000000, 60 _VO_INDEX_EFFECT = 0x04000000, 61 _VO_INDEX_SINK = 0x05000000, 62 _VO_INDEX_FILTER = 0x06000000, 63 _VO_INDEX_OMX = 0x07000000, 64 _VO_INDEX_MFW = 0x08000000, 65 66 // define file parser modules 67 _MAKE_SOURCE_ID (0x010000, MP4) 68 _MAKE_SOURCE_ID (0x020000, AVI) 69 _MAKE_SOURCE_ID (0x030000, ASF) 70 _MAKE_SOURCE_ID (0x040000, REAL) 71 _MAKE_SOURCE_ID (0x050000, AUDIO) 72 _MAKE_SOURCE_ID (0x060000, FLASH) 73 _MAKE_SOURCE_ID (0x070000, OGG) 74 _MAKE_SOURCE_ID (0x080000, MKV) 75 76 // define network source modules 77 _MAKE_SOURCE_ID (0x110000, RTSP) 78 _MAKE_SOURCE_ID (0x120000, HTTP) 79 80 // define CMMB source modules 81 _MAKE_SOURCE_ID (0x200000, CMMB) 82 _MAKE_SOURCE_ID (0x210000, CMMB_INNO) 83 _MAKE_SOURCE_ID (0x220000, CMMB_TELE) 84 _MAKE_SOURCE_ID (0x230000, CMMB_SIANO) 85 86 // define DVBT source modules 87 _MAKE_SOURCE_ID (0x300000, DVBT) 88 _MAKE_SOURCE_ID (0x310000, DVBT_DIBCOM) 89 90 // define other source modules 91 _MAKE_SOURCE_ID (0x400000, ID3) 92 93 // define video codec modules 94 _MAKE_CODEC_ID (0x010000, H264) 95 _MAKE_CODEC_ID (0x020000, MPEG4) 96 _MAKE_CODEC_ID (0x030000, H263) 97 _MAKE_CODEC_ID (0x040000, S263) 98 _MAKE_CODEC_ID (0x050000, RV) 99 _MAKE_CODEC_ID (0x060000, WMV) 100 _MAKE_CODEC_ID (0x070000, DIVX3) 101 _MAKE_CODEC_ID (0x080000, MJPEG) 102 _MAKE_CODEC_ID (0x090000, MPEG2) 103 _MAKE_CODEC_ID (0x0A0000, VP6) 104 105 // define audio codec modules 106 _MAKE_CODEC_ID (0x210000, AAC) 107 _MAKE_CODEC_ID (0x220000, MP3) 108 _MAKE_CODEC_ID (0x230000, WMA) 109 _MAKE_CODEC_ID (0x240000, RA) 110 _MAKE_CODEC_ID (0x250000, AMRNB) 111 _MAKE_CODEC_ID (0x260000, AMRWB) 112 _MAKE_CODEC_ID (0x270000, AMRWBP) 113 _MAKE_CODEC_ID (0x280000, QCELP) 114 _MAKE_CODEC_ID (0x290000, EVRC) 115 _MAKE_CODEC_ID (0x2A0000, ADPCM) 116 _MAKE_CODEC_ID (0x2B0000, MIDI) 117 _MAKE_CODEC_ID (0x2C0000, AC3) 118 _MAKE_CODEC_ID (0x2D0000, FLAC) 119 _MAKE_CODEC_ID (0x2E0000, DRA) 120 _MAKE_CODEC_ID (0x2F0000, OGG) 121 _MAKE_CODEC_ID (0x300000, G729) 122 123 // define image codec modules 124 _MAKE_CODEC_ID (0x410000, JPEG) 125 _MAKE_CODEC_ID (0x420000, GIF) 126 _MAKE_CODEC_ID (0x430000, PNG) 127 _MAKE_CODEC_ID (0x440000, TIF) 128 129 // define effect modules 130 _MAKE_EFFECT_ID (0x010000, EQ) 131 132 // define sink modules 133 _MAKE_SINK_ID (0x010000, VIDEO) 134 _MAKE_SINK_ID (0x020000, AUDIO) 135 _MAKE_SINK_ID (0x030000, CCRRR) 136 _MAKE_SINK_ID (0x040000, CCRRV) 137 138 _MAKE_SINK_ID (0x110000, MP4) 139 _MAKE_SINK_ID (0x120000, AVI) 140 _MAKE_SINK_ID (0x130000, AFW) 141 142 // define media frame module ID 143 _MAKE_MFW_ID (0x010000, VOMMPLAY) 144 _MAKE_MFW_ID (0x020000, VOMMREC) 145 _MAKE_MFW_ID (0x030000, VOME) 146 }; 147 148 149 /* define the error ID */ 150 #define VO_ERR_NONE 0x00000000 151 #define VO_ERR_FINISH 0x00000001 152 #define VO_ERR_BASE 0X80000000 153 #define VO_ERR_FAILED 0x80000001 154 #define VO_ERR_OUTOF_MEMORY 0x80000002 155 #define VO_ERR_NOT_IMPLEMENT 0x80000003 156 #define VO_ERR_INVALID_ARG 0x80000004 157 #define VO_ERR_INPUT_BUFFER_SMALL 0x80000005 158 #define VO_ERR_OUTPUT_BUFFER_SMALL 0x80000006 159 #define VO_ERR_WRONG_STATUS 0x80000007 160 #define VO_ERR_WRONG_PARAM_ID 0x80000008 161 #define VO_ERR_LICENSE_ERROR 0x80000009 162 163 /* xxx is the module ID 164 #define VO_ERR_FAILED 0x8xxx0001 165 #define VO_ERR_OUTOF_MEMORY 0x8xxx0002 166 #define VO_ERR_NOT_IMPLEMENT 0x8xxx0003 167 #define VO_ERR_INVALID_ARG 0x8xxx0004 168 #define VO_ERR_INPUT_BUFFER_SMALL 0x8xxx0005 169 #define VO_ERR_OUTPUT_BUFFER_SMALL 0x8xxx0006 170 #define VO_ERR_WRONG_STATUS 0x8xxx0007 171 #define VO_ERR_WRONG_PARAM_ID 0x8xxx0008 172 #define VO_ERR_LICENSE_ERROR 0x8xxx0009 173 // Module own error ID 174 #define VO_ERR_Module 0x8xxx0X00 175 */ 176 177 #define VO_PID_COMMON_BASE 0x40000000 /*!< The base of common param ID */ 178 #define VO_PID_COMMON_QUERYMEM (VO_PID_COMMON_BASE | 0X0001) /*!< Query the memory needed; Reserved. */ 179 #define VO_PID_COMMON_INPUTTYPE (VO_PID_COMMON_BASE | 0X0002) /*!< Set or get the input buffer type. VO_INPUT_TYPE */ 180 #define VO_PID_COMMON_HASRESOURCE (VO_PID_COMMON_BASE | 0X0003) /*!< Query it has resource to be used. VO_U32 *, 1 have, 0 No */ 181 #define VO_PID_COMMON_HEADDATA (VO_PID_COMMON_BASE | 0X0004) /*!< Decoder track header data. VO_CODECBUFFER * */ 182 #define VO_PID_COMMON_FLUSH (VO_PID_COMMON_BASE | 0X0005) /*!< Flush the codec buffer. VO_U32 *, 1 Flush, 0 No * */ 183 184 /* 185 // Module Param ID 186 #define VO_ID_Mdoule 0x0xxx1000 187 */ 188 189 #ifdef __cplusplus 190 } 191 #endif /* __cplusplus */ 192 193 #endif // __voIndex_H__ 194