diff -r 481b3bce574a -r b6488ac24ddc omxil/omxilcomponentcommon/src/common/omxilprocessingfunction.h --- a/omxil/omxilcomponentcommon/src/common/omxilprocessingfunction.h Mon Aug 23 21:48:44 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - - -/** - @file - @internalComponent -*/ - -#ifndef OMXILPROCESSINGFUNCTION_H -#define OMXILPROCESSINGFUNCTION_H - -#include - -#include -#include -#include - -#include "omxilfsm.h" - -// Forward declarations -class MOmxILCallbackNotificationIf; - -/** - Base class for component-specific implementations of the Processing Function - abstraction. Component implementations realize within a Processing Function - object the codec specific logic. Component implementations may choose - whether to implement the Processing Function functionality in an additional - independent thread or in-context with the framework. The interface is - designed to generalize the notification of the OpenMAX IL commands, OpenMAX - IL state changes and input/output buffer arrivals to the codec - itself. Implementations of this interface are intended to communicate with - the entity in charge of the egress component communication, the Callback - Manager. - */ -class COmxILProcessingFunction : public CBase - { - -public: - - IMPORT_C ~COmxILProcessingFunction(); - - /** - Framework notification of a state transition in the component. - - @param aNewState The new state. - - @return OMX_ERRORTYPE - */ - virtual OMX_ERRORTYPE StateTransitionIndication( - COmxILFsm::TStateIndex aNewState) = 0; - - /** - Framework notification of a buffer flushing command. - - @param aPortIndex The port that is being flushed. - - @param aDirection The direction of the port that is being flushed. - - @return OMX_ERRORTYPE - */ - virtual OMX_ERRORTYPE BufferFlushingIndication( - TUint32 aPortIndex, - OMX_DIRTYPE aDirection) = 0; - - /** - Framework notification of an OpenMAX IL Param structure change. - - @param aParamIndex The index of the param structure that has changed. - - @param apComponentParameterStructure The param structure. - - @return OMX_ERRORTYPE - */ - virtual OMX_ERRORTYPE ParamIndication( - OMX_INDEXTYPE aParamIndex, - const TAny* apComponentParameterStructure) = 0; - - /** - Framework notification of an OpenMAX IL Config structure change. - - @param aConfigIndex The index of the config structure that has changed. - - @param apComponentConfigStructure The config structure. - - @return OMX_ERRORTYPE - */ - virtual OMX_ERRORTYPE ConfigIndication( - OMX_INDEXTYPE aConfigIndex, - const TAny* apComponentConfigStructure) = 0; - - /** - Framework notification of a buffer arrival. - - @param apBufferHeader The header of the buffer to be processed. - - @param aDirection The direction of the port that has received the - buffer. - - @return OMX_ERRORTYPE - */ - virtual OMX_ERRORTYPE BufferIndication( - OMX_BUFFERHEADERTYPE* apBufferHeader, - OMX_DIRTYPE aDirection) = 0; - - /** - Framework notification of a buffer removal. Here the Processing Function - object is being notified that a buffer needs to be removed from its - internal queues. At present, a synchronous implementation of this method - is assumed. Buffer removal notifications may be originated by the - framework in the following scenarios: - - -# After an OMX_FreeBuffer call has been received from the IL Client or - from another component. - - -# After a port flushing command has been received from the IL Client - AND the port is tunnelled and buffer supplier. - - -# After a transition OMX_StateExecuting/OMX_StatePause -> OMX_StateIdle - has been requested by the IL Client AND the port associated to the - buffer is tunnelled and buffer supplier. - - -# After a port disable command has been received from the IL Client AND - the port associated to the buffer is tunnelled and buffer supplier. - - @param apBufferHeader The buffer header to be removed from internal - queues. - - @param aDirection The direction of the port associated to the buffer. - - @return OMX_BOOL Etrue if the Processing Function has successfully - removed the buffer header from its internal queues, EFalse otherwise. - */ - virtual OMX_BOOL BufferRemovalIndication( - OMX_BUFFERHEADERTYPE* apBufferHeader, - OMX_DIRTYPE aDirection) = 0; - - IMPORT_C virtual OMX_ERRORTYPE ComponentRoleIndication( - TUint aComponentRoleIndex); - - /** - Framework notification of a buffer arrival on a OMX_PortDomainOther; - normally the interested component would just extract the buffer and - let the port manager returns the buffer to the buffer supplier - component via callback immediately. - - @param apBufferHeader The header of the buffer to be processed. - @param aDirection The direction of the port that has received - the buffer. - @return OMX_ERRORTYPE - */ - IMPORT_C virtual OMX_ERRORTYPE MediaTimeIndication(const OMX_TIME_MEDIATIMETYPE& ); - -protected: - - IMPORT_C COmxILProcessingFunction( - MOmxILCallbackNotificationIf& aCallbacks); - -protected: - - MOmxILCallbackNotificationIf& iCallbacks; - - }; - -#endif // OMXILPROCESSINGFUNCTION_H