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