os/mm/mmlibs/mmfw/tsrc/mmfunittest/DevVideo/src/TestDevVideoPlayTestData.h
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
// Header file: DevVideoPlay test data.
sl@0
    15
// 
sl@0
    16
//
sl@0
    17
sl@0
    18
/**
sl@0
    19
 @file TestDevVideoPlayTestData.h
sl@0
    20
*/
sl@0
    21
sl@0
    22
#ifndef __TESTDEVVIDEOPLAYTESTDATA_H__
sl@0
    23
#define __TESTDEVVIDEOPLAYTESTDATA_H__
sl@0
    24
sl@0
    25
#include "TSU_MMF_DevVideo.h"
sl@0
    26
sl@0
    27
sl@0
    28
// mime types
sl@0
    29
_LIT8(KTestMimeType1, "video/testvideo");
sl@0
    30
sl@0
    31
// optional data
sl@0
    32
_LIT8(KTestOptional1, "blah blah blah blah blah");
sl@0
    33
sl@0
    34
// test uncompressed video formats
sl@0
    35
const TUncompressedVideoFormat KTestVidFormat1 = {ERgbRawData};
sl@0
    36
const TUncompressedVideoFormat KTestVidFormat2 = {ERgbFbsBitmap};
sl@0
    37
const TUncompressedVideoFormat KTestVidFormat3 = {EYuvRawData};
sl@0
    38
sl@0
    39
// test unit and encapsulation types
sl@0
    40
const TVideoDataUnitType KTestUnitType1				= EDuCodedPicture;
sl@0
    41
const TVideoDataUnitEncapsulation KTestEncapType1	= EDuElementaryStream;
sl@0
    42
sl@0
    43
// test compressed video format utility function
sl@0
    44
static inline CCompressedVideoFormat* GetTestCVFormatL( const TDesC8& aMimeType )
sl@0
    45
	{
sl@0
    46
	CCompressedVideoFormat* temp = CCompressedVideoFormat::NewL( aMimeType, KTestOptional1 );
sl@0
    47
 	return temp;
sl@0
    48
	}
sl@0
    49
sl@0
    50
// test pre-process types
sl@0
    51
const TUint32 KTestProcessType1 = EPpInputCrop | EPpMirror | EPpRotate;
sl@0
    52
const TUint32 KTestProcessType2 = EPpScale | EPpOutputCrop | EPpOutputPad;
sl@0
    53
sl@0
    54
// input crop rectangles
sl@0
    55
const TInt KTestInputCropRectA = 0;
sl@0
    56
const TInt KTestInputCropRectB = 50;
sl@0
    57
const TInt KTestInputCropRectC = 100;
sl@0
    58
const TInt KTestInputCropRectD = 150;
sl@0
    59
sl@0
    60
// KTestInputCropRect1 = A, B, C, D;
sl@0
    61
// KTestInputCropRect2 = D, C, B, A;
sl@0
    62
sl@0
    63
// yuv to rgb options
sl@0
    64
const TYuvToRgbOptions KTestYuvToRgb1 = {50, 50, 50, 0.5, EDitherNone};
sl@0
    65
const TYuvToRgbOptions KTestYuvToRgb2 = {100, 100, 100, 1.0, EDitherErrorDiffusion};
sl@0
    66
static inline TBool CompareYuvRgbOptions(const TYuvToRgbOptions& a, const TYuvToRgbOptions& b)
sl@0
    67
	{
sl@0
    68
	if ( (a.iLightness == b.iLightness) && (a.iSaturation == b.iSaturation) &&		 
sl@0
    69
		 (a.iContrast == b.iContrast) && (a.iGamma == b.iGamma) &&
sl@0
    70
		 (a.iDitherType == b.iDitherType) )
sl@0
    71
		 return ETrue;
sl@0
    72
	else return EFalse;
sl@0
    73
	}
sl@0
    74
sl@0
    75
sl@0
    76
// conversion matrices
sl@0
    77
const TYuvConversionMatrix KTestYuvMatrix1 = {{1, 2, 3}, {4, 5, 6, 7, 8, 9, 10, 11, 12}, {13, 14, 15}};
sl@0
    78
const TYuvConversionMatrix KTestYuvMatrix2 = {{-1, -2, -3}, {-4, -5, -6, -7, -8, -9, -10, -11, -12}, {-13, -14, -15}};
sl@0
    79
sl@0
    80
static inline TBool CompareYuvMatrices(const TYuvConversionMatrix& a, const TYuvConversionMatrix& b)
sl@0
    81
	{
sl@0
    82
	TBool same = ETrue;
sl@0
    83
	TInt x = 0;
sl@0
    84
sl@0
    85
	for (x = 0; x < 3; x++)
sl@0
    86
		{
sl@0
    87
		if ( (a.iPostOffset[x] != b.iPostOffset[x]) ||
sl@0
    88
			 (a.iPreOffset[x] != b.iPreOffset[x]) )
sl@0
    89
			{
sl@0
    90
			same = EFalse;
sl@0
    91
			}
sl@0
    92
		}
sl@0
    93
		
sl@0
    94
	for (x = 0; x < 9; x++)
sl@0
    95
		{
sl@0
    96
		if (a.iMatrix[x] != b.iMatrix[x]) 
sl@0
    97
			{
sl@0
    98
			same = EFalse;
sl@0
    99
			}
sl@0
   100
		}
sl@0
   101
		
sl@0
   102
	return same;
sl@0
   103
	}
