voIndex.h revision 41050cdb033641ddf26831d9272c0930f7b40a2d
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
27extern "C" {
28#endif /* __cplusplus */
29
30#include "voType.h"
31
32/* Define the module ID */
33#define _MAKE_SOURCE_ID(id, name) \
34VO_INDEX_SRC_##name = _VO_INDEX_SOURCE | id,
35
36#define _MAKE_CODEC_ID(id, name) \
37VO_INDEX_DEC_##name = _VO_INDEX_DEC | id, \
38VO_INDEX_ENC_##name = _VO_INDEX_ENC | id,
39
40#define _MAKE_EFFECT_ID(id, name) \
41VO_INDEX_EFT_##name = _VO_INDEX_EFFECT | id,
42
43#define _MAKE_SINK_ID(id, name) \
44VO_INDEX_SNK_##name = _VO_INDEX_SINK | id,
45
46#define _MAKE_FILTER_ID(id, name) \
47VO_INDEX_FLT_##name = _VO_INDEX_FILTER | id,
48
49#define _MAKE_OMX_ID(id, name) \
50VO_INDEX_OMX_##name = _VO_INDEX_OMX | id,
51
52#define _MAKE_MFW_ID(id, name) \
53VO_INDEX_MFW_##name = _VO_INDEX_MFW | id,
54
55enum
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