00001
00030 #ifndef _OMX_AUDIO_MIXER_COMPONENT_H_
00031 #define _OMX_AUDIO_MIXER_COMPONENT_H_
00032
00033 #include <OMX_Types.h>
00034 #include <OMX_Component.h>
00035 #include <OMX_Core.h>
00036 #include <stdlib.h>
00037 #include <string.h>
00038 #include <pthread.h>
00039 #include <omx_base_filter.h>
00040 #include <omx_base_audio_port.h>
00041
00042 #define MAX_PORTS 5 // Maximum number of ports supported by the mixer. 4 input and 1 output
00043 #define MAX_CHANNEL 6 // Maximum number of channels supported in a single stream 5.1
00044
00047 DERIVEDCLASS(omx_audio_mixer_component_PortType, omx_base_audio_PortType)
00048 #define omx_audio_mixer_component_PortType_FIELDS omx_base_audio_PortType_FIELDS \
00049 \
00050 OMX_AUDIO_PARAM_PCMMODETYPE pAudioPcmMode; \
00051 \
00052 float gain; \
00053 \
00054 OMX_AUDIO_CONFIG_VOLUMETYPE sVolume; \
00055 \
00056 OMX_AUDIO_CONFIG_CHANNELVOLUMETYPE sChannelVolume[MAX_CHANNEL];
00057 ENDCLASS(omx_audio_mixer_component_PortType)
00058
00059
00062 DERIVEDCLASS(omx_audio_mixer_component_PrivateType, omx_base_filter_PrivateType)
00063 #define omx_audio_mixer_component_PrivateType_FIELDS omx_base_filter_PrivateType_FIELDS \
00064
00065 ENDCLASS(omx_audio_mixer_component_PrivateType)
00066
00067
00068 OMX_ERRORTYPE omx_audio_mixer_component_Constructor(OMX_COMPONENTTYPE *openmaxStandComp,OMX_STRING cComponentName);
00069 OMX_ERRORTYPE omx_audio_mixer_component_Destructor(OMX_COMPONENTTYPE *openmaxStandComp);
00070
00071 void omx_audio_mixer_component_BufferMgmtCallback(
00072 OMX_COMPONENTTYPE *openmaxStandComp,
00073 OMX_BUFFERHEADERTYPE* inputbuffer,
00074 OMX_BUFFERHEADERTYPE* outputbuffer);
00075
00076 OMX_ERRORTYPE omx_audio_mixer_component_GetParameter(
00077 OMX_IN OMX_HANDLETYPE hComponent,
00078 OMX_IN OMX_INDEXTYPE nParamIndex,
00079 OMX_INOUT OMX_PTR ComponentParameterStructure);
00080
00081 OMX_ERRORTYPE omx_audio_mixer_component_SetParameter(
00082 OMX_IN OMX_HANDLETYPE hComponent,
00083 OMX_IN OMX_INDEXTYPE nParamIndex,
00084 OMX_IN OMX_PTR ComponentParameterStructure);
00085
00086 OMX_ERRORTYPE omx_audio_mixer_component_GetConfig(
00087 OMX_IN OMX_HANDLETYPE hComponent,
00088 OMX_IN OMX_INDEXTYPE nIndex,
00089 OMX_INOUT OMX_PTR pComponentConfigStructure);
00090
00091 OMX_ERRORTYPE omx_audio_mixer_component_SetConfig(
00092 OMX_IN OMX_HANDLETYPE hComponent,
00093 OMX_IN OMX_INDEXTYPE nIndex,
00094 OMX_IN OMX_PTR pComponentConfigStructure);
00095
00101 void* omx_audio_mixer_BufferMgmtFunction (void* param);
00102
00103 #endif