sl@0
   104
sl@0
   105
// yuv formats
sl@0
   106
const TYuvFormat KTestYuvFormat1 = {EYuvRange0, EYuv420Chroma1, EYuvDataPlanar, const_cast <TYuvConversionMatrix*> (&KTestYuvMatrix1), const_cast <TYuvConversionMatrix*> (&KTestYuvMatrix2), 10, 20};
sl@0
   107
const TYuvFormat KTestYuvFormat2 = {EYuvRange1, EYuv420Chroma2, EYuvDataInterleavedLE, const_cast <TYuvConversionMatrix*> (&KTestYuvMatrix2), const_cast <TYuvConversionMatrix*> (&KTestYuvMatrix1), 5, 10};
sl@0
   108
sl@0
   109
static inline TBool CompareYuvFormats(const TYuvFormat& a, const TYuvFormat& b)
sl@0
   110
	{
sl@0
   111
	if ( (a.iCoefficients == b.iCoefficients) && 
sl@0
   112
		 (a.iPattern == b.iPattern) &&		 
sl@0
   113
		 (a.iDataLayout == b.iDataLayout) && 
sl@0
   114
		 (CompareYuvMatrices(*a.iYuv2RgbMatrix, *b.iYuv2RgbMatrix)) &&
sl@0
   115
		 (CompareYuvMatrices(*a.iRgb2YuvMatrix, *b.iRgb2YuvMatrix)) &&
sl@0
   116
		 (a.iAspectRatioNum == b.iAspectRatioNum) &&
sl@0
   117
		 (a.iAspectRatioDenom == b.iAspectRatioDenom) )
sl@0
   118
		 return ETrue;
sl@0
   119
	else return EFalse;
sl@0
   120
	}
sl@0
   121
sl@0
   122
// rgb formats
sl@0
   123
const TRgbFormat KTestRgbFormat1 = ERgb16bit444;
sl@0
   124
const TRgbFormat KTestRgbFormat2 = EFbsBitmapColor16M;
sl@0
   125
sl@0
   126
// rotation types
sl@0
   127
const TRotationType KTestRotate1 = ERotate90Clockwise;
sl@0
   128
const TRotationType KTestRotate2 = ERotate90Anticlockwise;
sl@0
   129
sl@0
   130
// test scale size
sl@0
   131
const TInt KTestScaleX = 100; 
sl@0
   132
const TInt KTestScaleY = 50;
sl@0
   133
sl@0
   134
// output crop rectangles
sl@0
   135
const TInt KTestOutputCropRectA = 0;
sl@0
   136
const TInt KTestOutputCropRectB = 50;
sl@0
   137
const TInt KTestOutputCropRectC = 256;
sl@0
   138
const TInt KTestOutputCropRectD = 350;
sl@0
   139
sl@0
   140
// KTestOutputCropRect1 = A, B, C, D;
sl@0
   141
// KTestOutputCropRect2 = D, C, B, A;
sl@0
   142
sl@0
   143
// post-processor options
sl@0
   144
_LIT8(KTestPostProcOptions1, "abcdefghijklmno");
sl@0
   145
_LIT8(KTestPostProcOptions2, "123456-7-654321");
sl@0
   146
sl@0
   147
// buffer options creation utility function
sl@0
   148
static inline CMMFDevVideoPlay::TBufferOptions GetTestBufferOptions( void )
sl@0
   149
	{
sl@0
   150
	CMMFDevVideoPlay::TBufferOptions buffOptions;
sl@0
   151
 	
sl@0
   152
	buffOptions.iPreDecodeBufferSize = 10;
sl@0
   153
	buffOptions.iMaxPostDecodeBufferSize = 20;
sl@0
   154
	buffOptions.iPreDecoderBufferPeriod = 30;
sl@0
   155
	buffOptions.iPostDecoderBufferPeriod = 40;
sl@0
   156
	buffOptions.iMaxInputBufferSize = 50;
sl@0
   157
	buffOptions.iMinNumInputBuffers = 60;
sl@0
   158
sl@0
   159
	return buffOptions;
sl@0
   160
	}
sl@0
   161
sl@0
   162
// buffer options comparison utility function 
sl@0
   163
static inline TBool CompareBufferOptions(const CMMFDevVideoPlay::TBufferOptions& a, const CMMFDevVideoPlay::TBufferOptions& b)
sl@0
   164
	{
sl@0
   165
	if ( (a.iPreDecodeBufferSize == b.iPreDecodeBufferSize) && 
sl@0
   166
		 (a.iMaxPostDecodeBufferSize == b.iMaxPostDecodeBufferSize) &&		 
sl@0
   167
		 (a.iPreDecoderBufferPeriod == b.iPreDecoderBufferPeriod) && 
sl@0
   168
		 (a.iPostDecoderBufferPeriod == b.iPostDecoderBufferPeriod) &&
sl@0
   169
		 (a.iMaxInputBufferSize == b.iMaxInputBufferSize) &&
sl@0
   170
		 (a.iMinNumInputBuffers == b.iMinNumInputBuffers) )
sl@0
   171
		 return ETrue;
sl@0
   172
	else return EFalse;
sl@0
   173
	}
sl@0
   174
sl@0
   175
// Hrd/Vbv test data
sl@0
   176
const THrdVbvSpecification KTestHrdVbvSpec = EHrdVbv3GPP;
sl@0
   177
