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