OpenMAX Bellagio 0.9.3
omx_base_source.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_source_PrivateType
 

Macros

#define OMX_BASE_SOURCE_OUTPUTPORT_INDEX   0
 
#define OMX_BASE_SOURCE_OUTPUTPORT_INDEX_1   1
 
#define OMX_BASE_SOURCE_ALLPORT_INDEX   -1
 
#define omx_base_source_PrivateType_FIELDS
 

Typedefs

typedef struct omx_base_source_PrivateType omx_base_source_PrivateType
 

Functions

OMX_ERRORTYPE omx_base_source_Constructor (OMX_COMPONENTTYPE *openmaxStandComp, OMX_STRING cComponentName)
 
OMX_ERRORTYPE omx_base_source_Destructor (OMX_COMPONENTTYPE *openmaxStandComp)
 
void * omx_base_source_BufferMgmtFunction (void *param)
 
void * omx_base_source_twoport_BufferMgmtFunction (void *param)
 

Macro Definition Documentation

◆ OMX_BASE_SOURCE_ALLPORT_INDEX

#define OMX_BASE_SOURCE_ALLPORT_INDEX   -1

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

Definition at line 46 of file omx_base_source.h.

◆ OMX_BASE_SOURCE_OUTPUTPORT_INDEX

#define OMX_BASE_SOURCE_OUTPUTPORT_INDEX   0

src/base/omx_base_source.h

OpenMAX base source component. This component does not perform any multimedia processing. It derives from base component and contains a single port. It can be used as base class for source 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 OMX_BASE_SOURCE_OUTPUTPORT_INDEX is the index of any output port for the derived components

Definition at line 38 of file omx_base_source.h.

Referenced by omx_base_source_BufferMgmtFunction(), and omx_base_source_twoport_BufferMgmtFunction().

◆ OMX_BASE_SOURCE_OUTPUTPORT_INDEX_1

#define OMX_BASE_SOURCE_OUTPUTPORT_INDEX_1   1

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

Definition at line 42 of file omx_base_source.h.

Referenced by omx_base_source_twoport_BufferMgmtFunction().

◆ omx_base_source_PrivateType_FIELDS

#define omx_base_source_PrivateType_FIELDS
Value:
\
void (*BufferMgmtCallback)(OMX_COMPONENTTYPE* openmaxStandComp, OMX_BUFFERHEADERTYPE* outputbuffer);
#define omx_base_component_PrivateType_FIELDS

Definition at line 51 of file omx_base_source.h.

Typedef Documentation

◆ omx_base_source_PrivateType

typedef struct omx_base_source_PrivateType omx_base_source_PrivateType

base source component private structure.

Definition at line 50 of file omx_base_source.h.

Function Documentation

◆ omx_base_source_BufferMgmtFunction()

void * omx_base_source_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 68 of file omx_base_source.c.

References omx_base_source_PrivateType::bellagioThreads, omx_base_source_PrivateType::bIsEOSReached, omx_base_source_PrivateType::bMgmtSem, omx_base_source_PrivateType::bStateSem, omx_base_source_PrivateType::BufferMgmtCallback, omx_base_component_PrivateType::callbackData, omx_base_component_PrivateType::callbacks, DEB_LEV_ERR, DEB_LEV_FULL_SEQ, DEB_LEV_FUNCTION_NAME, DEB_LEV_SIMPLE_SEQ, DEBUG, dequeue(), OMX_CALLBACKTYPE::EventHandler, omx_base_source_PrivateType::flush_all_condition, omx_base_source_PrivateType::flush_condition, omx_base_source_PrivateType::flush_mutex, OMX_BUFFERHEADERTYPE::hMarkTargetComponent, OMX_MARKTYPE::hMarkTargetComponent, omx_base_source_PrivateType::name, queue_t::nelem, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_BUFFERHEADERTYPE::nFlags, OMX_PARAM_BELLAGIOTHREADS_ID::nThreadBufferMngtID, OMX_BASE_SOURCE_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_base_source_PrivateType::pMark, OMX_BUFFERHEADERTYPE::pMarkData, OMX_MARKTYPE::pMarkData, PORT_IS_BEING_FLUSHED, omx_base_source_PrivateType::ports, omx_base_PortType::ReturnBufferFunction, tsem_t::semval, omx_base_component_PrivateType::state, omx_base_source_PrivateType::state, omx_base_component_PrivateType::transientState, tsem_down(), tsem_up(), and tsem_wait().