_LIT8(KTestHrdVbvParams, "not exactly a package of parameters but never mind");
sl@0
   178
sl@0
   179
// direct screen access test data
sl@0
   180
const TInt KTestDSARectA = 0;
sl@0
   181
const TInt KTestDSARectB = 100;
sl@0
   182
const TInt KTestDSARectC = 200;
sl@0
   183
const TInt KTestDSARectD = 300;
sl@0
   184
sl@0
   185
// KTestDSARect1 = A, B, C, D;
sl@0
   186
// KTestDSARect2 = D, C, B, A;
sl@0
   187
sl@0
   188
// KTestDSARegion1 = {KTestDSARect1};
sl@0
   189
// KTestDSARegion2 = {KTestDSARect2};
sl@0
   190
sl@0
   191
// position test data
sl@0
   192
const TInt KTestPosition = 12345;
sl@0
   193
const TInt KTestPositionFatal = 666;
sl@0
   194
const TInt KTestDecodePosition = 256;
sl@0
   195
const TInt KTestPlayPosition = 512;
sl@0
   196
sl@0
   197
// buffer bytes test data
sl@0
   198
const TUint KTestPreDecoderBytes = 1024;
sl@0
   199
const TUint KTestPictureBytes = 2048;
sl@0
   200
sl@0
   201
// picture counters creation utility function
sl@0
   202
static inline CMMFDevVideoPlay::TPictureCounters GetTestPictureCounters( void )
sl@0
   203
	{
sl@0
   204
	CMMFDevVideoPlay::TPictureCounters picCount;
sl@0
   205
 	
sl@0
   206
	picCount.iPicturesSkipped = 10;
sl@0
   207
	picCount.iPicturesDecoded = 20;
sl@0
   208
	picCount.iPicturesDisplayed = 30;
sl@0
   209
	picCount.iTotalPictures = 40;
sl@0
   210
sl@0
   211
	return picCount;
sl@0
   212
	}
sl@0
   213
sl@0
   214
// picture counters comparison utility function 
sl@0
   215
static inline TBool ComparePictureCounters(const CMMFDevVideoPlay::TPictureCounters& a, const CMMFDevVideoPlay::TPictureCounters& b)
sl@0
   216
	{
sl@0
   217
	if ( (a.iPicturesSkipped == b.iPicturesSkipped) && 
sl@0
   218
		 (a.iPicturesDecoded == b.iPicturesDecoded) &&		 
sl@0
   219
		 (a.iPicturesDisplayed == b.iPicturesDisplayed) && 
sl@0
   220
		 (a.iTotalPictures == b.iTotalPictures) )
sl@0
   221
		 return ETrue;
sl@0
   222
	else return EFalse;
sl@0
   223
	}
sl@0
   224
sl@0
   225
// bitstream counters creation utility function
sl@0
   226
static inline CMMFDevVideoPlay::TBitstreamCounters GetTestBitstreamCounters( void )
sl@0
   227
	{
sl@0
   228
	CMMFDevVideoPlay::TBitstreamCounters bitCount;
sl@0
   229
 	
sl@0
   230
	bitCount.iLostPackets = 256;
sl@0
   231
	bitCount.iTotalPackets = 512;
sl@0
   232
	
sl@0
   233
	return bitCount;
sl@0
   234
	}
sl@0
   235
sl@0
   236
// bitstream counters comparison utility function 
sl@0
   237
static inline TBool CompareBitstreamCounters(const CMMFDevVideoPlay::TBitstreamCounters& a, const CMMFDevVideoPlay::TBitstreamCounters& b)
sl@0
   238
	{
sl@0
   239
	if ( (a.iLostPackets == b.iLostPackets) && 
sl@0
   240
		 (a.iTotalPackets == b.iTotalPackets) )
sl@0
   241
		 return ETrue;
sl@0
   242
	else return EFalse;
sl@0
   243
	}
sl@0
   244
sl@0
   245
// test num buffers
sl@0
   246
const TUint KTestNumFreeBuffers = 4096;
sl@0
   247
sl@0
   248
// complexity levels
sl@0
   249
const TUint KTestComplexityLevel1 = 1;
sl@0
   250
const TUint KTestComplexityLevel2 = 3;
sl@0
   251
const TUint KTestNumComplexityLevels1 = 5;
sl@0
   252
const TUint KTestNumComplexityLevels2 = 10;
sl@0
   253
sl@0
   254
// complexity level info creation utility function
sl@0
   255
static inline CMMFDevVideoPlay::TComplexityLevelInfo GetTestLevelInfo( TInt a )
sl@0
   256
	{
sl@0
   257
	CMMFDevVideoPlay::TComplexityLevelInfo levInfo;
sl@0
   258
 	
sl@0
   259
	levInfo.iOptions = CMMFDevVideoPlay::TComplexityLevelInfo::EAvgPictureRate;
sl@0
   260
	levInfo.iAvgPictureRate = 1.5;
sl@0
   261
	levInfo.iPictureSize.SetSize(a * 100,a * 200);
sl@0
   262
	levInfo.iRelativeImageQuality = 0.5;
sl@0
   263
	levInfo.iRequiredMIPS = a;
sl@0
   264
	levInfo.iRelativeProcessTime = 0.3;
sl@0
   265
	
sl@0
   266
	return levInfo;
sl@0
   267
	}
sl@0
   268
sl@0
   269
// complexity level info comparison utility function 
sl@0
   270
