omx_base_filter.h File Reference

#include <OMX_Types.h>
#include <OMX_Component.h>
#include <OMX_Core.h>
#include <pthread.h>
#include <stdlib.h>
#include <omx_base_component.h>

Go to the source code of this file.

Defines

#define OMX_BASE_FILTER_INPUTPORT_INDEX   0
#define OMX_BASE_FILTER_OUTPUTPORT_INDEX   1
#define OMX_BASE_FILTER_ALLPORT_INDEX   -1
#define omx_base_filter_PrivateType_FIELDS

Functions

OMX_ERRORTYPE omx_base_filter_Constructor (OMX_COMPONENTTYPE *openmaxStandComp, OMX_STRING cComponentName)
 The base filter contructor for the OpenMAX ST components.
OMX_ERRORTYPE omx_base_filter_Destructor (OMX_COMPONENTTYPE *openmaxStandComp)
 the base filter destructor for ST OpenMAX components
void * omx_base_filter_BufferMgmtFunction (void *param)


Detailed Description

OpenMAX Base Filter component. This component does not perform any multimedia processing. It derives from base component and contains two ports. It can be used as base class for codec and filter components.

Copyright (C) 2007 STMicroelectronics Copyright (C) 2007-2008 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

$Date$ Revision $Rev$ Author $Author$

Definition in file omx_base_filter.h.


Define Documentation

#define OMX_BASE_FILTER_ALLPORT_INDEX   -1

OMX_BASE_FILTER_ALLPORT_INDEX as the standard specifies, the -1 value for port index is used to point to all the ports

Definition at line 53 of file omx_base_filter.h.

#define OMX_BASE_FILTER_INPUTPORT_INDEX   0

OMX_BASE_FILTER_INPUTPORT_INDEX is the index of any input port for the derived components

Definition at line 45 of file omx_base_filter.h.

Referenced by omx_audiodec_component_SetInternalParameters(), omx_base_filter_BufferMgmtFunction(), omx_ffmpeg_colorconv_component_BufferMgmtCallback(), omx_ffmpeg_colorconv_component_GetConfig(), omx_ffmpeg_colorconv_component_Init(), omx_ffmpeg_colorconv_component_SetConfig(), omx_maddec_component_SetInternalParameters(), omx_videodec_component_BufferMgmtCallback(), omx_videoenc_component_BufferMgmtCallback(), omx_videoenc_component_ffmpegLibInit(), omx_vorbisdec_component_SetInternalParameters(), and SetInternalVideoParameters().

#define OMX_BASE_FILTER_OUTPUTPORT_INDEX   1

OMX_BASE_FILTER_OUTPUTPORT_INDEX is the index of any output port for the derived components

Definition at line 49 of file omx_base_filter.h.

Referenced by omx_audiodec_component_Init(), omx_audiodec_component_SetInternalParameters(), omx_base_filter_BufferMgmtFunction(), omx_ffmpeg_colorconv_component_BufferMgmtCallback(), omx_ffmpeg_colorconv_component_GetConfig(), omx_ffmpeg_colorconv_component_Init(), omx_ffmpeg_colorconv_component_SetConfig(), omx_vorbisdec_component_Init(), and SetInternalVideoEncParameters().

#define omx_base_filter_PrivateType_FIELDS

Value:

omx_base_component_PrivateType_FIELDS \ \
  OMX_BUFFERHEADERTYPE* pPendingOutputBuffer; \ \
  void (*BufferMgmtCallback)(OMX_COMPONENTTYPE* openmaxStandComp, OMX_BUFFERHEADERTYPE* inputbuffer, OMX_BUFFERHEADERTYPE* outputbuffer);
Base Filter component private structure.

Definition at line 58 of file omx_base_filter.h.


Function Documentation

void* omx_base_filter_BufferMgmtFunction ( void *  param  ) 

This is the central function for component processing. 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 75 of file omx_base_filter.c.

References omx_base_component_PrivateType::bStateSem, DEB_LEV_ERR, DEB_LEV_FULL_SEQ, DEB_LEV_FUNCTION_NAME, DEB_LEV_SIMPLE_SEQ, DEBUG, dequeue(), OMX_BUFFERHEADERTYPE::hMarkTargetComponent, queue_t::nelem, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_BUFFERHEADERTYPE::nFlags, OMX_BUFFERHEADERTYPE::nTimeStamp, OMX_BASE_FILTER_INPUTPORT_INDEX, OMX_BASE_FILTER_OUTPUTPORT_INDEX, OMX_BUFFERFLAG_EOS, OMX_EventBufferFlag, OMX_EventMark, OMX_FALSE, OMX_StateExecuting, OMX_StateIdle, OMX_StateInvalid, OMX_StateLoaded, OMX_StatePause, OMX_TransStateLoadedToIdle, OMX_TRUE, omx_base_PortType::pBufferQueue, omx_base_PortType::pBufferSem, OMX_COMPONENTTYPE::pComponentPrivate, OMX_BUFFERHEADERTYPE::pMarkData, PORT_IS_BEING_FLUSHED, omx_base_component_PrivateType::ports, omx_base_PortType::ReturnBufferFunction, tsem_t::semval, tsem_down(), and tsem_wait().

Referenced by omx_base_filter_Constructor().

OMX_ERRORTYPE omx_base_filter_Constructor ( OMX_COMPONENTTYPE openmaxStandComp,
OMX_STRING  cComponentName 
)

The base filter contructor for the OpenMAX ST components.

Parameters:
openmaxStandComp the ST component to be initialized
Returns:
OMX_ErrorInsufficientResources if a memory allocation fails

Definition at line 36 of file omx_base_filter.c.

References err, omx_base_component_Constructor(), omx_base_filter_BufferMgmtFunction(), OMX_ErrorInsufficientResources, OMX_ErrorNone, and OMX_COMPONENTTYPE::pComponentPrivate.

Referenced by omx_audio_mixer_component_Constructor(), omx_audiodec_component_Constructor(), omx_ffmpeg_colorconv_component_Constructor(), omx_maddec_component_Constructor(), omx_videodec_component_Constructor(), omx_videoenc_component_Constructor(), omx_volume_component_Constructor(), and omx_vorbisdec_component_Constructor().

OMX_ERRORTYPE omx_base_filter_Destructor ( OMX_COMPONENTTYPE openmaxStandComp  ) 

the base filter destructor for ST OpenMAX components

Parameters:
openmaxStandComp the ST OpenMAX component to be disposed

Definition at line 65 of file omx_base_filter.c.

References omx_base_component_Destructor().

Referenced by omx_audio_mixer_component_Destructor(), omx_audiodec_component_Destructor(), omx_ffmpeg_colorconv_component_Destructor(), omx_maddec_component_Destructor(), omx_videodec_component_Destructor(), omx_videoenc_component_Destructor(), omx_volume_component_Destructor(), and omx_vorbisdec_component_Destructor().


Generated for OpenMAX Bellagio rel. 0.3.5-svn by  doxygen 1.5.1
SourceForge.net Logo