OpenMAXBellagio
0.9.3
|
#include <omxcore.h>
#include <omx_base_audio_port.h>
#include <omx_audiomixer_component.h>
#include <OMX_Audio.h>
Go to the source code of this file.
Macros | |
#define | GAIN_VALUE 100.0f |
#define GAIN_VALUE 100.0f |
src/components/audio_effects/omx_audiomixer_component.c
OpenMAX audio mixer control component. This component implements a mixer that mixes multiple audio PCM streams and produces a single output stream.
Copyright (C) 2008-2009 STMicroelectronics Copyright (C) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Definition at line 34 of file omx_audiomixer_component.c.
int checkAnyPortBeingFlushed | ( | omx_audio_mixer_component_PrivateType * | omx_audio_mixer_component_Private | ) |
Definition at line 372 of file omx_audiomixer_component.c.
References OMX_FALSE, OMX_PortDomainAudio, OMX_StateInvalid, OMX_StateLoaded, OMX_TRUE, and PORT_IS_BEING_FLUSHED.
Referenced by omx_audio_mixer_BufferMgmtFunction().
void* omx_audio_mixer_BufferMgmtFunction | ( | void * | param | ) |
This is the central function for component processing,overridden for audio mixer. It is executed in a separate thread, is synchronized with semaphores at each port, those are released each time a new buffer is available on the given port.
Definition at line 399 of file omx_audiomixer_component.c.
References checkAnyPortBeingFlushed(), DEB_LEV_ERR, DEB_LEV_FULL_SEQ, DEB_LEV_FUNCTION_NAME, DEB_LEV_SIMPLE_SEQ, DEBUG, dequeue(), MAX_PORTS, OMX_BUFFERFLAG_EOS, OMX_EventBufferFlag, OMX_EventMark, OMX_FALSE, OMX_PortDomainAudio, OMX_StateExecuting, OMX_StateIdle, OMX_StateInvalid, OMX_StateLoaded, OMX_StatePause, OMX_TransStateExecutingToIdle, OMX_TransStateLoadedToIdle, OMX_TransStatePauseToIdle, OMX_TRUE, OMX_COMPONENTTYPE::pComponentPrivate, PORT_IS_BEING_FLUSHED, PORT_IS_ENABLED, tsem_down(), tsem_up(), and tsem_wait().
Referenced by omx_audio_mixer_component_Constructor().
void omx_audio_mixer_component_BufferMgmtCallback | ( | OMX_COMPONENTTYPE * | openmaxStandComp, |
OMX_BUFFERHEADERTYPE * | pInBuffer, | ||
OMX_BUFFERHEADERTYPE * | pOutBuffer | ||
) |
This function is used to process the input buffer and provide one output buffer
Definition at line 159 of file omx_audiomixer_component.c.
References OMX_BUFFERHEADERTYPE::nFilledLen, OMX_BUFFERHEADERTYPE::nInputPortIndex, OMX_PortDomainAudio, OMX_BUFFERHEADERTYPE::pBuffer, OMX_COMPONENTTYPE::pComponentPrivate, and PORT_IS_ENABLED.
Referenced by omx_audio_mixer_component_Constructor().
OMX_ERRORTYPE omx_audio_mixer_component_Constructor | ( | OMX_COMPONENTTYPE * | openmaxStandComp, |
OMX_STRING | cComponentName | ||
) |
Calling base filter constructor
Allocate Ports and call port constructor.
Domain specific section for the ports.
< Is the volume to be set in linear (0.100) or logarithmic scale (mB)
< minimum for value (i.e. nValue >= nMin)
Definition at line 35 of file omx_audiomixer_component.c.
References base_audio_port_Constructor(), DEB_LEV_FUNCTION_NAME, DEBUG, DEFAULT_OUT_BUFFER_SIZE, err, GAIN_VALUE, OMX_COMPONENTTYPE::GetConfig, OMX_COMPONENTTYPE::GetParameter, MAX_MIXER_COMPONENTS, MAX_PORTS, MIXER_COMP_NAME, MIXER_QUALITY_LEVELS, omx_audio_mixer_BufferMgmtFunction(), omx_audio_mixer_component_BufferMgmtCallback(), omx_audio_mixer_component_Destructor(), omx_audio_mixer_component_GetConfig(), omx_audio_mixer_component_GetParameter(), omx_audio_mixer_component_SetConfig(), omx_audio_mixer_component_SetParameter(), OMX_AUDIO_PCMModeLinear, omx_base_filter_Constructor(), OMX_EndianBig, OMX_ErrorInsufficientResources, OMX_ErrorNone, OMX_FALSE, OMX_NumericalDataSigned, OMX_PortDomainAudio, OMX_TRUE, OMX_COMPONENTTYPE::pComponentPrivate, RM_RegisterComponent(), OMX_COMPONENTTYPE::SetConfig, setHeader(), and OMX_COMPONENTTYPE::SetParameter.
OMX_ERRORTYPE omx_audio_mixer_component_Destructor | ( | OMX_COMPONENTTYPE * | openmaxStandComp | ) |
The destructor
Definition at line 134 of file omx_audiomixer_component.c.
References DEB_LEV_FUNCTION_NAME, DEBUG, omx_base_filter_Destructor(), OMX_ErrorNone, OMX_PortDomainAudio, and OMX_COMPONENTTYPE::pComponentPrivate.
Referenced by omx_audio_mixer_component_Constructor().
OMX_ERRORTYPE omx_audio_mixer_component_GetConfig | ( | OMX_HANDLETYPE | hComponent, |
OMX_INDEXTYPE | nIndex, | ||
OMX_PTR | pComponentConfigStructure | ||
) |
Definition at line 227 of file omx_audiomixer_component.c.
References err, OMX_AUDIO_CONFIG_VOLUMETYPE::nPortIndex, omx_base_component_GetConfig(), OMX_ErrorBadPortIndex, OMX_ErrorNone, OMX_IndexConfigAudioVolume, OMX_PortDomainAudio, OMX_COMPONENTTYPE::pComponentPrivate, and OMX_AUDIO_CONFIG_VOLUMETYPE::sVolume.
Referenced by omx_audio_mixer_component_Constructor().
OMX_ERRORTYPE omx_audio_mixer_component_GetParameter | ( | OMX_HANDLETYPE | hComponent, |
OMX_INDEXTYPE | nParamIndex, | ||
OMX_PTR | ComponentParameterStructure | ||
) |
Definition at line 310 of file omx_audiomixer_component.c.
References checkHeader(), OMX_PARAM_COMPONENTROLETYPE::cRole, DEB_LEV_SIMPLE_SEQ, DEBUG, err, MIXER_COMP_ROLE, OMX_AUDIO_PARAM_PORTFORMATTYPE::nPortIndex, OMX_AUDIO_PARAM_PCMMODETYPE::nPortIndex, omx_base_component_GetParameter(), OMX_ErrorBadParameter, OMX_ErrorBadPortIndex, OMX_ErrorNone, OMX_IndexParamAudioInit, OMX_IndexParamAudioPcm, OMX_IndexParamAudioPortFormat, OMX_IndexParamStandardComponentRole, OMX_PortDomainAudio, and OMX_COMPONENTTYPE::pComponentPrivate.
Referenced by omx_audio_mixer_component_Constructor().
OMX_ERRORTYPE omx_audio_mixer_component_SetConfig | ( | OMX_HANDLETYPE | hComponent, |
OMX_INDEXTYPE | nIndex, | ||
OMX_PTR | pComponentConfigStructure | ||
) |
setting configurations
Definition at line 194 of file omx_audiomixer_component.c.
References DEB_LEV_SIMPLE_SEQ, DEBUG, err, OMX_AUDIO_CONFIG_VOLUMETYPE::nPortIndex, OMX_BS32::nValue, omx_base_component_SetConfig(), OMX_ErrorBadParameter, OMX_ErrorBadPortIndex, OMX_ErrorNone, OMX_IndexConfigAudioVolume, OMX_PortDomainAudio, OMX_COMPONENTTYPE::pComponentPrivate, and OMX_AUDIO_CONFIG_VOLUMETYPE::sVolume.
Referenced by omx_audio_mixer_component_Constructor().
OMX_ERRORTYPE omx_audio_mixer_component_SetParameter | ( | OMX_HANDLETYPE | hComponent, |
OMX_INDEXTYPE | nParamIndex, | ||
OMX_PTR | ComponentParameterStructure | ||
) |
Definition at line 253 of file omx_audiomixer_component.c.
References checkHeader(), OMX_PARAM_COMPONENTROLETYPE::cRole, DEB_LEV_ERR, DEB_LEV_SIMPLE_SEQ, DEBUG, err, MIXER_COMP_ROLE, OMX_AUDIO_PARAM_PORTFORMATTYPE::nPortIndex, omx_base_component_ParameterSanityCheck(), omx_base_component_SetParameter(), OMX_ErrorBadParameter, OMX_ErrorBadPortIndex, OMX_ErrorIncorrectStateOperation, OMX_ErrorNone, OMX_IndexParamAudioPortFormat, OMX_IndexParamStandardComponentRole, OMX_PortDomainAudio, OMX_StateLoaded, OMX_StateWaitForResources, and OMX_COMPONENTTYPE::pComponentPrivate.
Referenced by omx_audio_mixer_component_Constructor().