static inline TBool CompareLevelInfos(const CMMFDevVideoPlay::TComplexityLevelInfo& a, const CMMFDevVideoPlay::TComplexityLevelInfo& b)
sl@0
   271
	{
sl@0
   272
	if ( (a.iOptions == b.iOptions) && 
sl@0
   273
		 (a.iAvgPictureRate == b.iAvgPictureRate) &&
sl@0
   274
		 (a.iPictureSize == b.iPictureSize) &&
sl@0
   275
		 (a.iRelativeImageQuality == b.iRelativeImageQuality) &&
sl@0
   276
		 (a.iRequiredMIPS == b.iRequiredMIPS) &&
sl@0
   277
		 (a.iRelativeProcessTime == b.iRelativeProcessTime) )
sl@0
   278
		 return ETrue;
sl@0
   279
	else return EFalse;
sl@0
   280
	}
sl@0
   281
sl@0
   282
// picture timestamp test data
sl@0
   283
const TInt KTestPictureTimestamp = 12345;
sl@0
   284
sl@0
   285
// input buffer test data
sl@0
   286
_LIT8(KTestBufferString, "Roobarb and Custard!");
sl@0
   287
const TUint32 KTestBufferOptions = TVideoInputBuffer::EDecodingTimestamp;
sl@0
   288
const TUint KTestBufferSize = 20;
sl@0
   289
sl@0
   290
// decoder info
sl@0
   291
const TUint32 KTestDecoderInfoCount = 3;
sl@0
   292
sl@0
   293
const TText8* const KTestDecoderInfoMimeArray[KTestDecoderInfoCount] = 
sl@0
   294
	{
sl@0
   295
	_S8("video/bunglevideo"), 
sl@0
   296
	_S8("video/zippyvideo"),
sl@0
   297
	_S8("video/georgevideo")
sl@0
   298
	};
sl@0
   299
sl@0
   300
_LIT(KTestDecoderInfoManufacturer, "fred bloggs plc");
sl@0
   301
_LIT(KTestDecoderInfoIdentifier, "video funkifier");
sl@0
   302
sl@0
   303
const TInt KTestDecoderInfoMaxSizeX = 256;
sl@0
   304
const TInt KTestDecoderInfoMaxSizeY = 512;
sl@0
   305
sl@0
   306
_LIT8(KTestDecoderInfoCSInfo, "coded by a blind monkey");
sl@0
   307
_LIT8(KTestDecoderInfoISInfo, "implemented by a baboon");
sl@0
   308
sl@0
   309
const TInt KTestDecoderInfoVersionMaj = 1;
sl@0
   310
const TInt KTestDecoderInfoVersionMin = 2;
sl@0
   311
const TInt KTestDecoderInfoVersionBuild = 3;
sl@0
   312
// KTestDecoderInfoVersion = Maj.Min.Build;
sl@0
   313
sl@0
   314
// post processor info
sl@0
   315
const TUint32 KTestPostProcInfoCount = 3;
sl@0
   316
_LIT(KTestPostProcInfoManufacturer, "honest sid inc");
sl@0
   317
_LIT(KTestPostProcInfoIdentifier, "video post-funkifier");
sl@0
   318
sl@0
   319
_LIT8(KTestPostProcInfoISInfo, "implemented by a lame pigeon");
sl@0
   320
sl@0
   321
const TInt KTestPostProcInfoVersionMaj = 1;
sl@0
   322
const TInt KTestPostProcInfoVersionMin = 2;
sl@0
   323
const TInt KTestPostProcInfoVersionBuild = 3;
sl@0
   324
// KTestPostProcInfoVersion = Maj.Min.Build;
sl@0
   325
sl@0
   326
const TUint32 KTestPostProcInfoRotations = ERotate90Clockwise | ERotate90Anticlockwise | ERotate180;
sl@0
   327
sl@0
   328
const TYuvToRgbCapabilities KTestPostProcInfoYuvToRgbCaps = {1, 2, 3, ETrue, EFalse, ETrue, EFalse, 4};
sl@0
   329
static inline TBool CompareYuvRgbCaps(const TYuvToRgbCapabilities& a, const TYuvToRgbCapabilities& b)
sl@0
   330
	{
sl@0
   331
	if ( (a.iSamplingPatterns == b.iSamplingPatterns) && (a.iCoefficients == b.iCoefficients) &&		 
sl@0
   332
		 (a.iRgbFormats == b.iRgbFormats) && (a.iLightnessControl == b.iLightnessControl) &&
sl@0
   333
		 (a.iSaturationControl == b.iSaturationControl) && (a.iContrastControl == b.iContrastControl) &&
sl@0
   334
		 (a.iGammaCorrection == b.iGammaCorrection) && (a.iDitherTypes == b.iDitherTypes) )
sl@0
   335
		 return ETrue;
sl@0
   336
	else return EFalse;
sl@0
   337
	}
sl@0
   338
sl@0
   339
const TUncompressedVideoFormat KTestPostProcInfoFormatArray[KTestPostProcInfoCount] =
sl@0
   340
	{{ERgbRawData}, {ERgbFbsBitmap}, {EYuvRawData}};
sl@0
   341
sl@0
   342
const TUint32 KTestPostProcInfoCombsArray[KTestPostProcInfoCount] =
sl@0
   343
	{KTestProcessType1, KTestProcessType2, EPpNoiseFilter | EPpColorEnhancement | EPpFrameStabilisation};
sl@0
   344
sl@0
   345
