117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong/* 217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** Copyright 2003-2010, VisualOn, Inc. 317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** 417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** Licensed under the Apache License, Version 2.0 (the "License"); 517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** you may not use this file except in compliance with the License. 617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** You may obtain a copy of the License at 717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** 817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** http://www.apache.org/licenses/LICENSE-2.0 917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** 1017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** Unless required by applicable law or agreed to in writing, software 1117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** distributed under the License is distributed on an "AS IS" BASIS, 1217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** See the License for the specific language governing permissions and 1417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** limitations under the License. 1517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong */ 1617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong/******************************************************************************* 1717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong File: voIndex.h 1817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 1917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong Content: module and ID definition 2017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 2117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong*******************************************************************************/ 2217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 2317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#ifndef __voIndex_H__ 2417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define __voIndex_H__ 2517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 2617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#ifdef __cplusplus 2717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dongextern "C" { 2817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#endif /* __cplusplus */ 2917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 3017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#include "voType.h" 3117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 3217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong/* Define the module ID */ 3317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define _MAKE_SOURCE_ID(id, name) \ 3417299ab50ceb70d904e610e3b2d7fb2361a11e03James DongVO_INDEX_SRC_##name = _VO_INDEX_SOURCE | id, 3517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 3617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define _MAKE_CODEC_ID(id, name) \ 3717299ab50ceb70d904e610e3b2d7fb2361a11e03James DongVO_INDEX_DEC_##name = _VO_INDEX_DEC | id, \ 3817299ab50ceb70d904e610e3b2d7fb2361a11e03James DongVO_INDEX_ENC_##name = _VO_INDEX_ENC | id, 3917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 4017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define _MAKE_EFFECT_ID(id, name) \ 4117299ab50ceb70d904e610e3b2d7fb2361a11e03James DongVO_INDEX_EFT_##name = _VO_INDEX_EFFECT | id, 4217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 4317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define _MAKE_SINK_ID(id, name) \ 4417299ab50ceb70d904e610e3b2d7fb2361a11e03James DongVO_INDEX_SNK_##name = _VO_INDEX_SINK | id, 4517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 4617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define _MAKE_FILTER_ID(id, name) \ 4717299ab50ceb70d904e610e3b2d7fb2361a11e03James DongVO_INDEX_FLT_##name = _VO_INDEX_FILTER | id, 4817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 4917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define _MAKE_OMX_ID(id, name) \ 5017299ab50ceb70d904e610e3b2d7fb2361a11e03James DongVO_INDEX_OMX_##name = _VO_INDEX_OMX | id, 5117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 5217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define _MAKE_MFW_ID(id, name) \ 5317299ab50ceb70d904e610e3b2d7fb2361a11e03James DongVO_INDEX_MFW_##name = _VO_INDEX_MFW | id, 5417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 5517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dongenum 5617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong{ 5717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _VO_INDEX_SOURCE = 0x01000000, 5817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _VO_INDEX_DEC = 0x02000000, 5917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _VO_INDEX_ENC = 0x03000000, 6017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _VO_INDEX_EFFECT = 0x04000000, 6117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _VO_INDEX_SINK = 0x05000000, 6217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _VO_INDEX_FILTER = 0x06000000, 6317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _VO_INDEX_OMX = 0x07000000, 6417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _VO_INDEX_MFW = 0x08000000, 6517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 6617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong // define file parser modules 6717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x010000, MP4) 6817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x020000, AVI) 6917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x030000, ASF) 7017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x040000, REAL) 7117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x050000, AUDIO) 7217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x060000, FLASH) 7317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x070000, OGG) 7417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x080000, MKV) 7517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 7617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong // define network source modules 7717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x110000, RTSP) 7817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x120000, HTTP) 7917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 8017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong // define CMMB source modules 8117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x200000, CMMB) 8217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x210000, CMMB_INNO) 8317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x220000, CMMB_TELE) 8417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x230000, CMMB_SIANO) 8517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 8617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong // define DVBT source modules 8717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x300000, DVBT) 8817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x310000, DVBT_DIBCOM) 8917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 9017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong // define other source modules 9117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SOURCE_ID (0x400000, ID3) 9217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 9317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong // define video codec modules 9417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x010000, H264) 9517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x020000, MPEG4) 9617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x030000, H263) 9717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x040000, S263) 9817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x050000, RV) 9917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x060000, WMV) 10017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x070000, DIVX3) 10117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x080000, MJPEG) 10217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x090000, MPEG2) 10317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x0A0000, VP6) 10417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 10517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong // define audio codec modules 10617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x210000, AAC) 10717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x220000, MP3) 10817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x230000, WMA) 10917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x240000, RA) 11017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x250000, AMRNB) 11117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x260000, AMRWB) 11217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x270000, AMRWBP) 11317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x280000, QCELP) 11417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x290000, EVRC) 11517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x2A0000, ADPCM) 11617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x2B0000, MIDI) 11717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x2C0000, AC3) 11817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x2D0000, FLAC) 11917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x2E0000, DRA) 12017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x2F0000, OGG) 12117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x300000, G729) 12217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 12317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong // define image codec modules 12417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x410000, JPEG) 12517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x420000, GIF) 12617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x430000, PNG) 12717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_CODEC_ID (0x440000, TIF) 12817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 12917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong // define effect modules 13017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_EFFECT_ID (0x010000, EQ) 13117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 13217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong // define sink modules 13317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SINK_ID (0x010000, VIDEO) 13417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SINK_ID (0x020000, AUDIO) 13517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SINK_ID (0x030000, CCRRR) 13617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SINK_ID (0x040000, CCRRV) 13717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 13817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SINK_ID (0x110000, MP4) 13917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SINK_ID (0x120000, AVI) 14017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_SINK_ID (0x130000, AFW) 14117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 14217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong // define media frame module ID 14317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_MFW_ID (0x010000, VOMMPLAY) 14417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_MFW_ID (0x020000, VOMMREC) 14517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong _MAKE_MFW_ID (0x030000, VOME) 14617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong}; 14717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 14817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 14917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong/* define the error ID */ 15017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_NONE 0x00000000 15117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_FINISH 0x00000001 15217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_BASE 0X80000000 15317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_FAILED 0x80000001 15417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_OUTOF_MEMORY 0x80000002 15517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_NOT_IMPLEMENT 0x80000003 15617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_INVALID_ARG 0x80000004 15717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_INPUT_BUFFER_SMALL 0x80000005 15817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_OUTPUT_BUFFER_SMALL 0x80000006 15917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_WRONG_STATUS 0x80000007 16017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_WRONG_PARAM_ID 0x80000008 16117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_LICENSE_ERROR 0x80000009 16217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 16317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong/* xxx is the module ID 16417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_FAILED 0x8xxx0001 16517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_OUTOF_MEMORY 0x8xxx0002 16617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_NOT_IMPLEMENT 0x8xxx0003 16717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_INVALID_ARG 0x8xxx0004 16817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_INPUT_BUFFER_SMALL 0x8xxx0005 16917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_OUTPUT_BUFFER_SMALL 0x8xxx0006 17017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_WRONG_STATUS 0x8xxx0007 17117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_WRONG_PARAM_ID 0x8xxx0008 17217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_LICENSE_ERROR 0x8xxx0009 17317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong// Module own error ID 17417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ERR_Module 0x8xxx0X00 17517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong*/ 17617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 17717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_PID_COMMON_BASE 0x40000000 /*!< The base of common param ID */ 17817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_PID_COMMON_QUERYMEM (VO_PID_COMMON_BASE | 0X0001) /*!< Query the memory needed; Reserved. */ 17917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_PID_COMMON_INPUTTYPE (VO_PID_COMMON_BASE | 0X0002) /*!< Set or get the input buffer type. VO_INPUT_TYPE */ 18017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_PID_COMMON_HASRESOURCE (VO_PID_COMMON_BASE | 0X0003) /*!< Query it has resource to be used. VO_U32 *, 1 have, 0 No */ 18117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_PID_COMMON_HEADDATA (VO_PID_COMMON_BASE | 0X0004) /*!< Decoder track header data. VO_CODECBUFFER * */ 18217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_PID_COMMON_FLUSH (VO_PID_COMMON_BASE | 0X0005) /*!< Flush the codec buffer. VO_U32 *, 1 Flush, 0 No * */ 18317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 18417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong/* 18517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong// Module Param ID 18617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#define VO_ID_Mdoule 0x0xxx1000 18717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong*/ 18817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 18917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#ifdef __cplusplus 19017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong} 19117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#endif /* __cplusplus */ 19217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 19317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#endif // __voIndex_H__ 194