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