const TScaleFactor KTestPostProcInfoScaleFactorsArray[KTestPostProcInfoCount] =
sl@0
   346
	{{1, 2}, {1, 4}, {1,8}};
sl@0
   347
sl@0
   348
static inline TBool CompareScaleFactors(const TScaleFactor& a, const TScaleFactor& b)
sl@0
   349
	{
sl@0
   350
	if ((a.iScaleNum == b.iScaleNum) && (a.iScaleDenom == b.iScaleDenom))
sl@0
   351
		return ETrue;
sl@0
   352
	else return EFalse;
sl@0
   353
	}
sl@0
   354
sl@0
   355
const TUncompressedVideoFormat KTestPostProcInfoNegativeFormat = {EYuvRawData};
sl@0
   356
const TUint32 KTestPostProcInfoNegativeComb = EPpCustom;
sl@0
   357
sl@0
   358
sl@0
   359
// video header information
sl@0
   360
const TVideoDataUnitType KTestDataUnitType = EDuCodedPicture;
sl@0
   361
const TVideoDataUnitEncapsulation KTestDataUnitEncap = EDuElementaryStream;
sl@0
   362
const TVideoInputBuffer::TVideoBufferOptions KTestInputBufferOptions = TVideoInputBuffer::EPresentationTimestamp; 
sl@0
   363
const TVideoPictureHeader::THeaderOptions KTestPictureHeaderOptions = TVideoPictureHeader::EPresentationTimestamp;
sl@0
   364
const TInt KTestInputBufferTimestamp = 1000000;
sl@0
   365
const TInt KTestPictureHeaderTimestamp = 2000000;
sl@0
   366
_LIT8(KTestInputBufferData, "I'm a lumber jack and I'm OK!");
sl@0
   367
sl@0
   368
// TPictureData
sl@0
   369
const TInt KTestPictureDataSizeX = 57;
sl@0
   370
const TInt KTestPictureDataSizeY = 18;
sl@0
   371
sl@0
   372
// snapshot data
sl@0
   373
const TInt KTestSnapshotTimestamp = 1000;
sl@0
   374
const TPictureId KTestSnapshotId = {TPictureId::ETemporalReference, 999};
sl@0
   375
sl@0
   376
// clock deviation
sl@0
   377
const TUint KTestClockDeviationMS	 = 500000;		// 0.5 seconds
sl@0
   378
const TUint KTestClockBigDeviationMS = 2000000;		// 2 seconds
sl@0
   379
const TUint KTestClock2Seconds	  = 2000000;
sl@0
   380
const TUint KTestClock4Seconds	  = 4000000;
sl@0
   381
const TUint KTestClock18Seconds	  = 18000000;
sl@0
   382
const TUint KTestClock20Seconds	  = 20000000;
sl@0
   383
const TUint KTestClock22Seconds	  = 22000000;
sl@0
   384
sl@0
   385
// devvideorecord specific test data
sl@0
   386
const TInt KTestInputSize1X = 640; 
sl@0
   387
const TInt KTestInputSize1Y = 480;
sl@0
   388
sl@0
   389
const TInt KTestInputSize2X = 320; 
sl@0
   390
const TInt KTestInputSize2Y = 200;
sl@0
   391
sl@0
   392
const TInt KTestCamHandlePre = 1;
sl@0
   393
const TInt KTestCamHandleEnc = 2;
sl@0
   394
const TInt KTestCamHandleFatal = 666;
sl@0
   395
sl@0
   396
const TReal KTestPictureRate = 29.97;
sl@0
   397
sl@0
   398
// rgb data
sl@0
   399
const TRgbRange KTestRgbRange1 = ERgbRangeFull;
sl@0
   400
const TRgbRange KTestRgbRange2 = ERgbRange16to235;
sl@0
   401
sl@0
   402
// output pad
sl@0
   403
const TInt KTestPadX = 100;
sl@0
   404
const TInt KTestPadY = 200;
sl@0
   405
const TInt KTestPadPointX = 300;
sl@0
   406
const TInt KTestPadPointY = 400;
sl@0
   407
sl@0
   408
// color enhancement
sl@0
   409
const TColorEnhancementOptions KTestColorEnhance1 = {1, 2, 3};
sl@0
   410
const TColorEnhancementOptions KTestColorEnhance2 = {4, 5, 6};
sl@0
   411
sl@0
   412
static inline TBool CompareColorEnhancements(const TColorEnhancementOptions& a, const TColorEnhancementOptions& b)
sl@0
   413
	{
sl@0
   414
	if ( (a.iLightness == b.iLightness) && 
sl@0
   415
		 (a.iSaturation == b.iSaturation) && 
sl@0
   416
		 (a.iContrast == b.iContrast) )
sl@0
   417
		 return ETrue;
sl@0
   418
	else return EFalse;
sl@0
   419
	}
sl@0
   420
sl@0
   421
// custom pre process options
sl@0
   422
_LIT8(KTestCustomPreProc1, "rhubarb rhubarb rhubarb!");
sl@0
   423
_LIT8(KTestCustomPreProc2, "custard custard custard?");
sl@0
   424
sl@0
   425
const TReal KTestRandomAccessRate = 0.555;
sl@0
   426
const TUint KTestNumBitrateLayers = 369;
sl@0
   427
sl@0
   428
const TUint KTestLayer = 12;
sl@0
   429
const TScalabilityType KTestScaleType = EScalabilityQualityFG;
sl@0
   430
