First public contribution.
1 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
17 #ifndef __POSTPROC_H__
18 #define __POSTPROC_H__
21 #include <mmf/devvideo/videoplayhwdevice.h>
22 #include "TestPluginUIDs.hrh"
24 enum TPostProcPanicCategory
26 EPostProcPanicInitialize = 0,
27 EPostProcPanicClockSource,
28 EPostProcPanicScreenClipRegion,
29 EPostProcPanicPauseClipFail,
30 EPostProcPanicSetPosition,
31 EPostProcPanicFreezePicture,
32 EPostProcPanicReleaseFreeze,
33 EPostProcPanicComplexityLevel,
34 EPostProcPanicComplexityLevelInfo
37 const TUid KUidDevVideoTestPostProcHwDevice = {KUidDevVideoTestPostProcHwDeviceDefine1};
38 const TUid KUidDevVideoTestPostProcHwDevice1 = {KUidDevVideoTestPostProcHwDeviceDefine1};
39 const TUid KUidDevVideoTestPostProcHwDevice2 = {KUidDevVideoTestPostProcHwDeviceDefine2};
40 const TUid KUidDevVideoTestPostProcHwDevice3 = {KUidDevVideoTestPostProcHwDeviceDefine3};
41 const TUid KUidDevVideoTestPostProcHwDevice4 = {KUidDevVideoTestPostProcHwDeviceDefine4};
42 const TUid KUidDevVideoTestPostProcHwDevice5 = {KUidDevVideoTestPostProcHwDeviceDefine5};
43 const TInt KPostProcDefaultScreenNumber = 0;
44 const TInt KPostProcSecondaryScreenNumber = 1;
46 class CMMFTestVideoPostProcHwDevice : public CMMFVideoPostProcHwDevice
49 static CMMFVideoPostProcHwDevice* NewL(TAny* aInitParams);
50 ~CMMFTestVideoPostProcHwDevice();
52 // from CMMFVideoHwDevice
53 virtual TAny* CustomInterface(TUid aInterface);
55 // from CMMFVideoPlayHwDevice
56 virtual CPostProcessorInfo* PostProcessorInfoLC();
57 virtual void GetOutputFormatListL(RArray<TUncompressedVideoFormat>& aFormats);
58 virtual void SetOutputFormatL(const TUncompressedVideoFormat &aFormat);
59 virtual void SetPostProcessTypesL(TUint32 aPostProcCombination);
60 virtual void SetInputCropOptionsL(const TRect& aRect);
61 virtual void SetYuvToRgbOptionsL(const TYuvToRgbOptions& aOptions, const TYuvFormat& aYuvFormat, TRgbFormat aRgbFormat);
62 virtual void SetYuvToRgbOptionsL(const TYuvToRgbOptions& aOptions);
63 virtual void SetRotateOptionsL(TRotationType aRotationType);
64 virtual void SetScaleOptionsL(const TSize& aTargetSize, TBool aAntiAliasFiltering);
65 virtual void SetOutputCropOptionsL(const TRect& aRect);
66 virtual void SetPostProcSpecificOptionsL(const TDesC8& aOptions);
67 virtual void SetClockSource(MMMFClockSource* aClock);
68 virtual void SetVideoDestScreenL(TBool aScreen);
69 virtual void Initialize();
70 virtual void StartDirectScreenAccessL(const TRect& aVideoRect, CFbsScreenDevice& aScreenDevice, const TRegion& aClipRegion);
71 virtual void SetScreenClipRegion(const TRegion& aRegion);
72 virtual void SetPauseOnClipFail(TBool aPause);
73 virtual void AbortDirectScreenAccess();
74 virtual TBool IsPlaying();
75 virtual void Redraw();
79 virtual void Resume();
80 virtual void SetPosition(const TTimeIntervalMicroSeconds& aPlaybackPosition);
81 virtual void FreezePicture(const TTimeIntervalMicroSeconds& aTimestamp);
82 virtual void ReleaseFreeze(const TTimeIntervalMicroSeconds& aTimestamp);
83 virtual TTimeIntervalMicroSeconds PlaybackPosition();
84 virtual TUint PictureBufferBytes();
85 virtual void GetPictureCounters(CMMFDevVideoPlay::TPictureCounters& aCounters);
86 virtual void SetComplexityLevel(TUint aLevel);
87 virtual TUint NumComplexityLevels();
88 virtual void GetComplexityLevelInfo(TUint aLevel, CMMFDevVideoPlay::TComplexityLevelInfo& aInfo);
89 virtual void ReturnPicture(TVideoPicture* aPicture);
90 virtual TBool GetSnapshotL(TPictureData& aPictureData, const TUncompressedVideoFormat& aFormat);
91 virtual void GetTimedSnapshotL(TPictureData* aPictureData, const TUncompressedVideoFormat& aFormat, const TTimeIntervalMicroSeconds& aPresentationTimestamp);
92 virtual void GetTimedSnapshotL(TPictureData* aPictureData, const TUncompressedVideoFormat& aFormat, const TPictureId& aPictureId);
93 virtual void CancelTimedSnapshot();
94 virtual void GetSupportedSnapshotFormatsL(RArray<TUncompressedVideoFormat>& aFormats);
95 virtual void InputEnd();
96 virtual void CommitL();
97 virtual void Revert();
99 // from CMMFVideoPostProcHwDevice
100 virtual void SetInputFormatL(const TUncompressedVideoFormat& aFormat);
101 virtual void SetInputDevice(CMMFVideoDecodeHwDevice* aDevice);
102 virtual void WritePictureL(TVideoPicture* aPicture);
103 virtual void SetProxy(MMMFDevVideoPlayProxy& aProxy);
106 CMMFTestVideoPostProcHwDevice();
108 MMMFDevVideoPlayProxy* iProxy;
110 RArray<TUncompressedVideoFormat> iVidFormats;
111 RArray<TScaleFactor> iScaleFactors;
112 RArray<TUint32> iCombinations;
114 RArray<TVideoPicture> iVideoPictures;
115 TInt iCurrentPicture;
117 TPictureId iPictureId;
118 TPictureData iPictureData;
119 TTimeIntervalMicroSeconds iPictureTimestamp;