Referenced by omx_base_source_Constructor().

◆ omx_base_source_Constructor()

OMX_ERRORTYPE omx_base_source_Constructor ( OMX_COMPONENTTYPE * openmaxStandComp,
OMX_STRING cComponentName )

Base source contructor

src/base/omx_base_source.c

OpenMAX base source component. This component does not perform any multimedia processing. It derives from base component and contains a single output port. This class can also be used for a two port source component It can be used as base class for source 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 32 of file omx_base_source.c.

References omx_base_source_PrivateType::BufferMgmtFunction, err, omx_base_component_Constructor(), omx_base_source_BufferMgmtFunction(), OMX_ErrorInsufficientResources, OMX_ErrorNone, and OMX_COMPONENTTYPE::pComponentPrivate.

Referenced by omx_clocksrc_component_Constructor().

◆ omx_base_source_Destructor()

OMX_ERRORTYPE omx_base_source_Destructor ( OMX_COMPONENTTYPE * openmaxStandComp)

The base source destructor. It simply calls the base destructor

Definition at line 58 of file omx_base_source.c.

References omx_base_component_Destructor().

Referenced by omx_clocksrc_component_Destructor().

◆ omx_base_source_twoport_BufferMgmtFunction()

void * omx_base_source_twoport_BufferMgmtFunction ( void * param)

This is the central function for buffer processing of a two port source component. 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 211 of file omx_base_source.c.

References omx_base_source_PrivateType::bMgmtSem, omx_base_component_PrivateType::bStateSem, omx_base_source_PrivateType::BufferMgmtCallback, omx_base_source_PrivateType::callbackData, omx_base_source_PrivateType::callbacks, DEB_LEV_ERR, DEB_LEV_FULL_SEQ, DEB_LEV_FUNCTION_NAME, DEB_LEV_SIMPLE_SEQ, DEBUG, dequeue(), OMX_PARAM_PORTDEFINITIONTYPE::eDomain, OMX_CALLBACKTYPE::EventHandler, omx_base_source_PrivateType::flush_all_condition, omx_base_source_PrivateType::flush_condition, omx_base_source_PrivateType::flush_mutex, OMX_BUFFERHEADERTYPE::hMarkTargetComponent, OMX_MARKTYPE::hMarkTargetComponent, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_BUFFERHEADERTYPE::nFlags, OMX_PORT_PARAM_TYPE::nPorts, OMX_BASE_SOURCE_OUTPUTPORT_INDEX, OMX_BASE_SOURCE_OUTPUTPORT_INDEX_1, OMX_BUFFERFLAG_EOS, OMX_EventBufferFlag, OMX_EventMark, OMX_FALSE, OMX_PortDomainAudio, OMX_PortDomainImage, OMX_PortDomainOther, OMX_PortDomainVideo, 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_source_PrivateType::pMark, OMX_BUFFERHEADERTYPE::pMarkData, OMX_MARKTYPE::pMarkData, PORT_IS_BEING_FLUSHED, omx_base_source_PrivateType::ports, omx_base_PortType::ReturnBufferFunction, omx_base_PortType::sPortParam, omx_base_component_PrivateType::sPortTypesParam, omx_base_source_PrivateType::state, omx_base_source_PrivateType::transientState, tsem_down(), tsem_up(), and tsem_wait().


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