sl@0
   431
const TUint KTestMaxRefPics = 9;
sl@0
   432
const TUint KTestMaxPicDelay = 111;
sl@0
   433
sl@0
   434
// encoder buffer options creation utility function
sl@0
   435
static inline TEncoderBufferOptions GetTestEncBufferOptions( void )
sl@0
   436
	{
sl@0
   437
	TEncoderBufferOptions buffOptions;
sl@0
   438
 	
sl@0
   439
	buffOptions.iMaxPreEncoderBufferPictures = 10;
sl@0
   440
	buffOptions.iHrdVbvSpec = KTestHrdVbvSpec;
sl@0
   441
	buffOptions.iHrdVbvParams.Set(KTestHrdVbvParams);
sl@0
   442
	buffOptions.iMaxOutputBufferSize = 100;
sl@0
   443
	buffOptions.iMaxCodedPictureSize = 200;
sl@0
   444
	buffOptions.iMaxCodedSegmentSize = 300;
sl@0
   445
	buffOptions.iMinNumOutputBuffers = 400;
sl@0
   446
sl@0
   447
	return buffOptions;
sl@0
   448
	}
sl@0
   449
sl@0
   450
// encoder buffer options comparison utility function 
sl@0
   451
static inline TBool CompareEncBufferOptions(const TEncoderBufferOptions& a, const TEncoderBufferOptions& b)
sl@0
   452
	{
sl@0
   453
	if ( (a.iMaxPreEncoderBufferPictures == b.iMaxPreEncoderBufferPictures) && 
sl@0
   454
		 (a.iHrdVbvSpec == b.iHrdVbvSpec) &&		 
sl@0
   455
		 (a.iHrdVbvParams == b.iHrdVbvParams) && 
sl@0
   456
		 (a.iMaxOutputBufferSize == b.iMaxOutputBufferSize) &&
sl@0
   457
		 (a.iMaxCodedPictureSize == b.iMaxCodedPictureSize) &&
sl@0
   458
		 (a.iMaxCodedSegmentSize == b.iMaxCodedSegmentSize) &&
sl@0
   459
		 (a.iMinNumOutputBuffers == b.iMinNumOutputBuffers) )
sl@0
   460
		 return ETrue;
sl@0
   461
	else return EFalse;
sl@0
   462
	}
sl@0
   463
sl@0
   464
_LIT8(KTestCSEncoderOptions, "there's a moose in the hoose!");
sl@0
   465
_LIT8(KTestISEncoderOptions, "but did the moose chase the goose?");
sl@0
   466
sl@0
   467
_LIT8(KTestISInitOutput, "I am a mole...");
sl@0
   468
_LIT8(KTestCSInitOutput, "...and I live in a hole!");
sl@0
   469
sl@0
   470
const TUint KTestProtectLevels = 444;
sl@0
   471
const TUint KTestLevel = 11;
sl@0
   472
const TUint KTestBitrate = 192;
sl@0
   473
const TUint KTestStrength = EFecStrengthLow;
sl@0
   474
sl@0
   475
const TInt KTestLossBurstLength = 123456;
sl@0
   476
const TUint KTestLossRate = 8192;
sl@0
   477
sl@0
   478
const TReal KTestErrorRate = 1.11;
sl@0
   479
const TReal KTestStdDeviation = 2.22;
sl@0
   480
sl@0
   481
const TUint KTestSizeBytes = 8;
sl@0
   482
const TUint KTestSizeMacroblocks = 244;
sl@0
   483
sl@0
   484
// encoder rate control options creation utility function
sl@0
   485
static inline TRateControlOptions GetTestRateControlOptions( void )
sl@0
   486
	{
sl@0
   487
	TRateControlOptions rateOptions;
sl@0
   488
 	
sl@0
   489
	rateOptions.iControl = EBrControlPicture;
sl@0
   490
	rateOptions.iBitrate = 256;
sl@0
   491
	rateOptions.iPictureQuality = 512;
sl@0
   492
	rateOptions.iPictureRate = 1.234;
sl@0
   493
	rateOptions.iQualityTemporalTradeoff = 4.321;
sl@0
   494
	rateOptions.iLatencyQualityTradeoff = 5.678;
sl@0
   495
sl@0
   496
	return rateOptions;
sl@0
   497
	}
sl@0
   498
sl@0
   499
// encoder rate control options comparison utility function 
sl@0
   500
static inline TBool CompareRateControlOptions(const TRateControlOptions& a, const TRateControlOptions& b)
sl@0
   501
	{
sl@0
   502
	if ( (a.iControl == b.iControl) && 
sl@0
   503
		 (a.iBitrate == b.iBitrate) &&		 
sl@0
   504
		 (a.iPictureQuality == b.iPictureQuality) && 
sl@0
   505
		 (a.iPictureRate == b.iPictureRate) &&
sl@0
   506
		 (a.iQualityTemporalTradeoff == b.iQualityTemporalTradeoff) &&
sl@0
   507
		 (a.iLatencyQualityTradeoff == b.iLatencyQualityTradeoff) )
sl@0
   508
		 return ETrue;
sl@0
   509
	else return EFalse;
sl@0
   510
	}
sl@0
   511
sl@0
   512
// scalability
sl@0
   513
const TUint KTestNumSteps = 56;
sl@0
   514
const TInLayerScalabilityType KTestLayerScaleType = EInLScalabilityTemporal;
sl@0
   515
