sl@0: // Copyright (c) 2003-2009 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 __POSTPROC_H__ sl@0: #define __POSTPROC_H__ sl@0: sl@0: sl@0: #include sl@0: #include "TestPluginUIDs.hrh" sl@0: sl@0: enum TPostProcPanicCategory sl@0: { sl@0: EPostProcPanicInitialize = 0, sl@0: EPostProcPanicClockSource, sl@0: EPostProcPanicScreenClipRegion, sl@0: EPostProcPanicPauseClipFail, sl@0: EPostProcPanicSetPosition, sl@0: EPostProcPanicFreezePicture, sl@0: EPostProcPanicReleaseFreeze, sl@0: EPostProcPanicComplexityLevel, sl@0: EPostProcPanicComplexityLevelInfo sl@0: }; sl@0: sl@0: const TUid KUidDevVideoTestPostProcHwDevice = {KUidDevVideoTestPostProcHwDeviceDefine1}; sl@0: const TUid KUidDevVideoTestPostProcHwDevice1 = {KUidDevVideoTestPostProcHwDeviceDefine1}; sl@0: const TUid KUidDevVideoTestPostProcHwDevice2 = {KUidDevVideoTestPostProcHwDeviceDefine2}; sl@0: const TUid KUidDevVideoTestPostProcHwDevice3 = {KUidDevVideoTestPostProcHwDeviceDefine3}; sl@0: const TUid KUidDevVideoTestPostProcHwDevice4 = {KUidDevVideoTestPostProcHwDeviceDefine4}; sl@0: const TUid KUidDevVideoTestPostProcHwDevice5 = {KUidDevVideoTestPostProcHwDeviceDefine5}; sl@0: const TInt KPostProcDefaultScreenNumber = 0; sl@0: const TInt KPostProcSecondaryScreenNumber = 1; sl@0: sl@0: class CMMFTestVideoPostProcHwDevice : public CMMFVideoPostProcHwDevice sl@0: { sl@0: public: sl@0: static CMMFVideoPostProcHwDevice* NewL(TAny* aInitParams); sl@0: ~CMMFTestVideoPostProcHwDevice(); sl@0: sl@0: // from CMMFVideoHwDevice sl@0: virtual TAny* CustomInterface(TUid aInterface); sl@0: sl@0: // from CMMFVideoPlayHwDevice sl@0: virtual CPostProcessorInfo* PostProcessorInfoLC(); sl@0: virtual void GetOutputFormatListL(RArray& aFormats); sl@0: virtual void SetOutputFormatL(const TUncompressedVideoFormat &aFormat); sl@0: virtual void SetPostProcessTypesL(TUint32 aPostProcCombination); sl@0: virtual void SetInputCropOptionsL(const TRect& aRect); sl@0: virtual void SetYuvToRgbOptionsL(const TYuvToRgbOptions& aOptions, const TYuvFormat& aYuvFormat, TRgbFormat aRgbFormat); sl@0: virtual void SetYuvToRgbOptionsL(const TYuvToRgbOptions& aOptions); sl@0: virtual void SetRotateOptionsL(TRotationType aRotationType); sl@0: virtual void SetScaleOptionsL(const TSize& aTargetSize, TBool aAntiAliasFiltering); sl@0: virtual void SetOutputCropOptionsL(const TRect& aRect); sl@0: virtual void SetPostProcSpecificOptionsL(const TDesC8& aOptions); sl@0: virtual void SetClockSource(MMMFClockSource* aClock); sl@0: virtual void SetVideoDestScreenL(TBool aScreen); sl@0: virtual void Initialize(); sl@0: virtual void StartDirectScreenAccessL(const TRect& aVideoRect, CFbsScreenDevice& aScreenDevice, const TRegion& aClipRegion); sl@0: virtual void SetScreenClipRegion(const TRegion& aRegion); sl@0: virtual void SetPauseOnClipFail(TBool aPause); sl@0: virtual void AbortDirectScreenAccess(); sl@0: virtual TBool IsPlaying(); sl@0: virtual void Redraw(); sl@0: virtual void Start(); sl@0: virtual void Stop(); sl@0: virtual void Pause(); sl@0: virtual void Resume(); sl@0: virtual void SetPosition(const TTimeIntervalMicroSeconds& aPlaybackPosition); sl@0: virtual void FreezePicture(const TTimeIntervalMicroSeconds& aTimestamp); sl@0: virtual void ReleaseFreeze(const TTimeIntervalMicroSeconds& aTimestamp); sl@0: virtual TTimeIntervalMicroSeconds PlaybackPosition(); sl@0: virtual TUint PictureBufferBytes(); sl@0: virtual void GetPictureCounters(CMMFDevVideoPlay::TPictureCounters& aCounters); sl@0: virtual void SetComplexityLevel(TUint aLevel); sl@0: virtual TUint NumComplexityLevels(); sl@0: virtual void GetComplexityLevelInfo(TUint aLevel, CMMFDevVideoPlay::TComplexityLevelInfo& aInfo); sl@0: virtual void ReturnPicture(TVideoPicture* aPicture); sl@0: virtual TBool GetSnapshotL(TPictureData& aPictureData, const TUncompressedVideoFormat& aFormat); sl@0: virtual void GetTimedSnapshotL(TPictureData* aPictureData, const TUncompressedVideoFormat& aFormat, const TTimeIntervalMicroSeconds& aPresentationTimestamp); sl@0: virtual void GetTimedSnapshotL(TPictureData* aPictureData, const TUncompressedVideoFormat& aFormat, const TPictureId& aPictureId); sl@0: virtual void CancelTimedSnapshot(); sl@0: virtual void GetSupportedSnapshotFormatsL(RArray& aFormats); sl@0: virtual void InputEnd(); sl@0: virtual void CommitL(); sl@0: virtual void Revert(); sl@0: sl@0: // from CMMFVideoPostProcHwDevice sl@0: virtual void SetInputFormatL(const TUncompressedVideoFormat& aFormat); sl@0: virtual void SetInputDevice(CMMFVideoDecodeHwDevice* aDevice); sl@0: virtual void WritePictureL(TVideoPicture* aPicture); sl@0: virtual void SetProxy(MMMFDevVideoPlayProxy& aProxy); sl@0: sl@0: private: sl@0: CMMFTestVideoPostProcHwDevice(); sl@0: private: sl@0: MMMFDevVideoPlayProxy* iProxy; sl@0: sl@0: RArray iVidFormats; sl@0: RArray iScaleFactors; sl@0: RArray iCombinations; sl@0: sl@0: RArray iVideoPictures; sl@0: TInt iCurrentPicture; sl@0: TBool iIsPlaying; sl@0: TPictureId iPictureId; sl@0: TPictureData iPictureData; sl@0: TTimeIntervalMicroSeconds iPictureTimestamp; sl@0: }; sl@0: sl@0: #endif