OpenMAXBellagio  0.9.3
omx_base_filter.h File Reference
#include <OMX_Types.h>
#include <OMX_Component.h>
#include <OMX_Core.h>
#include "omx_base_component.h"

Go to the source code of this file.

Data Structures

struct  omx_base_filter_PrivateType
 

Macros

#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
 

Typedefs

typedef struct omx_base_filter_PrivateType omx_base_filter_PrivateType
 

Functions

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

Macro Definition 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 47 of file omx_base_filter.h.

#define OMX_BASE_FILTER_INPUTPORT_INDEX   0

src/base/omx_base_filter.h

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-2009 STMicroelectronics Copyright (C) 2007-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 USAOMX_BASE_FILTER_INPUTPORT_INDEX is the index of any input port for the derived components

Definition at line 39 of file omx_base_filter.h.

Referenced by omx_base_filter_BufferMgmtFunction(), omx_video_scheduler_component_BufferMgmtCallback(), omx_video_scheduler_component_Constructor(), and omx_volume_component_Constructor().

#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 43 of file omx_base_filter.h.

Referenced by omx_base_filter_BufferMgmtFunction(), omx_video_scheduler_component_Constructor(), and omx_volume_component_Constructor().

#define omx_base_filter_PrivateType_FIELDS
Value:
OMX_BUFFERHEADERTYPE* pPendingOutputBuffer; \ \
void (*BufferMgmtCallback)(OMX_COMPONENTTYPE* openmaxStandComp, OMX_BUFFERHEADERTYPE* inputbuffer, OMX_BUFFERHEADERTYPE* outputbuffer);
#define omx_base_component_PrivateType_FIELDS
struct OMX_BUFFERHEADERTYPE OMX_BUFFERHEADERTYPE

Definition at line 52 of file omx_base_filter.h.

Typedef Documentation

Base Filter component private structure.

Definition at line 51 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 83 of file omx_base_filter.c.

References omx_base_filter_PrivateType::bellagioThreads, omx_base_filter_PrivateType::bIsEOSReached, omx_base_filter_PrivateType::bMgmtSem, omx_base_filter_PrivateType::bStateSem, omx_base_filter_PrivateType::BufferMgmtCallback, omx_base_filter_PrivateType::callbackData, omx_base_filter_PrivateType::callbacks, DEB_LEV_ERR, DEB_LEV_FULL_SEQ, DEB_LEV_FUNCTION_NAME, DEB_LEV_SIMPLE_SEQ, DEBUG, dequeue(), OMX_CALLBACKTYPE::EventHandler, omx_base_filter_PrivateType::flush_all_condition, omx_base_filter_PrivateType::flush_condition, omx_base_filter_PrivateType::flush_mutex, OMX_MARKTYPE::hMarkTargetComponent, OMX_PARAM_BELLAGIOTHREADS_ID::nThreadBufferMngtID, OMX_BASE_FILTER_INPUTPORT_INDEX, OMX_BASE_FILTER_OUTPUTPORT_INDEX, OMX_BUFFERFLAG_EOS, OMX_BUFFERFLAG_STARTTIME, 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_base_filter_PrivateType::pMark, OMX_MARKTYPE::pMarkData, PORT_IS_BEING_FLUSHED, omx_base_filter_PrivateType::ports, omx_base_PortType::ReturnBufferFunction, omx_base_filter_PrivateType::state, omx_base_filter_PrivateType::transientState, tsem_down(), tsem_up(), 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
openmaxStandCompthe ST component to be initialized
cComponentNamethe OpenMAX string that describes the component
Returns
OMX_ErrorInsufficientResources if a memory allocation fails

src/base/omx_base_filter.c

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 a base class for codec and filter components.

Copyright (C) 2007-2009 STMicroelectronics Copyright (C) 2007-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_base_filter.c.

References omx_base_filter_PrivateType::BufferMgmtFunction, DEB_LEV_ERR, DEB_LEV_FUNCTION_NAME, DEBUG, 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_video_scheduler_component_Constructor(), and omx_volume_component_Constructor().

OMX_ERRORTYPE omx_base_filter_Destructor ( OMX_COMPONENTTYPE openmaxStandComp)

the base filter destructor for ST OpenMAX components

Parameters
openmaxStandCompthe ST OpenMAX component to be disposed

Definition at line 66 of file omx_base_filter.c.

References DEB_LEV_ERR, DEB_LEV_FUNCTION_NAME, DEBUG, err, omx_base_component_Destructor(), and OMX_ErrorNone.

Referenced by omx_audio_mixer_component_Destructor(), omx_video_scheduler_component_Destructor(), and omx_volume_component_Destructor().


Generated for OpenMAX Bellagio rel. 0.9.3 by  doxygen 1.5.1
SourceForge.net Logo