const TUint KTestBitrateShare1 = 666;
sl@0
   516
const TUint KTestBitrateShare2 = 777;
sl@0
   517
const TUint KTestPictureShare1 = 888;
sl@0
   518
const TUint KTestPictureShare2 = 999;
sl@0
   519
sl@0
   520
const TUint KTestPointPeriod = 2;
sl@0
   521
sl@0
   522
// settings output
sl@0
   523
_LIT8(KTestISSettingsOutput, "seven deadly sins...");
sl@0
   524
_LIT8(KTestCSSettingsOutput, "...seven ways to win");
sl@0
   525
sl@0
   526
// picture timestamp
sl@0
   527
const TInt KTestEncPictureTimestamp = 98765;
sl@0
   528
sl@0
   529
// supplemental info
sl@0
   530
_LIT8(KTestSuppInfo, "don't eat spaghetti with chopsticks...");
sl@0
   531
const TInt KTestSuppTime = 6000000;
sl@0
   532
const TInt KTestSuppTimeCancel = 666666666;
sl@0
   533
sl@0
   534
const TInt KTestRecordPosition = 999666333;
sl@0
   535
sl@0
   536
const TUint KTestFreeBuffers = 9;
sl@0
   537
const TUint KTestFreeBytes = 256;
sl@0
   538
sl@0
   539
// picture counters creation utility function
sl@0
   540
static inline CMMFDevVideoRecord::TPictureCounters GetTestEncPictureCounters( void )
sl@0
   541
	{
sl@0
   542
	CMMFDevVideoRecord::TPictureCounters picCount;
sl@0
   543
sl@0
   544
	picCount.iPicturesSkippedBufferOverflow = 10;
sl@0
   545
	picCount.iPicturesSkippedProcPower = 20;
sl@0
   546
	picCount.iPicturesSkippedRateControl = 30;
sl@0
   547
	picCount.iPicturesProcessed = 40;
sl@0
   548
	picCount.iInputPictures = 50;
sl@0
   549
	return picCount;
sl@0
   550
	}
sl@0
   551
sl@0
   552
// picture counters comparison utility function 
sl@0
   553
static inline TBool CompareEncPictureCounters(const CMMFDevVideoRecord::TPictureCounters& a, const CMMFDevVideoRecord::TPictureCounters& b)
sl@0
   554
	{
sl@0
   555
	if ( (a.iPicturesSkippedBufferOverflow == b.iPicturesSkippedBufferOverflow) && 
sl@0
   556
		 (a.iPicturesSkippedProcPower == b.iPicturesSkippedProcPower) &&		 
sl@0
   557
		 (a.iPicturesSkippedRateControl == b.iPicturesSkippedRateControl) && 
sl@0
   558
		 (a.iPicturesProcessed == b.iPicturesProcessed) &&
sl@0
   559
		 (a.iInputPictures == b.iInputPictures ))
sl@0
   560
		 return ETrue;
sl@0
   561
	else return EFalse;
sl@0
   562
	}
sl@0
   563
sl@0
   564
const TInt KTestEncInputPictures = 10;
sl@0
   565
sl@0
   566
const TInt KTestFrameStableX1 = 5;
sl@0
   567
const TInt KTestFrameStableY1 = 10;
sl@0
   568
const TInt KTestFrameStableX2 = 300;
sl@0
   569
const TInt KTestFrameStableY2 = 200;
sl@0
   570
sl@0
   571
const TPictureId KTestPictureId1 = {TPictureId::ETemporalReference, 999};
sl@0
   572
const TPictureId KTestPictureId2 = {TPictureId::ETemporalReference, 666};
sl@0
   573
const TPictureId KTestPictureId3 = {TPictureId::ETemporalReference, 333};
sl@0
   574
sl@0
   575
static inline TBool ComparePictureIDs(const TPictureId& a, const TPictureId&b)
sl@0
   576
	{
sl@0
   577
	return ((a.iIdType == b.iIdType) && (a.iId == b.iId));
sl@0
   578
	}
sl@0
   579
sl@0
   580
// slice loss
sl@0
   581
const TUint KTestFirstMacroblock = 50;
sl@0
   582
const TUint KTestNumMacroblocks = 3;
sl@0
   583
sl@0
   584
// ref picture data
sl@0
   585
_LIT8(KTestRefPictureInfo, "there once was an ugly duckling...");
sl@0
   586
sl@0
   587
// start / stop / pause / resume positions
sl@0
   588
const TInt KTestRecTimeStop	= 0;	
sl@0
   589
sl@0
   590
const TInt KTestRecTimeStartEnc = 10;
sl@0
   591
const TInt KTestRecTimePauseEnc = 20;
sl@0
   592
const TInt KTestRecTimeResumeEnc = 30;
sl@0
   593
sl@0
   594
const TInt KTestRecTimeStartPre = 40;
sl@0
   595
const TInt KTestRecTimePausePre = 50;
sl@0
   596
const TInt KTestRecTimeResumePre = 60;
sl@0
   597
sl@0
   598
// command to start buffer creation
sl@0
   599
_LIT8(KTestISEncBuffers, "get them buffers a rollin!");
sl@0
   600
_LIT8(KTestISEncBufferData, "steam rollin along!");
sl@0
   601
sl@0
   602
// encoder info
sl@0
   603
const TUint32 KTestEncoderInfoCount = 3;
sl@0
   604
sl@0
   605
