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 __PREPROC_H__ sl@0: #define __PREPROC_H__ sl@0: sl@0: #include sl@0: #include "TestPluginUIDs.hrh" sl@0: sl@0: enum TPreProcPanicCategory sl@0: { sl@0: EPreProcPanicInitialize = 0, sl@0: EPreProcPanicClockSource, sl@0: EPreProcPanicScreenClipRegion, sl@0: EPreProcPanicPauseClipFail, sl@0: EPreProcPanicSetPosition, sl@0: EPreProcPanicFreezePicture, sl@0: EPreProcPanicReleaseFreeze, sl@0: EPreProcPanicComplexityLevel, sl@0: EPreProcPanicComplexityLevelInfo sl@0: }; sl@0: sl@0: const TUid KUidDevVideoTestPreProcHwDevice = {KUidDevVideoTestPreProcHwDeviceDefine1}; sl@0: const TUid KUidDevVideoTestPreProcHwDevice1 = {KUidDevVideoTestPreProcHwDeviceDefine1}; sl@0: const TUid KUidDevVideoTestPreProcHwDevice2 = {KUidDevVideoTestPreProcHwDeviceDefine2}; sl@0: const TUid KUidDevVideoTestPreProcHwDevice3 = {KUidDevVideoTestPreProcHwDeviceDefine3}; sl@0: const TUid KUidDevVideoTestPreProcHwDevice4 = {KUidDevVideoTestPreProcHwDeviceDefine4}; sl@0: const TUid KUidDevVideoTestPreProcHwDevice5 = {KUidDevVideoTestPreProcHwDeviceDefine5}; sl@0: sl@0: class CMMFTestVideoPreProcHwDevice : public CMMFVideoPreProcHwDevice sl@0: { sl@0: public: sl@0: static CMMFVideoPreProcHwDevice* NewL(TAny* aInitParams); sl@0: ~CMMFTestVideoPreProcHwDevice(); sl@0: sl@0: // from CMMFVideoHwDevice sl@0: virtual TAny* CustomInterface(TUid aInterface); sl@0: sl@0: // from CMMFVideoRecordHwDevice sl@0: virtual CPreProcessorInfo* PreProcessorInfoLC(); sl@0: virtual void SetInputFormatL(const TUncompressedVideoFormat& aFormat, const TSize& aPictureSize); sl@0: virtual void SetSourceCameraL(TInt aCameraHandle, TReal aPictureRate); sl@0: virtual void SetSourceMemoryL(TReal aMaxPictureRate, TBool aConstantPictureRate, TBool aProcessRealtime); sl@0: virtual void SetClockSource(MMMFClockSource* aClock); sl@0: virtual void SetPreProcessTypesL(TUint32 aPreProcessTypes); sl@0: virtual void SetRgbToYuvOptionsL(TRgbRange aRange, const TYuvFormat& aOutputFormat); sl@0: virtual void SetYuvToYuvOptionsL(const TYuvFormat& aInputFormat, const TYuvFormat& aOutputFormat); sl@0: virtual void SetRotateOptionsL(TRotationType aRotationType); sl@0: virtual void SetScaleOptionsL(const TSize& aTargetSize, TBool aAntiAliasFiltering); sl@0: virtual void SetInputCropOptionsL(const TRect& aRect); sl@0: virtual void SetOutputCropOptionsL(const TRect& aRect); sl@0: virtual void SetOutputPadOptionsL(const TSize& aOutputSize, const TPoint& aPicturePos); sl@0: virtual void SetColorEnhancementOptionsL(const TColorEnhancementOptions& aOptions); sl@0: virtual void SetFrameStabilisationOptionsL(const TSize& aOutputSize, TBool aFrameStabilisation); sl@0: virtual void SetCustomPreProcessOptionsL(const TDesC8& aOptions); sl@0: virtual void Initialize(); sl@0: virtual void WritePictureL(TVideoPicture* aPicture); sl@0: virtual void InputEnd(); sl@0: virtual void Start(); sl@0: virtual void Stop(); sl@0: virtual void Pause(); sl@0: virtual void Resume(); sl@0: virtual void Freeze(); sl@0: virtual void ReleaseFreeze(); sl@0: virtual TTimeIntervalMicroSeconds RecordingPosition(); sl@0: virtual void GetPictureCounters(CMMFDevVideoRecord::TPictureCounters& aCounters); sl@0: virtual void GetFrameStabilisationOutput(TRect& aRect); sl@0: virtual TUint NumComplexityLevels(); sl@0: virtual void SetComplexityLevel(TUint aLevel); sl@0: virtual void CommitL(); sl@0: virtual void Revert(); sl@0: sl@0: // from CMMFVideoPreProcHwDevice sl@0: virtual void SetOutputFormatL(const TUncompressedVideoFormat& aFormat); sl@0: virtual void SetOutputDevice(CMMFVideoEncodeHwDevice* aDevice); sl@0: virtual void ReturnPicture(TVideoPicture* aPicture); sl@0: virtual void SetProxy(MMMFDevVideoRecordProxy& aProxy); sl@0: sl@0: private: sl@0: CMMFTestVideoPreProcHwDevice(); sl@0: private: sl@0: MMMFDevVideoRecordProxy* iProxy; sl@0: TBool iIsRecording; sl@0: TTimeIntervalMicroSeconds iRecPosition; sl@0: sl@0: RArray iInputVidFormats; sl@0: RArray iOutputVidFormats; sl@0: RArray iScaleFactors; sl@0: RArray iCombinations; sl@0: }; sl@0: sl@0: #endif