os/mm/mmlibs/mmfw/tsrc/mmfunittest/DevVideo/src/TestDevVideoPlugins/postproc.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     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".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 
    17 #ifndef __POSTPROC_H__
    18 #define __POSTPROC_H__
    19 
    20 
    21 #include <mmf/devvideo/videoplayhwdevice.h>
    22 #include "TestPluginUIDs.hrh"
    23 
    24 enum TPostProcPanicCategory
    25 	{
    26 	EPostProcPanicInitialize = 0,
    27 	EPostProcPanicClockSource,
    28 	EPostProcPanicScreenClipRegion,
    29 	EPostProcPanicPauseClipFail,
    30 	EPostProcPanicSetPosition,
    31 	EPostProcPanicFreezePicture,
    32 	EPostProcPanicReleaseFreeze,
    33 	EPostProcPanicComplexityLevel,
    34 	EPostProcPanicComplexityLevelInfo
    35 	};
    36 
    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;
    45 
    46 class CMMFTestVideoPostProcHwDevice : public CMMFVideoPostProcHwDevice
    47 	{
    48 public:
    49 	static CMMFVideoPostProcHwDevice* NewL(TAny* aInitParams);
    50 	~CMMFTestVideoPostProcHwDevice();
    51 
    52 	// from CMMFVideoHwDevice
    53     virtual TAny* CustomInterface(TUid aInterface);
    54 
    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();
    76 	virtual void Start();
    77 	virtual void Stop();
    78 	virtual void Pause();
    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();
    98 
    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);
   104 
   105 private:
   106 	CMMFTestVideoPostProcHwDevice();
   107 private:
   108 	MMMFDevVideoPlayProxy* iProxy;
   109 
   110 	RArray<TUncompressedVideoFormat> iVidFormats;
   111 	RArray<TScaleFactor> iScaleFactors;
   112 	RArray<TUint32> iCombinations;
   113 	
   114 	RArray<TVideoPicture> iVideoPictures;
   115 	TInt iCurrentPicture;
   116 	TBool iIsPlaying;
   117 	TPictureId iPictureId;
   118 	TPictureData iPictureData;
   119 	TTimeIntervalMicroSeconds iPictureTimestamp;
   120 	};
   121 
   122 #endif