const TText8* const KTestEncoderInfoMimeArray[KTestEncoderInfoCount] = 
sl@0
   606
	{
sl@0
   607
	_S8("video/bunglevideo"), 
sl@0
   608
	_S8("video/zippyvideo"),
sl@0
   609
	_S8("video/georgevideo")
sl@0
   610
	};
sl@0
   611
sl@0
   612
_LIT(KTestEncoderInfoManufacturer, "bodgitt plc");
sl@0
   613
_LIT(KTestEncoderInfoIdentifier, "video bodger");
sl@0
   614
sl@0
   615
_LIT8(KTestEncoderInfoCSInfo, "coded by a blind orangutan");
sl@0
   616
_LIT8(KTestEncoderInfoISInfo, "implemented by an imp");
sl@0
   617
sl@0
   618
const TInt KTestEncoderInfoVersionMaj = 11;
sl@0
   619
const TInt KTestEncoderInfoVersionMin = 22;
sl@0
   620
const TInt KTestEncoderInfoVersionBuild = 33;
sl@0
   621
// KTestEncoderInfoVersion = Maj.Min.Build;
sl@0
   622
sl@0
   623
const TInt KTestEncoderInfoMaxSizeX = 256;
sl@0
   624
const TInt KTestEncoderInfoMaxSizeY = 512;
sl@0
   625
const TUint KTestEncoderInfoMaxUEPLevels = 5;
sl@0
   626
const TUint KTestEncoderInfoMaxBitrate = 963;
sl@0
   627
const TUint KTestEncoderInfoMaxILSSteps = 555;
sl@0
   628
const TUint32 KTestEncoderInfoPictureOptions = TVideoPicture::ESceneCut | TVideoPicture::EEffectParameters | TVideoPicture::ETimestamp;
sl@0
   629
sl@0
   630
static inline void GetTestEncoderInfoRate(TInt aIndex, TPictureRateAndSize& aRate)
sl@0
   631
	{
sl@0
   632
	TPictureRateAndSize rate;
sl@0
   633
	TSize size(aIndex * 10, aIndex * 20);
sl@0
   634
	TReal rIndex = aIndex;
sl@0
   635
sl@0
   636
	rate.iPictureSize = size;
sl@0
   637
	rate.iPictureRate = rIndex / 10.0;
sl@0
   638
sl@0
   639
	aRate = rate;
sl@0
   640
	}
sl@0
   641
sl@0
   642
// Pre Processor Info
sl@0
   643
_LIT(KTestPreProcInfoManufacturer, "iced inc");
sl@0
   644
_LIT(KTestPreProcInfoIdentifier, "video munger");
sl@0
   645
sl@0
   646
_LIT8(KTestPreProcInfoISInfo, "implemented by a marsupial");
sl@0
   647
sl@0
   648
const TInt KTestPreProcInfoVersionMaj = 44;
sl@0
   649
const TInt KTestPreProcInfoVersionMin = 55;
sl@0
   650
const TInt KTestPreProcInfoVersionBuild = 66;
sl@0
   651
// KTestPreProcInfoVersion = Maj.Min.Build;
sl@0
   652
const TUint32 KTestPreProcInfoRotations = KTestRotate1 | KTestRotate2;
sl@0
   653
const TUint32 KTestPreProcInfoRgbRanges = KTestRgbRange1 | KTestRgbRange2;
sl@0
   654
sl@0
   655
const TYuvToYuvCapabilities KTestPreProcInfoYuvToYuvCaps = {1, 2, 3, 4};
sl@0
   656
sl@0
   657
static inline TBool CompareYuvYuvCapabilities(const TYuvToYuvCapabilities& a, const TYuvToYuvCapabilities& b)
sl@0
   658
	{
sl@0
   659
	return ((a.iInputSamplingPatterns == b.iInputSamplingPatterns) &&
sl@0
   660
			(a.iInputDataLayouts == b.iInputDataLayouts) &&
sl@0
   661
			(a.iOutputSamplingPatterns == b.iOutputSamplingPatterns) &&
sl@0
   662
			(a.iOutputDataLayouts == b.iOutputDataLayouts) );
sl@0
   663
	}
sl@0
   664
sl@0
   665
const TUncompressedVideoFormat KTestPreProcInfoOutputFormatArray[KTestPostProcInfoCount] =
sl@0
   666
	{{ERgbRawData}, {ERgbFbsBitmap}, {EYuvRawData}};
sl@0
   667
sl@0
   668
const TUncompressedVideoFormat KTestPreProcInfoInputFormatArray[KTestPostProcInfoCount] =
sl@0
   669
	{{ERgbFbsBitmap}, {EYuvRawData}, {ERgbRawData}};
sl@0
   670
sl@0
   671
const TUncompressedVideoFormat KTestPreProcInfoNegativeFormat = {ERgbRawData};
sl@0
   672
sl@0
   673
// Custom Interface UIDs
sl@0
   674
const TUid KUidCustomInterfaceOne	= {0x101F7DD1};	//Supported by decoder
sl@0
   675
const TUid KUidCustomInterfaceTwo	= {0x101F7DD2};	//Supported by post processor
sl@0
   676
const TUid KUidCustomInterfaceThree = {0x101F7DD3};	//Supported by encoder
sl@0
   677
const TUid KUidCustomInterfaceFour	= {0x101F7DD4};	//Supported by pre processor
sl@0
   678
sl@0
   679
#endif	// __TESTDEVVIDEOPLAYTESTDATA_H__