1 /* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18 #ifndef TEST_PV_PLAYER_ENGINE_H_INCLUDED 19 #define TEST_PV_PLAYER_ENGINE_H_INCLUDED 20 21 #ifndef TEST_CASE_H_INCLUDED 22 #include "test_case.h" 23 #endif 24 25 #ifndef TEXT_TEST_INTERPRETER_H_INCLUDED 26 #include "text_test_interpreter.h" 27 #endif 28 29 #ifndef OSCL_SCHEDULER_AO_H_INCLUDED 30 #include "oscl_scheduler_ao.h" 31 #endif 32 33 #ifndef OSCL_EXCEPTION_H_INCLUDE 34 #include "oscl_exception.h" 35 #endif 36 37 #ifndef PV_PLAYER_FACTORY_H_INCLUDED 38 #include "pv_player_factory.h" 39 #endif 40 41 #ifndef PV_PLAYER_INTERFACE_H_INCLUDE 42 #include "pv_player_interface.h" 43 #endif 44 45 #ifndef PV_ENGINE_OBSERVER_H_INCLUDED 46 #include "pv_engine_observer.h" 47 #endif 48 49 #ifndef PVLOGGER_H_INCLUDED 50 #include "pvlogger.h" 51 #endif 52 53 #ifndef PVLOGGER_STDERR_APPENDER_H_INCLUDED 54 #include "pvlogger_stderr_appender.h" 55 #endif 56 57 #ifndef PVLOGGER_TIME_AND_ID_LAYOUT_H_INCLUDED 58 #include "pvlogger_time_and_id_layout.h" 59 #endif 60 61 #ifndef PVMI_MEDIA_IO_FILEOUTPUT_H_INCLUDED 62 #include "pvmi_media_io_fileoutput.h" 63 #endif 64 65 #ifndef TEST_PV_PLAYER_ENGINE_CONFIG_H_INCLUDED 66 #include "test_pv_player_engine_config.h" 67 #endif 68 69 #ifndef MEDIA_CLOCK_CONVERTER 70 #include "media_clock_converter.h" 71 #endif 72 73 template<class DestructClass> 74 class LogAppenderDestructDealloc : public OsclDestructDealloc 75 { 76 public: 77 virtual void destruct_and_dealloc(OsclAny *ptr) 78 { 79 delete((DestructClass*)ptr); 80 } 81 }; 82 83 class pvplayer_engine_test_suite : public test_case 84 { 85 public: 86 pvplayer_engine_test_suite(char *aFilename, PVMFFormatType aFiletype, int32 aFirstTest, int32 aLastTest, bool aCompV, bool aCompA, bool aFInput, bool aBCS, int32 aLogLevel, int32 aLogNode, int32 aLogText, int32 aLogMem, int32 aFileFormatType, bool aProxyEnabled); 87 }; 88 89 90 // Observer class for pvPlayer async test to notify completion of test 91 class pvplayer_async_test_observer 92 { 93 public: 94 // Signals completion of test. Test instance can be deleted after this callback completes. 95 virtual void TestCompleted(test_case &) = 0; 96 }; 97 98 99 class PVPlayerAsyncTestParam 100 { 101 public: 102 pvplayer_async_test_observer* iObserver; 103 test_case* iTestCase; 104 FILE* iTestMsgOutputFile; 105 const char* iFileName; 106 PVMFFormatType iFileType; 107 bool iCompressedVideo; 108 bool iCompressedAudio; 109 bool iFileInput; 110 bool iBCS; 111 int iCurrentTestNumber; 112 bool iProxyEnabled; 113 //explicit copy constructor 114 void Copy(const PVPlayerAsyncTestParam& aParam) 115 { 116 iObserver = aParam.iObserver; 117 iTestCase = aParam.iTestCase; 118 iTestMsgOutputFile = aParam.iTestMsgOutputFile; 119 iFileName = aParam.iFileName; 120 iFileType = aParam.iFileType; 121 iCompressedVideo = aParam.iCompressedVideo; 122 iCompressedAudio = aParam.iCompressedAudio; 123 iFileInput = aParam.iFileInput; 124 iBCS = aParam.iBCS; 125 iCurrentTestNumber = aParam.iCurrentTestNumber; 126 iProxyEnabled = aParam.iProxyEnabled; 127 } 128 } ; 129 130 #define PVPATB_TEST_IS_TRUE(condition) (iTestCase->test_is_true_stub( (condition), (#condition), __FILE__, __LINE__ )) 131 132 typedef enum 133 { 134 STATE_CREATE, 135 STATE_QUERYINTERFACE, 136 STATE_ADDDATASOURCE, 137 STATE_CONFIGPARAMS, 138 STATE_INIT, 139 STATE_QUERYLICENSEACQIF, 140 STATE_ACQUIRELICENSE, 141 STATE_CANCEL_ACQUIRELICENSE, 142 STATE_INIT2, 143 STATE_GETMETADATAKEYLIST, 144 STATE_GETMETADATAVALUELIST, 145 STATE_ADDDATASINK_VIDEO, 146 STATE_ADDDATASINK_AUDIO, 147 STATE_PREPARE, 148 STATE_WAIT_FOR_DATAREADY, 149 STATE_WAIT_FOR_BUFFCOMPLETE, 150 STATE_CANCELALL, 151 STATE_WAIT_FOR_CANCELALL, 152 STATE_START, 153 STATE_SETPLAYBACKRANGE, 154 STATE_PAUSE, 155 STATE_RESUME, 156 STATE_EOSNOTREACHED, 157 STATE_STOP, 158 STATE_REMOVEDATASINK_VIDEO, 159 STATE_REMOVEDATASINK_AUDIO, 160 STATE_RESET, 161 STATE_REMOVEDATASOURCE, 162 STATE_CLEANUPANDCOMPLETE, 163 STATE_PROTOCOLROLLOVER, 164 STATE_RECONNECT 165 } PVTestState; 166 167 /*! 168 ** PVPlayerTestMioFactory: MIO Factory functions 169 */ 170 class PvmiMIOControl; 171 class PVPlayerTestMioFactory 172 { 173 public: 174 static PVPlayerTestMioFactory* Create(); 175 virtual ~PVPlayerTestMioFactory() {} 176 177 virtual PvmiMIOControl* CreateAudioOutput(OsclAny* aParam) = 0; 178 virtual PvmiMIOControl* CreateAudioOutput(OsclAny* aParam, MediaType aMediaType, bool aCompressedAudio = false) 179 { 180 OSCL_UNUSED_ARG(aParam); 181 OSCL_UNUSED_ARG(aMediaType); 182 OSCL_UNUSED_ARG(aCompressedAudio); 183 return 0; 184 }; 185 virtual PvmiMIOControl* CreateAudioOutput(OsclAny* aParam, PVRefFileOutputTestObserver* aObserver, bool aActiveTiming, uint32 aQueueLimit, bool aSimFlowControl, bool logStrings = true) = 0; 186 virtual void DestroyAudioOutput(PvmiMIOControl* aMio) = 0; 187 virtual PvmiMIOControl* CreateVideoOutput(OsclAny* aParam) = 0; 188 virtual PvmiMIOControl* CreateVideoOutput(OsclAny* aParam, MediaType aMediaType, bool aCompressedVideo = false) 189 { 190 OSCL_UNUSED_ARG(aParam); 191 OSCL_UNUSED_ARG(aMediaType); 192 OSCL_UNUSED_ARG(aCompressedVideo); 193 return 0; 194 }; 195 virtual PvmiMIOControl* CreateVideoOutput(OsclAny* aParam, PVRefFileOutputTestObserver* aObserver, bool aActiveTiming, uint32 aQueueLimit, bool aSimFlowControl, bool logStrings = true) = 0; 196 virtual void DestroyVideoOutput(PvmiMIOControl* aMio) = 0; 197 virtual PvmiMIOControl* CreateTextOutput(OsclAny* aParam) = 0; 198 virtual PvmiMIOControl* CreateTextOutput(OsclAny* aParam, MediaType aMediaType) 199 { 200 OSCL_UNUSED_ARG(aParam); 201 OSCL_UNUSED_ARG(aMediaType); 202 return 0; 203 }; 204 virtual void DestroyTextOutput(PvmiMIOControl* aMio) = 0; 205 }; 206 207 // The base class for all pvplayer engine asynchronous tests 208 class pvplayer_async_test_base : public OsclTimerObject, 209 public PVCommandStatusObserver, 210 public PVInformationalEventObserver, 211 public PVErrorEventObserver 212 { 213 public: 214 pvplayer_async_test_base(PVPlayerAsyncTestParam aTestParam) : 215 OsclTimerObject(OsclActiveObject::EPriorityNominal, "PVPlayerEngineAsyncTestBase") 216 { 217 OSCL_ASSERT(aTestParam.iObserver != NULL); 218 OSCL_ASSERT(aTestParam.iTestCase != NULL); 219 iObserver = aTestParam.iObserver; 220 iTestCase = aTestParam.iTestCase; 221 iTestMsgOutputFile = aTestParam.iTestMsgOutputFile; 222 iFileName = aTestParam.iFileName; 223 iFileType = aTestParam.iFileType; 224 iCompressedVideo = aTestParam.iCompressedVideo; 225 iCompressedAudio = aTestParam.iCompressedAudio; 226 iFileInput = aTestParam.iFileInput; 227 iBCS = aTestParam.iBCS; 228 iTestCaseName = _STRLIT_CHAR(" "); 229 iTestNumber = aTestParam.iCurrentTestNumber; 230 iProxyEnabled = aTestParam.iProxyEnabled; 231 232 // Initialize the variables to use for context data testing 233 iContextObjectRefValue = 0x5C7A; // some random number 234 iContextObject = iContextObjectRefValue; 235 236 iMioFactory = PVPlayerTestMioFactory::Create(); 237 OSCL_ASSERT(iMioFactory); 238 } 239 240 virtual ~pvplayer_async_test_base() 241 { 242 if (iMioFactory) 243 { 244 delete iMioFactory; 245 iMioFactory = NULL; 246 } 247 } 248 249 virtual void StartTest() = 0; 250 251 virtual void CommandCompleted(const PVCmdResponse& /*aResponse*/) {} 252 virtual void HandleErrorEvent(const PVAsyncErrorEvent& /*aEvent*/) {} 253 virtual void HandleInformationalEvent(const PVAsyncInformationalEvent& /*aEvent*/) {} 254 255 // Utility function to retrieve the filename from string and replace ',' with '_' 256 void RetrieveFilename(const oscl_wchar* aSource, OSCL_wHeapString<OsclMemAllocator>& aFilename) 257 { 258 if (aSource == NULL) 259 { 260 return; 261 } 262 263 // Find the last '\' or '/' in the string 264 oscl_wchar* lastslash = (oscl_wchar*)aSource; 265 bool foundlastslash = false; 266 while (!foundlastslash) 267 { 268 const oscl_wchar* tmp1 = oscl_strstr(lastslash, _STRLIT_WCHAR("\\")); 269 const oscl_wchar* tmp2 = oscl_strstr(lastslash, _STRLIT_WCHAR("/")); 270 if (tmp1 != NULL) 271 { 272 lastslash = (oscl_wchar*)tmp1 + 1; 273 } 274 else if (tmp2 != NULL) 275 { 276 lastslash = (oscl_wchar*)tmp2 + 1; 277 } 278 else 279 { 280 foundlastslash = true; 281 } 282 } 283 284 // Now copy the filename 285 if (lastslash) 286 { 287 aFilename = lastslash; 288 } 289 290 // Replace each '.' in filename with '_' 291 bool finishedreplace = false; 292 while (!finishedreplace) 293 { 294 oscl_wchar* tmp = OSCL_CONST_CAST(oscl_wchar*, oscl_strstr(aFilename.get_cstr(), _STRLIT_WCHAR("."))); 295 if (tmp != NULL) 296 { 297 oscl_strncpy(tmp, _STRLIT_WCHAR("_"), 1); 298 } 299 else 300 { 301 finishedreplace = true; 302 } 303 } 304 } 305 306 pvplayer_async_test_observer* iObserver; 307 test_case* iTestCase; 308 FILE* iTestMsgOutputFile; 309 const char *iFileName; 310 PVMFFormatType iFileType; 311 bool iCompressedVideo; 312 bool iCompressedAudio; 313 bool iProxyEnabled; 314 bool iFileInput; 315 bool iBCS; 316 317 OSCL_HeapString<OsclMemAllocator> iTestCaseName; 318 319 uint32 iContextObject; 320 uint32 iContextObjectRefValue; 321 322 int32 iTestNumber; 323 324 // Media IO Factory 325 PVPlayerTestMioFactory* iMioFactory; 326 }; 327 328 329 // test_base-based class which will run async tests on pvPlayer engine 330 class pvplayer_engine_test : public test_case, 331 public pvplayer_async_test_observer 332 { 333 public: 334 pvplayer_engine_test(char *aFileName, PVMFFormatType aFileType, int32 aFirstTest, int32 aLastTest, 335 bool aCompV, bool aCompA, bool aFInput, bool aBCS, int32 aLogLevel, int32 aLogNode, int32 aLogText, int32 aLogMem, int32 aFileFormatType, bool aProxyEnabled); 336 ~pvplayer_engine_test(); 337 338 // Note: for command line options to work, the local tests need to be 0-99, 339 // Download tests 100-199, 340 // Streaming tests 200-299. 341 // Interactive test 800-899 342 enum PVPlayerEngineAsyncTests 343 { 344 NewDeleteTest = 0, 345 OpenPlayStopResetTest, 346 OpenPlayStopResetCPMTest, 347 MetaDataTest, 348 TimingTest, 349 InvalidStateTest, 350 PreparedStopTest, 351 VideoOnlyPlay7Seconds, 352 Play5StopPlay10StopReset, 353 PauseResume, 354 355 PlayPauseStop = 10, 356 OutsideNodeForVideoSink, 357 GetPlayerState, 358 GetCurrentPosition, 359 PlaySetStopPosition, 360 PlaySetStopPositionVidFrameNum, 361 SetStartPositionPlayStop, 362 SetPlayRangePlay, 363 SetPlayRangeVidFrameNumPlay, 364 PlaySetPlayRangeStop, 365 366 PlaySetPlayRangeVidFrameNumStop = 20, 367 TrackLevelInfoTest, 368 SetPlaybackRate2X, 369 SetPlaybackRateFifth, 370 CapConfigInterfaceTest, 371 QueuedCommandsTest, 372 LoopingTest, 373 WaitForEOSTest, 374 MultiplePauseResumeTest, 375 MultipleRepositionTest, // Start of local tests using media IO node 376 377 MediaIONodeOpenPlayStopTest = 30, 378 MediaIONodePlayStopPlayTest, 379 MediaIONodePauseResumeTest, 380 MediaIONodePlaySetPlaybackRangeTest, 381 MediaIONodeSetPlaybackRate3XTest, 382 MediaIONodeSetPlaybackRateHalfTest, 383 MediaIONodeLoopingTest, 384 MediaIONodeWaitForEOSTest, 385 MediaIOMultiplePauseResumeTest, 386 MediaIOMultipleRepositionTest, 387 388 MediaIORepositionConfigTest = 40, 389 MediaIONodeEOSLoopingTest, 390 MediaIONodeRepositionDuringPreparedTest, 391 MediaIONodePlaySetPlaybackRangeStopPlayTest, 392 MediaIONodePlayStopSetPlaybackRangePlayStopTest, 393 MediaIONodeSetPlaybackRangeNearEndStartTest, 394 MediaIONodePlayRepositionNearEndOfClipTest, 395 MediaIONodeForwardStepToEOSTest, 396 MediaIONodeForwardStepTest, 397 MediaIONodeForwardStepActiveAudioTest, 398 MediaIONodeBackwardTest, 399 400 MP4M4VAMRFileOpenPlayStopTest = 51, // Start of testing various local files 401 MP4M4VAMRFilePlayStopPlayStopTest, 402 MP4H263AMRFileOpenPlayStopTest, 403 MP4H263AMRFilePlayStopPlayStopTest, 404 MP4AVCAMRFileOpenPlayStopTest, 405 MP4AVCAMRFilePlayStopPlayStopTest, 406 MP4AMRFileOpenPlayStopTest, 407 MP4AMRFilePlayStopPlayStopTest, 408 MP4AACFileOpenPlayStopTest, 409 410 MP4AACFilePlayStopPlayStopTest = 60, 411 MP4M4VAMRTextFileOpenPlayStopTest, 412 MP4M4VAMRTextFilePlayStopPlayStopTest, 413 AMRIETFFileOpenPlayStopTest, 414 AMRIETFFilePlayStopPlayStopTest, 415 AMRIF2FileOpenPlayStopTest, 416 AMRIF2FilePlayStopPlayStopTest, 417 AACADTSFileOpenPlayStopTest, 418 AACADTSFilePlayStopPlayStopTest, 419 AACADIFFileOpenPlayStopTest, 420 421 AACADIFFilePlayStopPlayStopTest = 70, 422 AACRawFileOpenPlayStopTest, 423 AACRawFilePlayStopPlayStopTest, 424 MP3CBRFileOpenPlayStopTest, 425 MP3CBRFilePlayStopPlayStopTest, 426 MP3VBRFileOpenPlayStopTest, 427 MP3VBRFilePlayStopPlayStopTest, 428 WAVFileOpenPlayStopTest, 429 WAVFilePlayStopPlayStopTest, 430 ASFFileOpenPlayStopTest, 431 ASFFilePlayStopPlayStopTest = 80, 432 433 //real audio test case 434 RealAudioFileOpenPlayStopTest = 81, 435 SetPlaybackAfterPrepare, 436 437 MediaIONodeBackwardForwardTest = 83, 438 MediaIONodePauseNearEOSBackwardResumeTest, 439 MediaIONodeMultiplePauseSetPlaybackRateResumeTest, 440 MediaIONodeBackwardNearEOSForwardNearStartTest, 441 442 MultiplePauseSeekResumeTest = 87, 443 MultipleSetStartPositionPlayStopTest, 444 445 OpenPlayStopResetCPMRecognizeTest = 89, //Start of testing recognizer using DataStream input 446 447 LastLocalTest,//placeholder 448 449 FirstDownloadTest = 100, //placeholder 450 451 FTDownloadOpenPlayStopTest = 101, 452 453 ProgDownloadPlayAsapTest, //102 454 ProgDownloadDownloadThenPlayTest, //103 455 ProgDownloadDownloadOnlyTest, //104 456 ProgDownloadCancelDuringInitTest, //105 457 ProgDownloadContentTooLarge, //106 458 ProgDownloadTruncated, //107 459 ProgDownloadProtocolRolloverTest, //108 460 ProgDownloadSetPlayBackRangeTest, //109 461 ProgDownloadPlayUtilEOSTest, //110 462 FTDownloadOpenPlayUntilEOSTest, //111 463 464 ProgDownloadDownloadThenPlayPauseTest,//112 465 ProgDownloadDownloadThenPlayRepositionTest,//113 466 ProgDownloadCancelDuringInitDelayTest, //114 467 ProgDownloadPauseResumeAfterUnderflowTest, //115 468 469 FTDownloadPlayStopPlayTest, //116 470 ProgDownloadPlayStopPlayTest, //117 471 472 LastDownloadTest, //placeholder 473 474 ProgPlaybackMP4UntilEOSTest = 150, 475 ProgPlaybackMP4ShortTest, //151 476 ProgPlaybackMP4ShortPauseResumeTest, //152 477 ProgPlaybackMP4LongPauseResumeTest, //153 478 ProgPlaybackMP4StartPauseSeekResumeTwiceTest, //154 479 ProgPlaybackMP4SeekStartTest, //155 480 ProgPlaybackMP4StartPauseSeekResumeLoopTest, //156 481 ProgPlaybackMP4SeekForwardStepLoopTest, //157 482 ProgPlaybackPlayStopPlayTest, //158 483 ProgPlaybackMP4SeekToBOCAfterDownloadCompleteTest, //159 484 ProgPlaybackMP4SeekInCacheAfterDownloadCompleteTest, //160 485 ProgPlaybackMP4EOSStopPlayAgainTest, //161 486 487 LastProgressivePlaybackTest, //placeholder 488 489 ShoutcastPlayback5MinuteTest = 180, 490 ShoutcastPlaybackPauseResumeTest = 181, 491 ShoutcastPlaybackPlayStopPlayTest = 182, 492 493 LastShoutcastPlaybackTest, // placeholder 494 495 FirstStreamingTest = 200, //placeholder 496 497 StreamingOpenPlayStopTest, //201 498 StreamingOpenPlayPausePlayStopTest, //202 499 StreamingOpenPlaySeekStopTest, //203 500 StreamingCancelDuringPrepareTest, //204 501 502 LastStreamingTest, //placeholder 503 504 //Multiple Instance tests. 505 MultipleInstanceOpenPlayStopTest = 300, 506 MultipleThreadOpenPlayStopTest = 301, 507 //this range reserved for future multiple instance tests. 508 LastMultipleInstanceTest = 325,//placeholder 509 510 FirstProjTest = 700, // placeholder 511 // Project specific unit tests should have numbers 701 to 799 512 LastProjTest = 799, 513 514 FirstInteractiveTest = 800, // placeholder 515 516 PrintMetadataTest = 801, 517 PrintMemStatsTest, 518 PlayUntilEOSTest, 519 ReleaseMetadataTest, 520 521 StreamingOpenPlayUntilEOSTest = 851,//851 522 StreamingOpenPlayPausePlayUntilEOSTest,//852 523 StreamingOpenPlaySeekPlayUntilEOSTest, //853 524 StreamingJitterBufferAdjustUntilEOSTest, //854 525 StreamingCloakingOpenPlayUntilEOSTest, //855 526 StreamingPlayBitStreamSwitchPlayUntilEOSTest,//856 527 StreamingMultiplePlayUntilEOSTest,//857 528 StreamingMultipleCloakingPlayUntilEOSTest, //858 529 StreamingProtocolRollOverTest, //859 530 StreamingProtocolRollOverTestWithUnknownURLType, //860 531 StreamingPlayListSeekTest, //861 532 StreamingSeekAfterEOSTest, //862 533 /* 534 * TC 863: This test case checks the engine behavior when the server responds 535 * with any of the following error codes - 404 (URL Not Found), 415 (Media Unsupported), 536 * 457 (Invalid Range). In all cases, the test should not error out, and complete as in TC 861 537 */ 538 StreamingPlayListErrorCodeTest, // 863 539 StreamingOpenPlayMultipleSeekToEndOfClipUntilEOSTest, //864 540 541 542 StreamingOpenPlayMultiplePausePlayUntilEOSTest = 875, //875 543 544 DVBH_StreamingOpenPlayStopTest = 876, //876 545 DVBH_StreamingOpenPlayUntilEOSTest, //877 546 StreamingLongPauseTest, //878 547 548 CPM_DLA_OMA1PASSTRHU_OpenFailAuthPlayStopResetTest, //879 549 CPM_DLA_OMA1PASSTRHU_OpenPlayStopResetTest, //880 550 CPM_DLA_OMA1PASSTRHU_UnknownContentOpenPlayStopResetTest, //881 551 552 StreamingOpenPlayUntilEOSTestWithFileHandle,//882 553 //883-888 available 554 555 //GetLicense returns commandCompleted before CancelLic could be triggered 556 CPM_DLA_OMA1PASSTRHU_CancelAcquireLicenseTooLate_CancelFails = 889, //889 557 //GetLicense does not commandComplete, cancelLic is triggered 558 CPM_DLA_OMA1PASSTRHU_CancelAcquireLicense_CancelSucceeds, //890 559 CPM_DLA_OMA1PASSTRHU_ContentNotSupported, //891 560 561 StreamingOpenPlayForwardPlayUntilEOSTest, //892 562 563 //Multiple CPM Plugins 564 OpenPlayStop_MultiCPMTest, //893 565 StreamingLongPauseSeekTest, //894 566 567 GenericReset_AddDataSource = 900, 568 GenericReset_Init, 569 GenericReset_AddDataSinkVideo, 570 GenericReset_AddDataSinkAudio, 571 GenericReset_Prepare, 572 GenericReset_Start, 573 GenericReset_Pause, 574 GenericReset_Resume, 575 GenericReset_Stop, 576 //GenericReset_Reset, 577 GenericReset_SetPlaybackRange, 578 579 GenericDelete_AddDataSource = 910, 580 GenericDelete_Init, 581 GenericDelete_AddDataSinkVideo, 582 GenericDelete_AddDataSinkAudio, 583 GenericDelete_Prepare, 584 GenericDelete_Start, 585 GenericDelete_Pause, 586 GenericDelete_Resume, 587 GenericDelete_Stop, 588 //GenericDelete_Reset, 589 GenericDelete_SetPlaybackRange, 590 591 GenericDeleteWhileProc_AddDataSource = 920, 592 GenericDeleteWhileProc_Init, 593 GenericDeleteWhileProc_AddDataSinkVideo, 594 GenericDeleteWhileProc_AddDataSinkAudio, 595 GenericDeleteWhileProc_Prepare, 596 GenericDeleteWhileProc_Start, 597 GenericDeleteWhileProc_Pause, 598 GenericDeleteWhileProc_Resume, 599 GenericDeleteWhileProc_Stop, 600 //GenericDeleteWhileProc_Reset, 601 GenericDeleteWhileProc_SetPlaybackRange, 602 603 GenericCancelAll_AddDataSource = 930, 604 GenericCancelAll_Init, 605 GenericCancelAll_AddDataSinkVideo, 606 GenericCancelAll_AddDataSinkAudio, 607 GenericCancelAll_Prepare, 608 GenericCancelAll_Start, 609 GenericCancelAll_Pause, 610 GenericCancelAll_Resume, 611 GenericCancelAll_Stop, 612 //GenericCancelAll_Reset, 613 GenericCancelAll_SetPlaybackRange, 614 615 GenericCancelAllWhileProc_AddDataSource = 940, 616 GenericCancelAllWhileProc_Init, 617 GenericCancelAllWhileProc_AddDataSinkVideo, 618 GenericCancelAllWhileProc_AddDataSinkAudio, 619 GenericCancelAllWhileProc_Prepare, 620 GenericCancelAllWhileProc_Start, 621 GenericCancelAllWhileProc_Pause, 622 GenericCancelAllWhileProc_Resume, 623 GenericCancelAllWhileProc_Stop, 624 //GenericCancelAllWhileProc_Reset, 625 GenericCancelAllWhileProc_SetPlaybackRange, 626 627 // ACCESS DRM plugin tests 628 FirstAccessCPMTest = 960, 629 QueryEngine_AccessCPMTest, //961 630 OpenPlayStop_AccessCPMTest, //962 631 PlayStopPlayStop_AccessCPMTest, //963 632 StartupMeasurement_AccessCPMTest, //964 633 LastAccessCPMTest, 634 635 GenericNetworkDisconnect_AddDataSource = 1051, 636 GenericNetworkDisconnect_Init, 637 GenericNetworkDisconnect_AddDataSinkVideo, 638 GenericNetworkDisconnect_AddDataSinkAudio, 639 GenericNetworkDisconnect_Prepare, 640 GenericNetworkDisconnect_Start, 641 GenericNetworkDisconnect_Pause, 642 GenericNetworkDisconnect_Resume, 643 GenericNetworkDisconnect_Stop, 644 GenericNetworkDisconnect_SetPlaybackRange, 645 646 GenericNetworkDisconnectWhileProc_AddDataSource = 1061, 647 GenericNetworkDisconnectWhileProc_Init, 648 GenericNetworkDisconnectWhileProc_AddDataSinkVideo, 649 GenericNetworkDisconnectWhileProc_AddDataSinkAudio, 650 GenericNetworkDisconnectWhileProc_Prepare, 651 GenericNetworkDisconnectWhileProc_Start, 652 GenericNetworkDisconnectWhileProc_Pause, 653 GenericNetworkDisconnectWhileProc_Resume, 654 GenericNetworkDisconnectWhileProc_Stop, 655 GenericNetworkDisconnectWhileProc_SetPlaybackRange, 656 657 GenericNetworkDisconnectReconnect_AddDataSource = 1071, 658 GenericNetworkDisconnectReconnect_Init, 659 GenericNetworkDisconnectReconnect_AddDataSinkVideo, 660 GenericNetworkDisconnectReconnect_AddDataSinkAudio, 661 GenericNetworkDisconnectReconnect_Prepare, 662 GenericNetworkDisconnectReconnect_Start, 663 GenericNetworkDisconnectReconnect_Pause, 664 GenericNetworkDisconnectReconnect_Resume, 665 GenericNetworkDisconnectReconnect_Stop, 666 GenericNetworkDisconnectReconnect_SetPlaybackRange, 667 668 GenericNetworkDisconnectReconnectWhileProc_AddDataSource = 1081, 669 GenericNetworkDisconnectReconnectWhileProc_Init, 670 GenericNetworkDisconnectReconnectWhileProc_AddDataSinkVideo, 671 GenericNetworkDisconnectReconnectWhileProc_AddDataSinkAudio, 672 GenericNetworkDisconnectReconnectWhileProc_Prepare, 673 GenericNetworkDisconnectReconnectWhileProc_Start, 674 GenericNetworkDisconnectReconnectWhileProc_Pause, 675 GenericNetworkDisconnectReconnectWhileProc_Resume, 676 GenericNetworkDisconnectReconnectWhileProc_Stop, 677 GenericNetworkDisconnectReconnectWhileProc_SetPlaybackRange, 678 679 GenericNetworkDisconnectCancelAll_AddDataSource = 1091, 680 GenericNetworkDisconnectCancelAll_Init, 681 GenericNetworkDisconnectCancelAll_AddDataSinkVideo, 682 GenericNetworkDisconnectCancelAll_AddDataSinkAudio, 683 GenericNetworkDisconnectCancelAll_Prepare, 684 GenericNetworkDisconnectCancelAll_Start, 685 GenericNetworkDisconnectCancelAll_Pause, 686 GenericNetworkDisconnectCancelAll_Resume, 687 GenericNetworkDisconnectCancelAll_Stop, 688 GenericNetworkDisconnectCancelAll_SetPlaybackRange, 689 690 GenericNetworkDisconnectCancelAllWhileProc_AddDataSource = 1101, 691 GenericNetworkDisconnectCancelAllWhileProc_Init, 692 GenericNetworkDisconnectCancelAllWhileProc_AddDataSinkVideo, 693 GenericNetworkDisconnectCancelAllWhileProc_AddDataSinkAudio, 694 GenericNetworkDisconnectCancelAllWhileProc_Prepare, 695 GenericNetworkDisconnectCancelAllWhileProc_Start, 696 GenericNetworkDisconnectCancelAllWhileProc_Pause, 697 GenericNetworkDisconnectCancelAllWhileProc_Resume, 698 GenericNetworkDisconnectCancelAllWhileProc_Stop, 699 GenericNetworkDisconnectCancelAllWhileProc_SetPlaybackRange, 700 701 GenericNetworkDisconnectCancelAllWhileProtocolRollover, 702 703 GenericOpenPlayMultiplePauseResumeUntilEOSTest = 1112, 704 GenericOpenPlayMultipleSeekUntilEOSTest, 705 706 GenericOpenPlayStop_SleepAddDataSource = 1114, 707 GenericOpenPlayStop_SleepInit, 708 GenericOpenPlayStop_SleepAddDataSinkVideo, 709 GenericOpenPlayStop_SleepAddDataSinkAudio, 710 GenericOpenPlayStop_SleepPrepare, 711 GenericOpenPlayStop_SleepGetMetaDataValueList, 712 GenericOpenPlayStop_SleepStop, 713 714 GenericOpenPlayPauseResumeSeekStopProfiling = 1125, 715 GenericOpenPlayPauseRepositionResumeUntilEOSTest, 716 GenericOpenPlayPauseRepositionResumeNetworkDisconnectCancelAllTest, 717 GenericOpenSetPlaybackRangeStartPlayStopTest, 718 GenericOpenPlayRepositionToEndTest, 719 GenericPVMFErrorCorruptReNotified, 720 GenericOpenPlayPauseGetMetaDataUntilEOSTest, 721 GenericOpenGetMetaDataPicTest,//1132 722 723 //1133-1149 available. 724 725 //BEGIN JANUS CPM TESTS 726 CleanDrmData_JanusCPMTest = 1150, 727 LoadLicense_JanusCPMTest,//1151 728 OpenPlayStop_JanusCPMTest, //1152 729 PlayStopPlayStop_JanusCPMTest,//1153 730 QueryEngine_JanusCPMTest,//1154 731 StartupMeasurement_JanusCPMTest, //1155 732 //Janus DLA tests 733 DLA_CleanDrmData_JanusCPMTest,//1156 734 DLA_OpenPlayStop_JanusCPMTest,//1157 735 DLA_LicenseCapture_JanusCPMTest,//1158 736 DLA_CancelAcquireLicense_JanusCPMTest,//1159 737 //Janus streaming tests. 738 DLA_StreamingOpenPlayUntilEOST_JanusCPMTest,//1160 739 DLA_StreamingOpenPlayPausePlayUntilEOS_JanusCPMTest,//1161 740 DLA_StreamingOpenPlaySeekPlayUntilEOS_JanusCPMTest,//1162 741 DLA_StreamingMultiplePlayUntilEOS_JanusCPMTest,//1163 742 DLA_StreamingProtocolRollOverTest_JanusCPMTest,//1164 743 DLA_StreamingProtocolRollOverTestWithUnknownURLType_JanusCPMTest,//1165 744 DLA_StreamingCancelAcquireLicense_JanusCPMTest,//1166 745 //Janus PDL tests 746 DLA_PDL_OpenPlayUntilEOS_JanusCPMTest,//1167 747 748 //this range RESERVED for future Janus tests. 749 750 FirstDLAStreamingTest = 1200, //placeholder 751 //note these are all Janus CPM tests 752 753 DLA_StreamingCancelAll_AddDataSource = 1201, 754 DLA_StreamingCancelAll_Init, 755 DLA_StreamingCancelAll_LicenseAcquired, 756 DLA_StreamingCancelAll_AddDataSinkVideo, 757 DLA_StreamingCancelAll_AddDataSinkAudio, 758 DLA_StreamingCancelAll_Prepare, 759 DLA_StreamingCancelAll_Start, 760 DLA_StreamingCancelAll_Pause, 761 DLA_StreamingCancelAll_Resume, 762 DLA_StreamingCancelAll_Stop, 763 DLA_StreamingCancelAll_SetPlaybackRange, 764 765 DLA_StreamingCancelAllWhileProc_AddDataSource = 1212, 766 DLA_StreamingCancelAllWhileProc_Init, 767 DLA_StreamingCancelAllWhileProc_LicenseAcquired, 768 DLA_StreamingCancelAllWhileProc_AddDataSinkVideo, 769 DLA_StreamingCancelAllWhileProc_AddDataSinkAudio, 770 DLA_StreamingCancelAllWhileProc_Prepare, 771 DLA_StreamingCancelAllWhileProc_Start, 772 DLA_StreamingCancelAllWhileProc_Pause, 773 DLA_StreamingCancelAllWhileProc_Resume, 774 DLA_StreamingCancelAllWhileProc_Stop, 775 DLA_StreamingCancelAllWhileProc_SetPlaybackRange, 776 777 DLA_StreamingNetworkDisconnect_AddDataSource = 1223, 778 DLA_StreamingNetworkDisconnect_Init, 779 DLA_StreamingNetworkDisconnect_LicenseAcquired, 780 DLA_StreamingNetworkDisconnect_AddDataSinkVideo, 781 DLA_StreamingNetworkDisconnect_AddDataSinkAudio, 782 DLA_StreamingNetworkDisconnect_Prepare, 783 DLA_StreamingNetworkDisconnect_Start, 784 DLA_StreamingNetworkDisconnect_Pause, 785 DLA_StreamingNetworkDisconnect_Resume, 786 DLA_StreamingNetworkDisconnect_Stop, 787 DLA_StreamingNetworkDisconnect_SetPlaybackRange, 788 789 DLA_StreamingNetworkDisconnectWhileProc_AddDataSource = 1234, 790 DLA_StreamingNetworkDisconnectWhileProc_Init, 791 DLA_StreamingNetworkDisconnectWhileProc_LicenseAcquired, 792 DLA_StreamingNetworkDisconnectWhileProc_AddDataSinkVideo, 793 DLA_StreamingNetworkDisconnectWhileProc_AddDataSinkAudio, 794 DLA_StreamingNetworkDisconnectWhileProc_Prepare, 795 DLA_StreamingNetworkDisconnectWhileProc_Start, 796 DLA_StreamingNetworkDisconnectWhileProc_Pause, 797 DLA_StreamingNetworkDisconnectWhileProc_Resume, 798 DLA_StreamingNetworkDisconnectWhileProc_Stop, 799 DLA_StreamingNetworkDisconnectWhileProc_SetPlaybackRange, 800 801 DLA_StreamingNetworkDisconnectReconnect_AddDataSource = 1245, 802 DLA_StreamingNetworkDisconnectReconnect_Init, 803 DLA_StreamingNetworkDisconnectReconnect_LicenseAcquired, 804 DLA_StreamingNetworkDisconnectReconnect_AddDataSinkVideo, 805 DLA_StreamingNetworkDisconnectReconnect_AddDataSinkAudio, 806 DLA_StreamingNetworkDisconnectReconnect_Prepare, 807 DLA_StreamingNetworkDisconnectReconnect_Start, 808 DLA_StreamingNetworkDisconnectReconnect_Pause, 809 DLA_StreamingNetworkDisconnectReconnect_Resume, 810 DLA_StreamingNetworkDisconnectReconnect_Stop, 811 DLA_StreamingNetworkDisconnectReconnect_SetPlaybackRange, 812 813 DLA_StreamingNetworkDisconnectReconnectWhileProc_AddDataSource = 1256, 814 DLA_StreamingNetworkDisconnectReconnectWhileProc_Init, 815 DLA_StreamingNetworkDisconnectReconnectWhileProc_LicenseAcquired, 816 DLA_StreamingNetworkDisconnectReconnectWhileProc_AddDataSinkVideo, 817 DLA_StreamingNetworkDisconnectReconnectWhileProc_AddDataSinkAudio, 818 DLA_StreamingNetworkDisconnectReconnectWhileProc_Prepare, 819 DLA_StreamingNetworkDisconnectReconnectWhileProc_Start, 820 DLA_StreamingNetworkDisconnectReconnectWhileProc_Pause, 821 DLA_StreamingNetworkDisconnectReconnectWhileProc_Resume, 822 DLA_StreamingNetworkDisconnectReconnectWhileProc_Stop, 823 DLA_StreamingNetworkDisconnectReconnectWhileProc_SetPlaybackRange, 824 825 DLA_StreamingNetworkDisconnectCancelAll_AddDataSource = 1267, 826 DLA_StreamingNetworkDisconnectCancelAll_Init, 827 DLA_StreamingNetworkDisconnectCancelAll_LicenseAcquired, 828 DLA_StreamingNetworkDisconnectCancelAll_AddDataSinkVideo, 829 DLA_StreamingNetworkDisconnectCancelAll_AddDataSinkAudio, 830 DLA_StreamingNetworkDisconnectCancelAll_Prepare, 831 DLA_StreamingNetworkDisconnectCancelAll_Start, 832 DLA_StreamingNetworkDisconnectCancelAll_Pause, 833 DLA_StreamingNetworkDisconnectCancelAll_Resume, 834 DLA_StreamingNetworkDisconnectCancelAll_Stop, 835 DLA_StreamingNetworkDisconnectCancelAll_SetPlaybackRange, 836 837 DLA_StreamingNetworkDisconnectCancelAllWhileProc_AddDataSource = 1278, 838 DLA_StreamingNetworkDisconnectCancelAllWhileProc_Init, 839 DLA_StreamingNetworkDisconnectCancelAllWhileProc_LicenseAcquired, 840 DLA_StreamingNetworkDisconnectCancelAllWhileProc_AddDataSinkVideo, 841 DLA_StreamingNetworkDisconnectCancelAllWhileProc_AddDataSinkAudio, 842 DLA_StreamingNetworkDisconnectCancelAllWhileProc_Prepare, 843 DLA_StreamingNetworkDisconnectCancelAllWhileProc_Start, 844 DLA_StreamingNetworkDisconnectCancelAllWhileProc_Pause, 845 DLA_StreamingNetworkDisconnectCancelAllWhileProc_Resume, 846 DLA_StreamingNetworkDisconnectCancelAllWhileProc_Stop, 847 DLA_StreamingNetworkDisconnectCancelAllWhileProc_SetPlaybackRange, 848 849 DLA_StreamingOpenPlayMultiplePauseResumeUntilEOSTest = 1289, 850 DLA_StreamingOpenPlayMultipleSeekUntilEOSTest, 851 852 DLA_StreamingOpenPlayStop_SleepAddDataSource = 1291, 853 DLA_StreamingOpenPlayStop_SleepInit, 854 DLA_StreamingOpenPlayStop_SleepLicenseAcquired, 855 DLA_StreamingOpenPlayStop_SleepAddDataSinkVideo, 856 DLA_StreamingOpenPlayStop_SleepAddDataSinkAudio, 857 DLA_StreamingOpenPlayStop_SleepPrepare, 858 DLA_StreamingOpenPlayStop_SleepStop = 1301, 859 //END JANUS CPM TESTS 860 861 GenericOpenPlaySeekBeyondClipDurationTest = 1302, 862 863 //tests various modes of track selection 864 //refer to test_pv_player_engine_testset_apptrackselection.h 865 //for definition of modes 866 ApplicationInvolvedTrackSelectionTestDefault = 1303, 867 ApplicationInvolvedTrackSelectionTestPassthru = 1304, 868 ApplicationInvolvedTrackSelectionTestAudioOnly = 1305, 869 ApplicationInvolvedTrackSelectionTestVideoOnly = 1306, 870 ApplicationInvolvedTrackSelectionTestTextOnly = 1307, 871 ApplicationInvolvedTrackSelectionTestNoTracks = 1308, 872 873 //Metadata Query tests 874 DLA_QueryEngine_JupiterCPMTest_v2_WMA = 1400, 875 DLA_QueryEngine_JupiterCPMTest_v24_WMA,//1401 876 DLA_QueryEngine_JupiterCPMTest_v4_Enveloped_ASF,//1402 877 DLA_QueryEngine_JupiterCPMTest_v4_Enveloped_MP4,//1403 878 DLA_QueryEngine_JupiterCPMTest_v4_Enveloped_Image,//1404 879 //Enveloped image tests 880 DLA_EnvelopeRead_JupiterCPMTest_v4_Enveloped_Image,//1405 881 //Multi-media format tests 882 DLA_OpenPlayStop_JupiterCPMTest_v2_WMA,//1406 883 DLA_OpenPlayStop_JupiterCPMTest_v2_WMV,//1407 884 DLA_OpenPlayStop_JupiterCPMTest_v24_WMA,//1408 885 DLA_OpenPlayStop_JupiterCPMTest_v24_WMV,//1409 886 DLA_OpenPlayStop_JupiterCPMTest_v4_WMA,//1410 887 DLA_OpenPlayStop_JupiterCPMTest_v4_WMV,//1411 888 DLA_OpenPlayStop_JupiterCPMTest_v4_AAC,//1412 889 DLA_OpenPlayStop_JupiterCPMTest_v4_H264,//1413 890 DLA_OpenPlayStop_JupiterCPMTest_v4_Enveloped_ASF,//1414 891 DLA_OpenPlayStop_JupiterCPMTest_v4_Enveloped_MP4,//1415 892 DLA_OpenPlayStop_JupiterCPMTest_unprotected_H264,//1416 893 DLA_OpenPlayStop_JupiterCPMTest_unprotected_AAC,//1417 894 //Special license protocol sequence tests 895 DLA_OpenPlayStop_JupiterCPMTest_redirect,//1418 896 DLA_OpenPlayStop_JupiterCPMTest_v24_WMA_fallback,//1419 897 DLA_OpenPlayStop_JupiterCPMTest_v4_WMA_ringtone,//1420 898 DLA_OpenPlayStop_JupiterCPMTest_v4_WMA_domain,//1421 899 DLA_OpenPlayStop_JupiterCPMTest_v4_WMA_domain_renew,//1422 900 DLA_OpenPlayStop_JupiterCPMTest_v4_WMA_domain_offline,//1423 901 DLA_OpenPlayStop_JupiterCPMTest_v4_WMA_domain_history,//1424 902 //Jupiter utility tests 903 DLA_JoinDomain_JupiterCPMTest,//1425 904 DLA_LeaveDomain_JupiterCPMTest,//1426 905 DLA_DeleteLicense_JupiterCPMTest_v2_Content,//1427 906 DLA_DeleteLicense_JupiterCPMTest_v24_Content,//1428 907 DLA_MeteringByCert_JupiterCPMTest,//1429 908 DLA_MeteringByMID_JupiterCPMTest,//1430 909 DLA_MeteringAll_JupiterCPMTest,//1431 910 DLA_LicenseUpdateAll_JupiterCPMTest,//1432 911 DLA_LicenseUpdateExpired_JupiterCPMTest,//1433 912 //Jupiter CancelAcquireLicense tests 913 DLA_CancelAcquireLicense_JupiterCPMTest_v4_Enveloped_Image,//1434 914 DLA_CancelAcquireLicense_JupiterCPMTest_v2_Content,//1435 915 DLA_CancelAcquireLicense_JupiterCPMTest_v24_Content,//1436 916 DLA_CancelAcquireLicense_JupiterCPMTest_v4_Enveloped_MP4,//1437 917 //Jupiter streaming tests. 918 DLA_StreamingOpenPlayUntilEOST_JupiterCPMTest,//1438 919 DLA_StreamingOpenPlayPausePlayUntilEOS_JupiterCPMTest,//1439 920 DLA_StreamingOpenPlaySeekPlayUntilEOS_JupiterCPMTest,//1440 921 DLA_StreamingMultiplePlayUntilEOS_JupiterCPMTest,//1441 922 DLA_StreamingCancelAcquireLicense_JupiterCPMTest,//1442 923 DLA_StreamingProtocolRollOverTest_JupiterCPMTest,//1443 924 DLA_StreamingProtocolRollOverTestWithUnknownURLType_JupiterCPMTest,//1444 925 //RESERVED FOR FUTURE JUPITER CPM TESTS. 926 LastJupiterCPMTest = 1599,//placeholder 927 //End JUPITER CPM TESTS. 928 /* 929 * Note: Starting PVR tests from 1600 since the number of tests exceed the range 930 * from 895 and 900 (the earlier location of the tests) 931 */ 932 /* 933 * =========== Basic PVR tests =========== 934 */ 935 936 /* 937 * 1600: Play->pause->resume->stop test 938 * Description: Self-explanatory 939 */ 940 941 /** 942 PVR Memory Live Buffer tests start at 1600 943 */ 944 945 PVR_MLB_StreamingOpenPlayLivePausePlayStopTest = 1600,//1600 946 PVR_MLB_StreamingOpenPlayLivePausePlaySeekStopTest,//1601 947 PVR_MLB_StreamingOpenPlayLiveBufferBoundaryCheckTest,//1602 948 /* 949 * 1601: Reposition after a play pause 950 * Description: See TC 1611 951 */ 952 953 /* 954 * 1602: Check live buffer boundary 955 * Description: To maintain TC numbers, this test case 956 * does a play followed by a stop. 957 */ 958 959 /* 960 * =========== Live pause tests =========== 961 */ 962 963 /* 964 * 1603: Quick successive pause/resume 965 * Description: This test case will call pause/resume in a quick and 966 * repetitive sequence to test quick successive pause/resume stress condition. 967 * Input: 1. repeat count 968 */ 969 PVR_MLB_StreamingOpenPlayMultipleLivePausePlayTest,//1603 970 /* 971 * 1604: Pause with random duration 972 * Description: This test case will call pause/resume repeatedly. 973 * Each pause has random duration in a range. 974 * Inputs: 1. repeat count. 975 * 2. pause duration range 976 */ 977 PVR_MLB_StreamingOpenPlayMultipleLivePauseRandomDurationPlayTest,//1604 978 /* 979 * 1605: Long pause 980 * Description: This test case will pause long period of time (> live buffer duration) 981 * Input: 1. pause duration 982 */ 983 PVR_MLB_StreamingOpenPlayLongLivePausePlayTest,//1605 984 /* 985 * 1606: Stop during live pause 986 * Description: This test case stop the session during live pause. 987 * Then it starts the same session again. 988 */ 989 PVR_MLB_StreamingOpenPlayLivePauseStopTest,//1606 990 991 /* 992 * =========== Random position tests =========== 993 */ 994 995 /* 996 * 1607: Jump to live after pause 997 * Description: This test case jumps to live session (not buffer) after a pause. 998 * The above step is repeated several times, after pausing for a random duration. 999 * Inputs: 1. Repeat count 1000 * 2. Pause duration range 1001 */ 1002 PVR_MLB_StreamingOpenPauseJumpToLiveStopTest, //1607 1003 /* 1004 * 1608: Jump to live after pause/resume 1005 * Description: This test case pauses a live session for a random duration, resumes 1006 * a for random duration that is less than the pause duration, and then 1007 * jumps to live. This is repeated several times. 1008 * Inputs: 1. Repeat count 1009 * 2. Pause duration range 1010 * 3. Resume duration range 1011 */ 1012 PVR_MLB_StreamingOpenPauseResumeJumpToLiveStopTest, //1608 1013 /* 1014 * 1609: Stop during playing back from live buffer 1015 * Description: This test case pauses a live session for a random duration, resumes 1016 * and then stops the session while playing from the live buffer. The same 1017 * session is started after the stop. 1018 */ 1019 PVR_MLB_StreamingOpenPauseResumeStopTest, //1609 1020 /* 1021 * 1610: RTSP URL test 1022 * Description: This test case uses an RTSP URL as the input for the streaming session. 1023 * Both live and VOD cases are handled. 1024 */ 1025 PVR_MLB_StreamingRTSPUrlPauseResumeStopTest, //1610 1026 1027 /* 1028 * 1611: PVR Repositioning test 1029 * Description: This test case does a sequence of repositioning requests within the live buffer. 1030 * The followed sequence is: start, pause, resume, repositioning sequence, stop. 1031 The repos. sequence consists of 6 repositioning requests back and forward. 1032 */ 1033 PVR_MLB_StreamingPauseResumeRepositionStopTest, //1611 1034 1035 /* 1036 * 1612: PVR Repositioning test 1037 * Description: This test case does a sequence of repositioning requests within the live buffer. 1038 * The followed sequence is: start, pause, repositioning, resume. This sequence is 1039 done six times, followed by a stop. 1040 */ 1041 PVR_MLB_StreamingPauseRepositionResumeStopTest, //1612 1042 1043 /* 1044 * 1613: RTSP END_OF_STREAM test for memory live buffer. 1045 * Description: This test is design to test the case where and RTSP END_OF_STREAM arrives 1046 * during a live pause. Total playback time must equal the cumulative playlist clip 1047 * duration. 1048 * Input: 1049 */ 1050 PVR_MLB_StreamingOpenPlayLivePauseWaitForRTSPEOSResumeTest = 1613,//1613 1051 1052 1053 /* 1054 * 1614: PVR Playlist switch with a full live buffer after JTL 1055 * Description: This test case makes a live pause it resumes once the live buffer gets full, and makes 1056 * a JTL followed by a channel switch, the channel switch time is measured. 1057 1058 */ 1059 PVR_MLB_StreamingOpenPauseJmpToLiveChannelSwitchTest, //1614 1060 1061 1062 1063 /* 1064 * 1615 PVR Bitrate estimation test 1065 * Description: Test case for mismatch between advertised and real bitrate, 1066 * the root of the problem with higher-than-advertised bitrates is that it 1067 * may cause overwrites in the LiveBuffer, which is then reflected in quality artifacts. 1068 * 1069 * PLEASE USE A SDP FILE THAT ANOUNCES A SMALLER BITRATE THAN THE REAL ONE 1070 1071 */ 1072 PVR_MLB_StreamingBitrateEstimationTest = 1615, 1073 1074 /** 1075 PVR FileSystem Live Buffer tests start at 1630 1076 */ 1077 PVR_FSLB_StreamingOpenPlayLivePausePlayStopTest = 1630,//1630 1078 PVR_FSLB_StreamingOpenPlayLivePausePlaySeekStopTest,//1631 1079 PVR_FSLB_StreamingOpenPlayLiveBufferBoundaryCheckTest,//1632 1080 /* 1081 * =========== Live pause tests =========== 1082 */ 1083 1084 /* 1085 * 1633: Quick successive pause/resume 1086 * Description: This test case will call pause/resume in a quick and 1087 * repetitive sequence to test quick successive pause/resume stress condition. 1088 * Input: 1. repeat count 1089 */ 1090 PVR_FSLB_StreamingOpenPlayMultipleLivePausePlayTest,//1633 1091 /* 1092 * 1634: Pause with random duration 1093 * Description: This test case will call pause/resume repeatedly. 1094 * Each pause has random duration in a range. 1095 * Inputs: 1. repeat count. 1096 * 2. pause duration range 1097 */ 1098 PVR_FSLB_StreamingOpenPlayMultipleLivePauseRandomDurationPlayTest,//1634 1099 /* 1100 * 1635: Long pause 1101 * Description: This test case will pause long period of time (> live buffer duration) 1102 * Input: 1. pause duration 1103 */ 1104 PVR_FSLB_StreamingOpenPlayLongLivePausePlayTest,//1635 1105 /* 1106 * 1636: Stop during live pause 1107 * Description: This test case stop the session during live pause. 1108 * Then it starts the same session again. 1109 */ 1110 PVR_FSLB_StreamingOpenPlayLivePauseStopTest,//1636 1111 1112 /* 1113 * =========== Random position tests =========== 1114 */ 1115 1116 /* 1117 * 1637: Jump to live after pause 1118 * Description: This test case jumps to live session (not buffer) after a pause. 1119 * The above step is repeated several times, after pausing for a random duration. 1120 * Inputs: 1. Repeat count 1121 * 2. Pause duration range 1122 */ 1123 PVR_FSLB_StreamingOpenPauseJumpToLiveStopTest, //1637 1124 /* 1125 * 1638: Jump to live after pause/resume 1126 * Description: This test case pauses a live session for a random duration, resumes 1127 * a for random duration that is less than the pause duration, and then 1128 * jumps to live. This is repeated several times. 1129 * Inputs: 1. Repeat count 1130 * 2. Pause duration range 1131 * 3. Resume duration range 1132 */ 1133 PVR_FSLB_StreamingOpenPauseResumeJumpToLiveStopTest, //1638 1134 /* 1135 * 1639: Stop during playing back from live buffer 1136 * Description: This test case pauses a live session for a random duration, resumes 1137 * and then stops the session while playing from the live buffer. The same 1138 * session is started after the stop. 1139 */ 1140 PVR_FSLB_StreamingOpenPauseResumeStopTest, //1639 1141 1142 /* 1143 * 1640: RTSP URL test 1144 * Description: This test case uses an RTSP URL as the input for the streaming session. 1145 * Both live and VOD cases are handled. 1146 */ 1147 PVR_FSLB_StreamingRTSPUrlPauseResumeStopTest, //1640 1148 1149 /* 1150 * 1641: PVR Repositioning test 1151 * Description: This test case does a sequence of repositioning requests within the live buffer. 1152 * The followed sequence is: start, pause, resume, repositioning sequence, stop. 1153 The repos. sequence consists of 6 repositioning requests back and forward. 1154 */ 1155 PVR_FSLB_StreamingPauseResumeRepositionStopTest, //1641 1156 1157 /* 1158 * 1642: PVR Repositioning test 1159 * Description: This test case does a sequence of repositioning requests within the live buffer. 1160 * The followed sequence is: start, pause, repositioning, resume. This sequence is 1161 done six times, followed by a stop. 1162 */ 1163 PVR_FSLB_StreamingPauseRepositionResumeStopTest, //1642 1164 1165 /* 1166 * 1643: RTSP END_OF_STREAM test for file system live buffer. 1167 * Description: Same as 1643. 1168 * Input: 1169 */ 1170 1171 PVR_FSLB_StreamingOpenPlayLivePauseWaitForRTSPEOSResumeTest, //1643 1172 1173 /* 1174 * 1644: PVR Playlist switch with a full live buffer after JTL 1175 * Description: This test case makes a live pause it resumes once the live buffer gets full, and makes 1176 * a JTL followed by a channel switch, the channel switch time is measured. 1177 1178 */ 1179 PVR_FSLB_StreamingOpenPauseJmpToLiveChannelSwitchTest, //1644 1180 1181 1182 /** 1183 PVR local file playback tests start at 1660 1184 */ 1185 1186 PVR_FILEPLAYBACK_OpenPlayUntilEOFTest = 1660,// 1660 1187 1188 /* 1189 * 1661 PVR Local Playback Open-Play-Reposition-Play-Stop 1190 * Description: This test case plays a local pvr file for 10 seconds, then 1191 * it repositions to 50, 75, 40, 0, 60 and 95% of the local file 1192 * and then it stops playback. 1193 * 1194 1195 */ 1196 1197 PVR_FILEPLAYBACK_OpenPlayRepositionPlayStopTest, // 1661 1198 1199 1200 /* 1201 * 1662 PVR Local Playback Open-Play-Pause-Reposition 1202 * Description: This test case plays a local pvr file for 10 seconds, then pauses playback 1203 * it repositions to 50, 75, 40, 0, 60 and 95% of the local file 1204 * and then it stops playback. 1205 * 1206 1207 */ 1208 1209 PVR_FILEPLAYBACK_OpenPlayPauseRepositionTest, // 1662 1210 1211 /* 1212 * 1663 PVR Local Playback Retrieved duration is correct 1213 * Description: This test case plays a local pvr file for 3 seconds and 1214 * verifies if the retrieved duration is correct 1215 * 1216 1217 */ 1218 1219 PVR_FILEPLAYBACK_OpenPlayVerifyDurationTest, // 1663 1220 1221 1222 1223 1224 /*===========================PVR Recorder Test cases============================*/ 1225 1226 /* 1227 * 1680 PVR_Recorder_RecordOnStartUp 1228 * Description: - Recording will start from NPT zero until playback is stopped. 1229 * - Pass criteria will be: No playback or recording errors. 1230 */ 1231 1232 PVR_Recorder_RecordOnStartUp = 1680, 1233 1234 /* 1235 * 1681 PVR_Recorder_RecordOnDemand 1236 * Description: - Recording will start from an arbitrary NPT different than zero to a point before playback is stopped. 1237 * - Pass criteria will be: No playback or recording errors. 1238 */ 1239 1240 PVR_Recorder_RecordOnDemand, 1241 1242 /* 1243 * 1682 PVR_Recorder_MultiplePause 1244 * Description: - Recording will start from NPT zero. 1245 * - Multiple pause/resume resume will be performed 1246 * - Pass criteria will be: No playback or recording errors. 1247 */ 1248 1249 PVR_Recorder_MultiplePause, 1250 1251 /* 1252 * 1683 PVR_Recorder_MultiplePauseJTL 1253 * Description: - Recording will start from NPT zero. 1254 * - Multiple pause/resume will be performed 1255 * - After last pause JTL 1256 * - Pass criteria will be: No playback or recording errors. 1257 */ 1258 1259 PVR_Recorder_MultiplePauseJTL, 1260 1261 /* 1262 * 1684 PVR_Recorder_MultipleRepos 1263 * Description: - Recording will start from NPT zero. 1264 * - Multiple Reposition/resume will be performed 1265 * - Pass criteria will be: No playback or recording errors. 1266 */ 1267 1268 PVR_Recorder_MultipleRepos, 1269 1270 /* 1271 * 1685 PVR_Recorder_MultipleRecord 1272 * Description: - Recording will start from an arbitrary NPT different than zero. 1273 * - Multiple StartRecord/StopRecord will be performed 1274 * - Pass criteria will be: No playback or recording errors 1275 */ 1276 1277 PVR_Recorder_MultipleRecord, 1278 1279 LastInteractiveTest = 2000, // placeholder 1280 1281 1282 BeyondLastTest = 9999 //placeholder 1283 }; 1284 1285 // From test_case 1286 virtual void test(); 1287 1288 // From pvplayer_async_test_observer 1289 void TestCompleted(test_case&); 1290 1291 //Validating file format specific player test cases 1292 bool ValidateTestCase(int& aCurrentTestCaseNumber); 1293 1294 void SetupLoggerScheduler(); 1295 1296 private: 1297 const char *iFileName; 1298 PVMFFormatType iFileType; 1299 1300 int iCurrentTestNumber; 1301 pvplayer_async_test_base* iCurrentTest; 1302 int32 iFirstTest; 1303 int32 iLastTest; 1304 bool iCompressedVideoOutput; 1305 bool iCompressedAudioOutput; 1306 bool iFileInput; 1307 bool iBCS; 1308 //for proxy support 1309 bool iProxyEnabled; 1310 1311 // For test results 1312 int iTotalSuccess; 1313 int iTotalError; 1314 int iTotalFail; 1315 1316 // For logging 1317 int32 iLogLevel; 1318 int32 iLogNode; 1319 int32 iLogFile; 1320 int32 iLogMem; 1321 1322 // For memory statistics 1323 uint32 iTotalAlloc; 1324 uint32 iTotalBytes; 1325 uint32 iAllocFails; 1326 uint32 iNumAllocs; 1327 //Flag for checking the file type 1328 int32 iFileFormatType; 1329 }; 1330 1331 /** 1332 * Factory class for project specific unit test cases 1333 */ 1334 class PVPlayerProjTestFactory 1335 { 1336 public: 1337 /** 1338 * Creates customer project test case object as specified by test case number. Default 1339 * implementation returns NULL. Customer projects that wish to extend pvPlayer unit 1340 * test to implement customer specific test cases should implement this function 1341 * 1342 * @param aTestCaseNumber - Unit test case number 1343 * @param aTestParam - Parameters to the unit test case 1344 * @return Newly created project specific test case object, or NULL if the test case 1345 * number is not supported. 1346 */ 1347 virtual pvplayer_async_test_base* GetProjTest(uint aTestCaseNumber, PVPlayerAsyncTestParam aTestParam) 1348 { 1349 OSCL_UNUSED_ARG(aTestCaseNumber); 1350 OSCL_UNUSED_ARG(aTestParam); 1351 return NULL; 1352 } 1353 }; 1354 1355 #endif 1356 1357 1358