openmaxil_plat/test_api/inc/omxilsymbianbuffersextensions.h
author hgs
Thu, 14 Oct 2010 10:21:48 +0100
changeset 5 fb6faddbb212
parent 0 0e4a32b9112d
permissions -rw-r--r--
2010wk42

/*
* Copyright (c) 2008 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 OMXILSYMBIANBUFFERSOURCEEXTENSIONS_H
#define OMXILSYMBIANBUFFERSOURCEEXTENSIONS_H

#include <openmax/il/khronos/v1_x/OMX_Types.h>

/**
 * The string that the Symbian's OpenMAX IL Buffer components will
 * translate into a 32-bit OpenMAX IL index to support the message queue communication
 * with user client
 */
#if 1
const char sOmxSymbianBufferMsgQueue [] = "OMX.SYMBIAN.INDEX.PARAM.BUFFERMSGQUEUE";
#endif
const char sOmxSymbianBufferSize[] = "OMX.SYMBIAN.INDEX.PARAM.BUFFERSIZE";
const char sOmxSymbianBufferChunk[] = "OMX.SYMBIAN.INDEX.PARAM.BUFFERCHUNK";

/*
 * Custom index used by Symbian's OpenMAX IL Buffers to select the
 * structure for getting message queue global names
 * 
 * Vendor specific structures should be in the range of 0x7F000000 to 0x7FFFFFFE.
 * This range is not broken out by vendor, so private indexes are not guaranteed unique 
 * and therefore should only be sent to the appropriate component.
 */
#if 1
#define OMX_SymbianIndexParamBufferMsgQueueData 0x7F000006 // TBC
#endif
#define OMX_SymbianIndexParamBufferSize 0x7F000007
#define OMX_SymbianIndexParam3PlaneBufferChunk 0x7F000008

#if 1 
/**
 * Custom OpenMAX IL structure to be used as a container for message queue global names
 */
struct OMX_SYMBIAN_PARAM_BUFFER_MSGQUEUE
	{
    OMX_U32 nSize;                 /**< Size of this structure, in Bytes */
    OMX_VERSIONTYPE nVersion;      /**< OMX specification version information */
    OMX_U32 nPortIndex;            /**< Port that this structure applies to */
    OMX_PTR pBufSrcComponentHandles;	/** This is a pointer to TBufSrcComponentHandles */
	};
#endif

/**
 Custom OpenMAX IL structure used as container for buffer size on RChunk backed buffers
 */

struct OMX_SYMBIAN_PARAM_BUFFER_SIZE
	{
	OMX_U32 nSize;				/**< Size of this structure, in Bytes */
	OMX_VERSIONTYPE nVersion;	/**< OMX specification version information */
	OMX_U32 nPortIndex;			/**< Port that this structure applies to */
	OMX_S32 nBufferSize;		/**< Buffer size in bytes */
	};

struct OMX_SYMBIAN_PARAM_3PLANE_CHUNK_DATA
	{
	OMX_U32 nSize;                 /**< Size of this structure, in Bytes */
	OMX_VERSIONTYPE nVersion;      /**< OMX specification version information */
	OMX_U32 nPortIndex;	           /**< Port that this structure applies to */
	OMX_U32 nChunk;	               /**< Chunk */
	OMX_U32 nFilledBufferQueue;	   /**< FilledBufferQueue */
	OMX_U32 nAvailableBufferQueue; /**< AVailableBufferQueue */	
	OMX_U64 nThreadId;             /**< The thread which creates the chunk */
	};

#endif // OMXILSYMBIANBUFFERSOURCEEXTENSIONS_H