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: // Header file: DevVideoPlay test data. sl@0: // sl@0: // sl@0: sl@0: /** sl@0: @file TestDevVideoPlayTestData.h sl@0: */ sl@0: sl@0: #ifndef __TESTDEVVIDEOPLAYTESTDATA_H__ sl@0: #define __TESTDEVVIDEOPLAYTESTDATA_H__ sl@0: sl@0: #include "TSU_MMF_DevVideo.h" sl@0: sl@0: sl@0: // mime types sl@0: _LIT8(KTestMimeType1, "video/testvideo"); sl@0: sl@0: // optional data sl@0: _LIT8(KTestOptional1, "blah blah blah blah blah"); sl@0: sl@0: // test uncompressed video formats sl@0: const TUncompressedVideoFormat KTestVidFormat1 = {ERgbRawData}; sl@0: const TUncompressedVideoFormat KTestVidFormat2 = {ERgbFbsBitmap}; sl@0: const TUncompressedVideoFormat KTestVidFormat3 = {EYuvRawData}; sl@0: sl@0: // test unit and encapsulation types sl@0: const TVideoDataUnitType KTestUnitType1 = EDuCodedPicture; sl@0: const TVideoDataUnitEncapsulation KTestEncapType1 = EDuElementaryStream; sl@0: sl@0: // test compressed video format utility function sl@0: static inline CCompressedVideoFormat* GetTestCVFormatL( const TDesC8& aMimeType ) sl@0: { sl@0: CCompressedVideoFormat* temp = CCompressedVideoFormat::NewL( aMimeType, KTestOptional1 ); sl@0: return temp; sl@0: } sl@0: sl@0: // test pre-process types sl@0: const TUint32 KTestProcessType1 = EPpInputCrop | EPpMirror | EPpRotate; sl@0: const TUint32 KTestProcessType2 = EPpScale | EPpOutputCrop | EPpOutputPad; sl@0: sl@0: // input crop rectangles sl@0: const TInt KTestInputCropRectA = 0; sl@0: const TInt KTestInputCropRectB = 50; sl@0: const TInt KTestInputCropRectC = 100; sl@0: const TInt KTestInputCropRectD = 150; sl@0: sl@0: // KTestInputCropRect1 = A, B, C, D; sl@0: // KTestInputCropRect2 = D, C, B, A; sl@0: sl@0: // yuv to rgb options sl@0: const TYuvToRgbOptions KTestYuvToRgb1 = {50, 50, 50, 0.5, EDitherNone}; sl@0: const TYuvToRgbOptions KTestYuvToRgb2 = {100, 100, 100, 1.0, EDitherErrorDiffusion}; sl@0: static inline TBool CompareYuvRgbOptions(const TYuvToRgbOptions& a, const TYuvToRgbOptions& b) sl@0: { sl@0: if ( (a.iLightness == b.iLightness) && (a.iSaturation == b.iSaturation) && sl@0: (a.iContrast == b.iContrast) && (a.iGamma == b.iGamma) && sl@0: (a.iDitherType == b.iDitherType) ) sl@0: return ETrue; sl@0: else return EFalse; sl@0: } sl@0: sl@0: sl@0: // conversion matrices sl@0: const TYuvConversionMatrix KTestYuvMatrix1 = {{1, 2, 3}, {4, 5, 6, 7, 8, 9, 10, 11, 12}, {13, 14, 15}}; sl@0: const TYuvConversionMatrix KTestYuvMatrix2 = {{-1, -2, -3}, {-4, -5, -6, -7, -8, -9, -10, -11, -12}, {-13, -14, -15}}; sl@0: sl@0: static inline TBool CompareYuvMatrices(const TYuvConversionMatrix& a, const TYuvConversionMatrix& b) sl@0: { sl@0: TBool same = ETrue; sl@0: TInt x = 0; sl@0: sl@0: for (x = 0; x < 3; x++) sl@0: { sl@0: if ( (a.iPostOffset[x] != b.iPostOffset[x]) || sl@0: (a.iPreOffset[x] != b.iPreOffset[x]) ) sl@0: { sl@0: same = EFalse; sl@0: } sl@0: } sl@0: sl@0: for (x = 0; x < 9; x++) sl@0: { sl@0: if (a.iMatrix[x] != b.iMatrix[x]) sl@0: { sl@0: same = EFalse; sl@0: } sl@0: } sl@0: sl@0: return same; sl@0: } sl@0: sl@0: // yuv formats sl@0: const TYuvFormat KTestYuvFormat1 = {EYuvRange0, EYuv420Chroma1, EYuvDataPlanar, const_cast (&KTestYuvMatrix1), const_cast (&KTestYuvMatrix2), 10, 20}; sl@0: const TYuvFormat KTestYuvFormat2 = {EYuvRange1, EYuv420Chroma2, EYuvDataInterleavedLE, const_cast (&KTestYuvMatrix2), const_cast (&KTestYuvMatrix1), 5, 10}; sl@0: sl@0: static inline TBool CompareYuvFormats(const TYuvFormat& a, const TYuvFormat& b) sl@0: { sl@0: if ( (a.iCoefficients == b.iCoefficients) && sl@0: (a.iPattern == b.iPattern) && sl@0: (a.iDataLayout == b.iDataLayout) && sl@0: (CompareYuvMatrices(*a.iYuv2RgbMatrix, *b.iYuv2RgbMatrix)) && sl@0: (CompareYuvMatrices(*a.iRgb2YuvMatrix, *b.iRgb2YuvMatrix)) && sl@0: (a.iAspectRatioNum == b.iAspectRatioNum) && sl@0: (a.iAspectRatioDenom == b.iAspectRatioDenom) ) sl@0: return ETrue; sl@0: else return EFalse; sl@0: } sl@0: sl@0: // rgb formats sl@0: const TRgbFormat KTestRgbFormat1 = ERgb16bit444; sl@0: const TRgbFormat KTestRgbFormat2 = EFbsBitmapColor16M; sl@0: sl@0: // rotation types sl@0: const TRotationType KTestRotate1 = ERotate90Clockwise; sl@0: const TRotationType KTestRotate2 = ERotate90Anticlockwise; sl@0: sl@0: // test scale size sl@0: const TInt KTestScaleX = 100; sl@0: const TInt KTestScaleY = 50; sl@0: sl@0: // output crop rectangles sl@0: const TInt KTestOutputCropRectA = 0; sl@0: const TInt KTestOutputCropRectB = 50; sl@0: const TInt KTestOutputCropRectC = 256; sl@0: const TInt KTestOutputCropRectD = 350; sl@0: sl@0: // KTestOutputCropRect1 = A, B, C, D; sl@0: // KTestOutputCropRect2 = D, C, B, A; sl@0: sl@0: // post-processor options sl@0: _LIT8(KTestPostProcOptions1, "abcdefghijklmno"); sl@0: _LIT8(KTestPostProcOptions2, "123456-7-654321"); sl@0: sl@0: // buffer options creation utility function sl@0: static inline CMMFDevVideoPlay::TBufferOptions GetTestBufferOptions( void ) sl@0: { sl@0: CMMFDevVideoPlay::TBufferOptions buffOptions; sl@0: sl@0: buffOptions.iPreDecodeBufferSize = 10; sl@0: buffOptions.iMaxPostDecodeBufferSize = 20; sl@0: buffOptions.iPreDecoderBufferPeriod = 30; sl@0: buffOptions.iPostDecoderBufferPeriod = 40; sl@0: buffOptions.iMaxInputBufferSize = 50; sl@0: buffOptions.iMinNumInputBuffers = 60; sl@0: sl@0: return buffOptions; sl@0: } sl@0: sl@0: // buffer options comparison utility function sl@0: static inline TBool CompareBufferOptions(const CMMFDevVideoPlay::TBufferOptions& a, const CMMFDevVideoPlay::TBufferOptions& b) sl@0: { sl@0: if ( (a.iPreDecodeBufferSize == b.iPreDecodeBufferSize) && sl@0: (a.iMaxPostDecodeBufferSize == b.iMaxPostDecodeBufferSize) && sl@0: (a.iPreDecoderBufferPeriod == b.iPreDecoderBufferPeriod) && sl@0: (a.iPostDecoderBufferPeriod == b.iPostDecoderBufferPeriod) && sl@0: (a.iMaxInputBufferSize == b.iMaxInputBufferSize) && sl@0: (a.iMinNumInputBuffers == b.iMinNumInputBuffers) ) sl@0: return ETrue; sl@0: else return EFalse; sl@0: } sl@0: sl@0: // Hrd/Vbv test data sl@0: const THrdVbvSpecification KTestHrdVbvSpec = EHrdVbv3GPP; sl@0: _LIT8(KTestHrdVbvParams, "not exactly a package of parameters but never mind"); sl@0: sl@0: // direct screen access test data sl@0: const TInt KTestDSARectA = 0; sl@0: const TInt KTestDSARectB = 100; sl@0: const TInt KTestDSARectC = 200; sl@0: const TInt KTestDSARectD = 300; sl@0: sl@0: // KTestDSARect1 = A, B, C, D; sl@0: // KTestDSARect2 = D, C, B, A; sl@0: sl@0: // KTestDSARegion1 = {KTestDSARect1}; sl@0: // KTestDSARegion2 = {KTestDSARect2}; sl@0: sl@0: // position test data sl@0: const TInt KTestPosition = 12345; sl@0: const TInt KTestPositionFatal = 666; sl@0: const TInt KTestDecodePosition = 256; sl@0: const TInt KTestPlayPosition = 512; sl@0: sl@0: // buffer bytes test data sl@0: const TUint KTestPreDecoderBytes = 1024; sl@0: const TUint KTestPictureBytes = 2048; sl@0: sl@0: // picture counters creation utility function sl@0: static inline CMMFDevVideoPlay::TPictureCounters GetTestPictureCounters( void ) sl@0: { sl@0: CMMFDevVideoPlay::TPictureCounters picCount; sl@0: sl@0: picCount.iPicturesSkipped = 10; sl@0: picCount.iPicturesDecoded = 20; sl@0: picCount.iPicturesDisplayed = 30; sl@0: picCount.iTotalPictures = 40; sl@0: sl@0: return picCount; sl@0: } sl@0: sl@0: // picture counters comparison utility function sl@0: static inline TBool ComparePictureCounters(const CMMFDevVideoPlay::TPictureCounters& a, const CMMFDevVideoPlay::TPictureCounters& b) sl@0: { sl@0: if ( (a.iPicturesSkipped == b.iPicturesSkipped) && sl@0: (a.iPicturesDecoded == b.iPicturesDecoded) && sl@0: (a.iPicturesDisplayed == b.iPicturesDisplayed) && sl@0: (a.iTotalPictures == b.iTotalPictures) ) sl@0: return ETrue; sl@0: else return EFalse; sl@0: } sl@0: sl@0: // bitstream counters creation utility function sl@0: static inline CMMFDevVideoPlay::TBitstreamCounters GetTestBitstreamCounters( void ) sl@0: { sl@0: CMMFDevVideoPlay::TBitstreamCounters bitCount; sl@0: sl@0: bitCount.iLostPackets = 256; sl@0: bitCount.iTotalPackets = 512; sl@0: sl@0: return bitCount; sl@0: } sl@0: sl@0: // bitstream counters comparison utility function sl@0: static inline TBool CompareBitstreamCounters(const CMMFDevVideoPlay::TBitstreamCounters& a, const CMMFDevVideoPlay::TBitstreamCounters& b) sl@0: { sl@0: if ( (a.iLostPackets == b.iLostPackets) && sl@0: (a.iTotalPackets == b.iTotalPackets) ) sl@0: return ETrue; sl@0: else return EFalse; sl@0: } sl@0: sl@0: // test num buffers sl@0: const TUint KTestNumFreeBuffers = 4096; sl@0: sl@0: // complexity levels sl@0: const TUint KTestComplexityLevel1 = 1; sl@0: const TUint KTestComplexityLevel2 = 3; sl@0: const TUint KTestNumComplexityLevels1 = 5; sl@0: const TUint KTestNumComplexityLevels2 = 10; sl@0: sl@0: // complexity level info creation utility function sl@0: static inline CMMFDevVideoPlay::TComplexityLevelInfo GetTestLevelInfo( TInt a ) sl@0: { sl@0: CMMFDevVideoPlay::TComplexityLevelInfo levInfo; sl@0: sl@0: levInfo.iOptions = CMMFDevVideoPlay::TComplexityLevelInfo::EAvgPictureRate; sl@0: levInfo.iAvgPictureRate = 1.5; sl@0: levInfo.iPictureSize.SetSize(a * 100,a * 200); sl@0: levInfo.iRelativeImageQuality = 0.5; sl@0: levInfo.iRequiredMIPS = a; sl@0: levInfo.iRelativeProcessTime = 0.3; sl@0: sl@0: return levInfo; sl@0: } sl@0: sl@0: // complexity level info comparison utility function sl@0: static inline TBool CompareLevelInfos(const CMMFDevVideoPlay::TComplexityLevelInfo& a, const CMMFDevVideoPlay::TComplexityLevelInfo& b) sl@0: { sl@0: if ( (a.iOptions == b.iOptions) && sl@0: (a.iAvgPictureRate == b.iAvgPictureRate) && sl@0: (a.iPictureSize == b.iPictureSize) && sl@0: (a.iRelativeImageQuality == b.iRelativeImageQuality) && sl@0: (a.iRequiredMIPS == b.iRequiredMIPS) && sl@0: (a.iRelativeProcessTime == b.iRelativeProcessTime) ) sl@0: return ETrue; sl@0: else return EFalse; sl@0: } sl@0: sl@0: // picture timestamp test data sl@0: const TInt KTestPictureTimestamp = 12345; sl@0: sl@0: // input buffer test data sl@0: _LIT8(KTestBufferString, "Roobarb and Custard!"); sl@0: const TUint32 KTestBufferOptions = TVideoInputBuffer::EDecodingTimestamp; sl@0: const TUint KTestBufferSize = 20; sl@0: sl@0: // decoder info sl@0: const TUint32 KTestDecoderInfoCount = 3; sl@0: sl@0: const TText8* const KTestDecoderInfoMimeArray[KTestDecoderInfoCount] = sl@0: { sl@0: _S8("video/bunglevideo"), sl@0: _S8("video/zippyvideo"), sl@0: _S8("video/georgevideo") sl@0: }; sl@0: sl@0: _LIT(KTestDecoderInfoManufacturer, "fred bloggs plc"); sl@0: _LIT(KTestDecoderInfoIdentifier, "video funkifier"); sl@0: sl@0: const TInt KTestDecoderInfoMaxSizeX = 256; sl@0: const TInt KTestDecoderInfoMaxSizeY = 512; sl@0: sl@0: _LIT8(KTestDecoderInfoCSInfo, "coded by a blind monkey"); sl@0: _LIT8(KTestDecoderInfoISInfo, "implemented by a baboon"); sl@0: sl@0: const TInt KTestDecoderInfoVersionMaj = 1; sl@0: const TInt KTestDecoderInfoVersionMin = 2; sl@0: const TInt KTestDecoderInfoVersionBuild = 3; sl@0: // KTestDecoderInfoVersion = Maj.Min.Build; sl@0: sl@0: // post processor info sl@0: const TUint32 KTestPostProcInfoCount = 3; sl@0: _LIT(KTestPostProcInfoManufacturer, "honest sid inc"); sl@0: _LIT(KTestPostProcInfoIdentifier, "video post-funkifier"); sl@0: sl@0: _LIT8(KTestPostProcInfoISInfo, "implemented by a lame pigeon"); sl@0: sl@0: const TInt KTestPostProcInfoVersionMaj = 1; sl@0: const TInt KTestPostProcInfoVersionMin = 2; sl@0: const TInt KTestPostProcInfoVersionBuild = 3; sl@0: // KTestPostProcInfoVersion = Maj.Min.Build; sl@0: sl@0: const TUint32 KTestPostProcInfoRotations = ERotate90Clockwise | ERotate90Anticlockwise | ERotate180; sl@0: sl@0: const TYuvToRgbCapabilities KTestPostProcInfoYuvToRgbCaps = {1, 2, 3, ETrue, EFalse, ETrue, EFalse, 4}; sl@0: static inline TBool CompareYuvRgbCaps(const TYuvToRgbCapabilities& a, const TYuvToRgbCapabilities& b) sl@0: { sl@0: if ( (a.iSamplingPatterns == b.iSamplingPatterns) && (a.iCoefficients == b.iCoefficients) && sl@0: (a.iRgbFormats == b.iRgbFormats) && (a.iLightnessControl == b.iLightnessControl) && sl@0: (a.iSaturationControl == b.iSaturationControl) && (a.iContrastControl == b.iContrastControl) && sl@0: (a.iGammaCorrection == b.iGammaCorrection) && (a.iDitherTypes == b.iDitherTypes) ) sl@0: return ETrue; sl@0: else return EFalse; sl@0: } sl@0: sl@0: const TUncompressedVideoFormat KTestPostProcInfoFormatArray[KTestPostProcInfoCount] = sl@0: {{ERgbRawData}, {ERgbFbsBitmap}, {EYuvRawData}}; sl@0: sl@0: const TUint32 KTestPostProcInfoCombsArray[KTestPostProcInfoCount] = sl@0: {KTestProcessType1, KTestProcessType2, EPpNoiseFilter | EPpColorEnhancement | EPpFrameStabilisation}; sl@0: sl@0: const TScaleFactor KTestPostProcInfoScaleFactorsArray[KTestPostProcInfoCount] = sl@0: {{1, 2}, {1, 4}, {1,8}}; sl@0: sl@0: static inline TBool CompareScaleFactors(const TScaleFactor& a, const TScaleFactor& b) sl@0: { sl@0: if ((a.iScaleNum == b.iScaleNum) && (a.iScaleDenom == b.iScaleDenom)) sl@0: return ETrue; sl@0: else return EFalse; sl@0: } sl@0: sl@0: const TUncompressedVideoFormat KTestPostProcInfoNegativeFormat = {EYuvRawData}; sl@0: const TUint32 KTestPostProcInfoNegativeComb = EPpCustom; sl@0: sl@0: sl@0: // video header information sl@0: const TVideoDataUnitType KTestDataUnitType = EDuCodedPicture; sl@0: const TVideoDataUnitEncapsulation KTestDataUnitEncap = EDuElementaryStream; sl@0: const TVideoInputBuffer::TVideoBufferOptions KTestInputBufferOptions = TVideoInputBuffer::EPresentationTimestamp; sl@0: const TVideoPictureHeader::THeaderOptions KTestPictureHeaderOptions = TVideoPictureHeader::EPresentationTimestamp; sl@0: const TInt KTestInputBufferTimestamp = 1000000; sl@0: const TInt KTestPictureHeaderTimestamp = 2000000; sl@0: _LIT8(KTestInputBufferData, "I'm a lumber jack and I'm OK!"); sl@0: sl@0: // TPictureData sl@0: const TInt KTestPictureDataSizeX = 57; sl@0: const TInt KTestPictureDataSizeY = 18; sl@0: sl@0: // snapshot data sl@0: const TInt KTestSnapshotTimestamp = 1000; sl@0: const TPictureId KTestSnapshotId = {TPictureId::ETemporalReference, 999}; sl@0: sl@0: // clock deviation sl@0: const TUint KTestClockDeviationMS = 500000; // 0.5 seconds sl@0: const TUint KTestClockBigDeviationMS = 2000000; // 2 seconds sl@0: const TUint KTestClock2Seconds = 2000000; sl@0: const TUint KTestClock4Seconds = 4000000; sl@0: const TUint KTestClock18Seconds = 18000000; sl@0: const TUint KTestClock20Seconds = 20000000; sl@0: const TUint KTestClock22Seconds = 22000000; sl@0: sl@0: // devvideorecord specific test data sl@0: const TInt KTestInputSize1X = 640; sl@0: const TInt KTestInputSize1Y = 480; sl@0: sl@0: const TInt KTestInputSize2X = 320; sl@0: const TInt KTestInputSize2Y = 200; sl@0: sl@0: const TInt KTestCamHandlePre = 1; sl@0: const TInt KTestCamHandleEnc = 2; sl@0: const TInt KTestCamHandleFatal = 666; sl@0: sl@0: const TReal KTestPictureRate = 29.97; sl@0: sl@0: // rgb data sl@0: const TRgbRange KTestRgbRange1 = ERgbRangeFull; sl@0: const TRgbRange KTestRgbRange2 = ERgbRange16to235; sl@0: sl@0: // output pad sl@0: const TInt KTestPadX = 100; sl@0: const TInt KTestPadY = 200; sl@0: const TInt KTestPadPointX = 300; sl@0: const TInt KTestPadPointY = 400; sl@0: sl@0: // color enhancement sl@0: const TColorEnhancementOptions KTestColorEnhance1 = {1, 2, 3}; sl@0: const TColorEnhancementOptions KTestColorEnhance2 = {4, 5, 6}; sl@0: sl@0: static inline TBool CompareColorEnhancements(const TColorEnhancementOptions& a, const TColorEnhancementOptions& b) sl@0: { sl@0: if ( (a.iLightness == b.iLightness) && sl@0: (a.iSaturation == b.iSaturation) && sl@0: (a.iContrast == b.iContrast) ) sl@0: return ETrue; sl@0: else return EFalse; sl@0: } sl@0: sl@0: // custom pre process options sl@0: _LIT8(KTestCustomPreProc1, "rhubarb rhubarb rhubarb!"); sl@0: _LIT8(KTestCustomPreProc2, "custard custard custard?"); sl@0: sl@0: const TReal KTestRandomAccessRate = 0.555; sl@0: const TUint KTestNumBitrateLayers = 369; sl@0: sl@0: const TUint KTestLayer = 12; sl@0: const TScalabilityType KTestScaleType = EScalabilityQualityFG; sl@0: sl@0: const TUint KTestMaxRefPics = 9; sl@0: const TUint KTestMaxPicDelay = 111; sl@0: sl@0: // encoder buffer options creation utility function sl@0: static inline TEncoderBufferOptions GetTestEncBufferOptions( void ) sl@0: { sl@0: TEncoderBufferOptions buffOptions; sl@0: sl@0: buffOptions.iMaxPreEncoderBufferPictures = 10; sl@0: buffOptions.iHrdVbvSpec = KTestHrdVbvSpec; sl@0: buffOptions.iHrdVbvParams.Set(KTestHrdVbvParams); sl@0: buffOptions.iMaxOutputBufferSize = 100; sl@0: buffOptions.iMaxCodedPictureSize = 200; sl@0: buffOptions.iMaxCodedSegmentSize = 300; sl@0: buffOptions.iMinNumOutputBuffers = 400; sl@0: sl@0: return buffOptions; sl@0: } sl@0: sl@0: // encoder buffer options comparison utility function sl@0: static inline TBool CompareEncBufferOptions(const TEncoderBufferOptions& a, const TEncoderBufferOptions& b) sl@0: { sl@0: if ( (a.iMaxPreEncoderBufferPictures == b.iMaxPreEncoderBufferPictures) && sl@0: (a.iHrdVbvSpec == b.iHrdVbvSpec) && sl@0: (a.iHrdVbvParams == b.iHrdVbvParams) && sl@0: (a.iMaxOutputBufferSize == b.iMaxOutputBufferSize) && sl@0: (a.iMaxCodedPictureSize == b.iMaxCodedPictureSize) && sl@0: (a.iMaxCodedSegmentSize == b.iMaxCodedSegmentSize) && sl@0: (a.iMinNumOutputBuffers == b.iMinNumOutputBuffers) ) sl@0: return ETrue; sl@0: else return EFalse; sl@0: } sl@0: sl@0: _LIT8(KTestCSEncoderOptions, "there's a moose in the hoose!"); sl@0: _LIT8(KTestISEncoderOptions, "but did the moose chase the goose?"); sl@0: sl@0: _LIT8(KTestISInitOutput, "I am a mole..."); sl@0: _LIT8(KTestCSInitOutput, "...and I live in a hole!"); sl@0: sl@0: const TUint KTestProtectLevels = 444; sl@0: const TUint KTestLevel = 11; sl@0: const TUint KTestBitrate = 192; sl@0: const TUint KTestStrength = EFecStrengthLow; sl@0: sl@0: const TInt KTestLossBurstLength = 123456; sl@0: const TUint KTestLossRate = 8192; sl@0: sl@0: const TReal KTestErrorRate = 1.11; sl@0: const TReal KTestStdDeviation = 2.22; sl@0: sl@0: const TUint KTestSizeBytes = 8; sl@0: const TUint KTestSizeMacroblocks = 244; sl@0: sl@0: // encoder rate control options creation utility function sl@0: static inline TRateControlOptions GetTestRateControlOptions( void ) sl@0: { sl@0: TRateControlOptions rateOptions; sl@0: sl@0: rateOptions.iControl = EBrControlPicture; sl@0: rateOptions.iBitrate = 256; sl@0: rateOptions.iPictureQuality = 512; sl@0: rateOptions.iPictureRate = 1.234; sl@0: rateOptions.iQualityTemporalTradeoff = 4.321; sl@0: rateOptions.iLatencyQualityTradeoff = 5.678; sl@0: sl@0: return rateOptions; sl@0: } sl@0: sl@0: // encoder rate control options comparison utility function sl@0: static inline TBool CompareRateControlOptions(const TRateControlOptions& a, const TRateControlOptions& b) sl@0: { sl@0: if ( (a.iControl == b.iControl) && sl@0: (a.iBitrate == b.iBitrate) && sl@0: (a.iPictureQuality == b.iPictureQuality) && sl@0: (a.iPictureRate == b.iPictureRate) && sl@0: (a.iQualityTemporalTradeoff == b.iQualityTemporalTradeoff) && sl@0: (a.iLatencyQualityTradeoff == b.iLatencyQualityTradeoff) ) sl@0: return ETrue; sl@0: else return EFalse; sl@0: } sl@0: sl@0: // scalability sl@0: const TUint KTestNumSteps = 56; sl@0: const TInLayerScalabilityType KTestLayerScaleType = EInLScalabilityTemporal; sl@0: const TUint KTestBitrateShare1 = 666; sl@0: const TUint KTestBitrateShare2 = 777; sl@0: const TUint KTestPictureShare1 = 888; sl@0: const TUint KTestPictureShare2 = 999; sl@0: sl@0: const TUint KTestPointPeriod = 2; sl@0: sl@0: // settings output sl@0: _LIT8(KTestISSettingsOutput, "seven deadly sins..."); sl@0: _LIT8(KTestCSSettingsOutput, "...seven ways to win"); sl@0: sl@0: // picture timestamp sl@0: const TInt KTestEncPictureTimestamp = 98765; sl@0: sl@0: // supplemental info sl@0: _LIT8(KTestSuppInfo, "don't eat spaghetti with chopsticks..."); sl@0: const TInt KTestSuppTime = 6000000; sl@0: const TInt KTestSuppTimeCancel = 666666666; sl@0: sl@0: const TInt KTestRecordPosition = 999666333; sl@0: sl@0: const TUint KTestFreeBuffers = 9; sl@0: const TUint KTestFreeBytes = 256; sl@0: sl@0: // picture counters creation utility function sl@0: static inline CMMFDevVideoRecord::TPictureCounters GetTestEncPictureCounters( void ) sl@0: { sl@0: CMMFDevVideoRecord::TPictureCounters picCount; sl@0: sl@0: picCount.iPicturesSkippedBufferOverflow = 10; sl@0: picCount.iPicturesSkippedProcPower = 20; sl@0: picCount.iPicturesSkippedRateControl = 30; sl@0: picCount.iPicturesProcessed = 40; sl@0: picCount.iInputPictures = 50; sl@0: return picCount; sl@0: } sl@0: sl@0: // picture counters comparison utility function sl@0: static inline TBool CompareEncPictureCounters(const CMMFDevVideoRecord::TPictureCounters& a, const CMMFDevVideoRecord::TPictureCounters& b) sl@0: { sl@0: if ( (a.iPicturesSkippedBufferOverflow == b.iPicturesSkippedBufferOverflow) && sl@0: (a.iPicturesSkippedProcPower == b.iPicturesSkippedProcPower) && sl@0: (a.iPicturesSkippedRateControl == b.iPicturesSkippedRateControl) && sl@0: (a.iPicturesProcessed == b.iPicturesProcessed) && sl@0: (a.iInputPictures == b.iInputPictures )) sl@0: return ETrue; sl@0: else return EFalse; sl@0: } sl@0: sl@0: const TInt KTestEncInputPictures = 10; sl@0: sl@0: const TInt KTestFrameStableX1 = 5; sl@0: const TInt KTestFrameStableY1 = 10; sl@0: const TInt KTestFrameStableX2 = 300; sl@0: const TInt KTestFrameStableY2 = 200; sl@0: sl@0: const TPictureId KTestPictureId1 = {TPictureId::ETemporalReference, 999}; sl@0: const TPictureId KTestPictureId2 = {TPictureId::ETemporalReference, 666}; sl@0: const TPictureId KTestPictureId3 = {TPictureId::ETemporalReference, 333}; sl@0: sl@0: static inline TBool ComparePictureIDs(const TPictureId& a, const TPictureId&b) sl@0: { sl@0: return ((a.iIdType == b.iIdType) && (a.iId == b.iId)); sl@0: } sl@0: sl@0: // slice loss sl@0: const TUint KTestFirstMacroblock = 50; sl@0: const TUint KTestNumMacroblocks = 3; sl@0: sl@0: // ref picture data sl@0: _LIT8(KTestRefPictureInfo, "there once was an ugly duckling..."); sl@0: sl@0: // start / stop / pause / resume positions sl@0: const TInt KTestRecTimeStop = 0; sl@0: sl@0: const TInt KTestRecTimeStartEnc = 10; sl@0: const TInt KTestRecTimePauseEnc = 20; sl@0: const TInt KTestRecTimeResumeEnc = 30; sl@0: sl@0: const TInt KTestRecTimeStartPre = 40; sl@0: const TInt KTestRecTimePausePre = 50; sl@0: const TInt KTestRecTimeResumePre = 60; sl@0: sl@0: // command to start buffer creation sl@0: _LIT8(KTestISEncBuffers, "get them buffers a rollin!"); sl@0: _LIT8(KTestISEncBufferData, "steam rollin along!"); sl@0: sl@0: // encoder info sl@0: const TUint32 KTestEncoderInfoCount = 3; sl@0: sl@0: const TText8* const KTestEncoderInfoMimeArray[KTestEncoderInfoCount] = sl@0: { sl@0: _S8("video/bunglevideo"), sl@0: _S8("video/zippyvideo"), sl@0: _S8("video/georgevideo") sl@0: }; sl@0: sl@0: _LIT(KTestEncoderInfoManufacturer, "bodgitt plc"); sl@0: _LIT(KTestEncoderInfoIdentifier, "video bodger"); sl@0: sl@0: _LIT8(KTestEncoderInfoCSInfo, "coded by a blind orangutan"); sl@0: _LIT8(KTestEncoderInfoISInfo, "implemented by an imp"); sl@0: sl@0: const TInt KTestEncoderInfoVersionMaj = 11; sl@0: const TInt KTestEncoderInfoVersionMin = 22; sl@0: const TInt KTestEncoderInfoVersionBuild = 33; sl@0: // KTestEncoderInfoVersion = Maj.Min.Build; sl@0: sl@0: const TInt KTestEncoderInfoMaxSizeX = 256; sl@0: const TInt KTestEncoderInfoMaxSizeY = 512; sl@0: const TUint KTestEncoderInfoMaxUEPLevels = 5; sl@0: const TUint KTestEncoderInfoMaxBitrate = 963; sl@0: const TUint KTestEncoderInfoMaxILSSteps = 555; sl@0: const TUint32 KTestEncoderInfoPictureOptions = TVideoPicture::ESceneCut | TVideoPicture::EEffectParameters | TVideoPicture::ETimestamp; sl@0: sl@0: static inline void GetTestEncoderInfoRate(TInt aIndex, TPictureRateAndSize& aRate) sl@0: { sl@0: TPictureRateAndSize rate; sl@0: TSize size(aIndex * 10, aIndex * 20); sl@0: TReal rIndex = aIndex; sl@0: sl@0: rate.iPictureSize = size; sl@0: rate.iPictureRate = rIndex / 10.0; sl@0: sl@0: aRate = rate; sl@0: } sl@0: sl@0: // Pre Processor Info sl@0: _LIT(KTestPreProcInfoManufacturer, "iced inc"); sl@0: _LIT(KTestPreProcInfoIdentifier, "video munger"); sl@0: sl@0: _LIT8(KTestPreProcInfoISInfo, "implemented by a marsupial"); sl@0: sl@0: const TInt KTestPreProcInfoVersionMaj = 44; sl@0: const TInt KTestPreProcInfoVersionMin = 55; sl@0: const TInt KTestPreProcInfoVersionBuild = 66; sl@0: // KTestPreProcInfoVersion = Maj.Min.Build; sl@0: const TUint32 KTestPreProcInfoRotations = KTestRotate1 | KTestRotate2; sl@0: const TUint32 KTestPreProcInfoRgbRanges = KTestRgbRange1 | KTestRgbRange2; sl@0: sl@0: const TYuvToYuvCapabilities KTestPreProcInfoYuvToYuvCaps = {1, 2, 3, 4}; sl@0: sl@0: static inline TBool CompareYuvYuvCapabilities(const TYuvToYuvCapabilities& a, const TYuvToYuvCapabilities& b) sl@0: { sl@0: return ((a.iInputSamplingPatterns == b.iInputSamplingPatterns) && sl@0: (a.iInputDataLayouts == b.iInputDataLayouts) && sl@0: (a.iOutputSamplingPatterns == b.iOutputSamplingPatterns) && sl@0: (a.iOutputDataLayouts == b.iOutputDataLayouts) ); sl@0: } sl@0: sl@0: const TUncompressedVideoFormat KTestPreProcInfoOutputFormatArray[KTestPostProcInfoCount] = sl@0: {{ERgbRawData}, {ERgbFbsBitmap}, {EYuvRawData}}; sl@0: sl@0: const TUncompressedVideoFormat KTestPreProcInfoInputFormatArray[KTestPostProcInfoCount] = sl@0: {{ERgbFbsBitmap}, {EYuvRawData}, {ERgbRawData}}; sl@0: sl@0: const TUncompressedVideoFormat KTestPreProcInfoNegativeFormat = {ERgbRawData}; sl@0: sl@0: // Custom Interface UIDs sl@0: const TUid KUidCustomInterfaceOne = {0x101F7DD1}; //Supported by decoder sl@0: const TUid KUidCustomInterfaceTwo = {0x101F7DD2}; //Supported by post processor sl@0: const TUid KUidCustomInterfaceThree = {0x101F7DD3}; //Supported by encoder sl@0: const TUid KUidCustomInterfaceFour = {0x101F7DD4}; //Supported by pre processor sl@0: sl@0: #endif // __TESTDEVVIDEOPLAYTESTDATA_H__