sl@0: /* sl@0: * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * sl@0: */ sl@0: sl@0: #ifndef DEVVIDEOSURFACEHANDLECUSTOMINTERFACE_H sl@0: #define DEVVIDEOSURFACEHANDLECUSTOMINTERFACE_H sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: /** sl@0: DevVideo SurfaceHandle Custom Interface UID. sl@0: sl@0: @publishedPartner sl@0: @prototype sl@0: */ sl@0: const TUid KUidMMFVideoSurfaceHandleControl = { 0x10286486 }; sl@0: sl@0: /** sl@0: Video play surface handle custom interface. This interface can be used by sl@0: a H/W device which creates a surface to pass the surface handle to sl@0: another H/W device. Alternatively, a H/W device may create resources for the sl@0: surface, for example, chunks and pass details to another H/W device to sl@0: create surface based on the chunk information. sl@0: Typically implemented by the post processor and used by a decoder. sl@0: sl@0: @publishedPartner sl@0: @prototype sl@0: */ sl@0: class MMmfVideoSurfaceHandleControl sl@0: { sl@0: public: sl@0: sl@0: /** sl@0: @param aSurfaceHandle Surface handle for the new surface. sl@0: */ sl@0: virtual void MmvshcSetSurfaceHandle(const TSurfaceId& aSurfaceHandle) = 0; sl@0: sl@0: /** sl@0: @param aRedrawBuffer Buffer for the redrawing of the last picture. The sl@0: memory of this buffer is owned by the caller and ownerhship of this memory sl@0: is not transerred as part of this call. Also, the memory may not be valid sl@0: after the call completes. sl@0: */ sl@0: virtual void MmvshcRedrawBufferToSurface(TPtrC8& aRedrawBuffer) = 0; sl@0: sl@0: /** sl@0: This is used to get th esurface create dbased on an ixisting chunk. Typically, sl@0: the chunk would be created by the caller of this method and surface would be sl@0: created by the implementer. sl@0: sl@0: @param aAttributes Info necessary to create surface based on existing chunk. sl@0: @param aHandle Handle of the existing chunk sl@0: @param aSurfaceId Surface Id created as on output of this method. sl@0: sl@0: @return error code sl@0: */ sl@0: virtual TInt MmvshcCreateSurface(const RSurfaceManager::TSurfaceCreationAttributes& aAttributes, TInt aHandle, TSurfaceId& aSurfaceId) = 0; sl@0: sl@0: }; sl@0: sl@0: sl@0: #endif // DEVVIDEOSURFACEHANDLECUSTOMINTERFACE_H sl@0: