blob: 39491e97e957d6bbac955a91c59f28d977e502eb [file] [log] [blame]
/* ------------------------------------------------------------------
* Copyright (C) 1998-2009 PacketVideo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
* See the License for the specific language governing permissions
* and limitations under the License.
* -------------------------------------------------------------------
*/
#ifndef TEST_PV_PLAYER_ENGINE_H_INCLUDED
#define TEST_PV_PLAYER_ENGINE_H_INCLUDED
#ifndef TEST_CASE_H_INCLUDED
#include "test_case.h"
#endif
#ifndef TEXT_TEST_INTERPRETER_H_INCLUDED
#include "text_test_interpreter.h"
#endif
#ifndef OSCL_SCHEDULER_AO_H_INCLUDED
#include "oscl_scheduler_ao.h"
#endif
#ifndef OSCL_EXCEPTION_H_INCLUDE
#include "oscl_exception.h"
#endif
#ifndef PV_PLAYER_FACTORY_H_INCLUDED
#include "pv_player_factory.h"
#endif
#ifndef PV_PLAYER_INTERFACE_H_INCLUDE
#include "pv_player_interface.h"
#endif
#ifndef PV_ENGINE_OBSERVER_H_INCLUDED
#include "pv_engine_observer.h"
#endif
#ifndef PVLOGGER_H_INCLUDED
#include "pvlogger.h"
#endif
#ifndef PVLOGGER_STDERR_APPENDER_H_INCLUDED
#include "pvlogger_stderr_appender.h"
#endif
#ifndef PVLOGGER_TIME_AND_ID_LAYOUT_H_INCLUDED
#include "pvlogger_time_and_id_layout.h"
#endif
#ifndef PVMI_MEDIA_IO_FILEOUTPUT_H_INCLUDED
#include "pvmi_media_io_fileoutput.h"
#endif
#ifndef TEST_PV_PLAYER_ENGINE_CONFIG_H_INCLUDED
#include "test_pv_player_engine_config.h"
#endif
#ifndef MEDIA_CLOCK_CONVERTER
#include "media_clock_converter.h"
#endif
template<class DestructClass>
class LogAppenderDestructDealloc : public OsclDestructDealloc
{
public:
virtual void destruct_and_dealloc(OsclAny *ptr)
{
delete((DestructClass*)ptr);
}
};
class pvplayer_engine_test_suite : public test_case
{
public:
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);
};
// Observer class for pvPlayer async test to notify completion of test
class pvplayer_async_test_observer
{
public:
// Signals completion of test. Test instance can be deleted after this callback completes.
virtual void TestCompleted(test_case &) = 0;
};
class PVPlayerAsyncTestParam
{
public:
pvplayer_async_test_observer* iObserver;
test_case* iTestCase;
FILE* iTestMsgOutputFile;
const char* iFileName;
PVMFFormatType iFileType;
bool iCompressedVideo;
bool iCompressedAudio;
bool iFileInput;
bool iBCS;
int iCurrentTestNumber;
bool iProxyEnabled;
//explicit copy constructor
void Copy(const PVPlayerAsyncTestParam& aParam)
{
iObserver = aParam.iObserver;
iTestCase = aParam.iTestCase;
iTestMsgOutputFile = aParam.iTestMsgOutputFile;
iFileName = aParam.iFileName;
iFileType = aParam.iFileType;
iCompressedVideo = aParam.iCompressedVideo;
iCompressedAudio = aParam.iCompressedAudio;
iFileInput = aParam.iFileInput;
iBCS = aParam.iBCS;
iCurrentTestNumber = aParam.iCurrentTestNumber;
iProxyEnabled = aParam.iProxyEnabled;
}
} ;
#define PVPATB_TEST_IS_TRUE(condition) (iTestCase->test_is_true_stub( (condition), (#condition), __FILE__, __LINE__ ))
typedef enum
{
STATE_CREATE,
STATE_QUERYINTERFACE,
STATE_ADDDATASOURCE,
STATE_CONFIGPARAMS,
STATE_INIT,
STATE_QUERYLICENSEACQIF,
STATE_ACQUIRELICENSE,
STATE_CANCEL_ACQUIRELICENSE,
STATE_INIT2,
STATE_GETMETADATAKEYLIST,
STATE_GETMETADATAVALUELIST,
STATE_ADDDATASINK_VIDEO,
STATE_ADDDATASINK_AUDIO,
STATE_PREPARE,
STATE_WAIT_FOR_DATAREADY,
STATE_WAIT_FOR_BUFFCOMPLETE,
STATE_CANCELALL,
STATE_WAIT_FOR_CANCELALL,
STATE_START,
STATE_SETPLAYBACKRANGE,
STATE_PAUSE,
STATE_RESUME,
STATE_EOSNOTREACHED,
STATE_STOP,
STATE_REMOVEDATASINK_VIDEO,
STATE_REMOVEDATASINK_AUDIO,
STATE_RESET,
STATE_REMOVEDATASOURCE,
STATE_CLEANUPANDCOMPLETE,
STATE_PROTOCOLROLLOVER,
STATE_RECONNECT
} PVTestState;
/*!
** PVPlayerTestMioFactory: MIO Factory functions
*/
class PvmiMIOControl;
class PVPlayerTestMioFactory
{
public:
static PVPlayerTestMioFactory* Create();
virtual ~PVPlayerTestMioFactory() {}
virtual PvmiMIOControl* CreateAudioOutput(OsclAny* aParam) = 0;
virtual PvmiMIOControl* CreateAudioOutput(OsclAny* aParam, MediaType aMediaType, bool aCompressedAudio = false)
{
OSCL_UNUSED_ARG(aParam);
OSCL_UNUSED_ARG(aMediaType);
OSCL_UNUSED_ARG(aCompressedAudio);
return 0;
};
virtual PvmiMIOControl* CreateAudioOutput(OsclAny* aParam, PVRefFileOutputTestObserver* aObserver, bool aActiveTiming, uint32 aQueueLimit, bool aSimFlowControl, bool logStrings = true) = 0;
virtual void DestroyAudioOutput(PvmiMIOControl* aMio) = 0;
virtual PvmiMIOControl* CreateVideoOutput(OsclAny* aParam) = 0;
virtual PvmiMIOControl* CreateVideoOutput(OsclAny* aParam, MediaType aMediaType, bool aCompressedVideo = false)
{
OSCL_UNUSED_ARG(aParam);
OSCL_UNUSED_ARG(aMediaType);
OSCL_UNUSED_ARG(aCompressedVideo);
return 0;
};
virtual PvmiMIOControl* CreateVideoOutput(OsclAny* aParam, PVRefFileOutputTestObserver* aObserver, bool aActiveTiming, uint32 aQueueLimit, bool aSimFlowControl, bool logStrings = true) = 0;
virtual void DestroyVideoOutput(PvmiMIOControl* aMio) = 0;
virtual PvmiMIOControl* CreateTextOutput(OsclAny* aParam) = 0;
virtual PvmiMIOControl* CreateTextOutput(OsclAny* aParam, MediaType aMediaType)
{
OSCL_UNUSED_ARG(aParam);
OSCL_UNUSED_ARG(aMediaType);
return 0;
};
virtual void DestroyTextOutput(PvmiMIOControl* aMio) = 0;
};
// The base class for all pvplayer engine asynchronous tests
class pvplayer_async_test_base : public OsclTimerObject,
public PVCommandStatusObserver,
public PVInformationalEventObserver,
public PVErrorEventObserver
{
public:
pvplayer_async_test_base(PVPlayerAsyncTestParam aTestParam) :
OsclTimerObject(OsclActiveObject::EPriorityNominal, "PVPlayerEngineAsyncTestBase")
{
OSCL_ASSERT(aTestParam.iObserver != NULL);
OSCL_ASSERT(aTestParam.iTestCase != NULL);
iObserver = aTestParam.iObserver;
iTestCase = aTestParam.iTestCase;
iTestMsgOutputFile = aTestParam.iTestMsgOutputFile;
iFileName = aTestParam.iFileName;
iFileType = aTestParam.iFileType;
iCompressedVideo = aTestParam.iCompressedVideo;
iCompressedAudio = aTestParam.iCompressedAudio;
iFileInput = aTestParam.iFileInput;
iBCS = aTestParam.iBCS;
iTestCaseName = _STRLIT_CHAR(" ");
iTestNumber = aTestParam.iCurrentTestNumber;
iProxyEnabled = aTestParam.iProxyEnabled;
// Initialize the variables to use for context data testing
iContextObjectRefValue = 0x5C7A; // some random number
iContextObject = iContextObjectRefValue;
iMioFactory = PVPlayerTestMioFactory::Create();
OSCL_ASSERT(iMioFactory);
}
virtual ~pvplayer_async_test_base()
{
if (iMioFactory)
{
delete iMioFactory;
iMioFactory = NULL;
}
}
virtual void StartTest() = 0;
virtual void CommandCompleted(const PVCmdResponse& /*aResponse*/) {}
virtual void HandleErrorEvent(const PVAsyncErrorEvent& /*aEvent*/) {}
virtual void HandleInformationalEvent(const PVAsyncInformationalEvent& /*aEvent*/) {}
// Utility function to retrieve the filename from string and replace ',' with '_'
void RetrieveFilename(const oscl_wchar* aSource, OSCL_wHeapString<OsclMemAllocator>& aFilename)
{
if (aSource == NULL)
{
return;
}
// Find the last '\' or '/' in the string
oscl_wchar* lastslash = (oscl_wchar*)aSource;
bool foundlastslash = false;
while (!foundlastslash)
{
const oscl_wchar* tmp1 = oscl_strstr(lastslash, _STRLIT_WCHAR("\\"));
const oscl_wchar* tmp2 = oscl_strstr(lastslash, _STRLIT_WCHAR("/"));
if (tmp1 != NULL)
{
lastslash = (oscl_wchar*)tmp1 + 1;
}
else if (tmp2 != NULL)
{
lastslash = (oscl_wchar*)tmp2 + 1;
}
else
{
foundlastslash = true;
}
}
// Now copy the filename
if (lastslash)
{
aFilename = lastslash;
}
// Replace each '.' in filename with '_'
bool finishedreplace = false;
while (!finishedreplace)
{
oscl_wchar* tmp = OSCL_CONST_CAST(oscl_wchar*, oscl_strstr(aFilename.get_cstr(), _STRLIT_WCHAR(".")));
if (tmp != NULL)
{
oscl_strncpy(tmp, _STRLIT_WCHAR("_"), 1);
}
else
{
finishedreplace = true;
}
}
}
pvplayer_async_test_observer* iObserver;
test_case* iTestCase;
FILE* iTestMsgOutputFile;
const char *iFileName;
PVMFFormatType iFileType;
bool iCompressedVideo;
bool iCompressedAudio;
bool iProxyEnabled;
bool iFileInput;
bool iBCS;
OSCL_HeapString<OsclMemAllocator> iTestCaseName;
uint32 iContextObject;
uint32 iContextObjectRefValue;
int32 iTestNumber;
// Media IO Factory
PVPlayerTestMioFactory* iMioFactory;
};
// test_base-based class which will run async tests on pvPlayer engine
class pvplayer_engine_test : public test_case,
public pvplayer_async_test_observer
{
public:
pvplayer_engine_test(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);
~pvplayer_engine_test();
// Note: for command line options to work, the local tests need to be 0-99,
// Download tests 100-199,
// Streaming tests 200-299.
// Interactive test 800-899
enum PVPlayerEngineAsyncTests
{
NewDeleteTest = 0,
OpenPlayStopResetTest,
OpenPlayStopResetCPMTest,
MetaDataTest,
TimingTest,
InvalidStateTest,
PreparedStopTest,
VideoOnlyPlay7Seconds,
Play5StopPlay10StopReset,
PauseResume,
PlayPauseStop = 10,
OutsideNodeForVideoSink,
GetPlayerState,
GetCurrentPosition,
PlaySetStopPosition,
PlaySetStopPositionVidFrameNum,
SetStartPositionPlayStop,
SetPlayRangePlay,
SetPlayRangeVidFrameNumPlay,
PlaySetPlayRangeStop,
PlaySetPlayRangeVidFrameNumStop = 20,
TrackLevelInfoTest,
SetPlaybackRate2X,
SetPlaybackRateFifth,
CapConfigInterfaceTest,
QueuedCommandsTest,
LoopingTest,
WaitForEOSTest,
MultiplePauseResumeTest,
MultipleRepositionTest, // Start of local tests using media IO node
MediaIONodeOpenPlayStopTest = 30,
MediaIONodePlayStopPlayTest,
MediaIONodePauseResumeTest,
MediaIONodePlaySetPlaybackRangeTest,
MediaIONodeSetPlaybackRate3XTest,
MediaIONodeSetPlaybackRateHalfTest,
MediaIONodeLoopingTest,
MediaIONodeWaitForEOSTest,
MediaIOMultiplePauseResumeTest,
MediaIOMultipleRepositionTest,
MediaIORepositionConfigTest = 40,
MediaIONodeEOSLoopingTest,
MediaIONodeRepositionDuringPreparedTest,
MediaIONodePlaySetPlaybackRangeStopPlayTest,
MediaIONodePlayStopSetPlaybackRangePlayStopTest,
MediaIONodeSetPlaybackRangeNearEndStartTest,
MediaIONodePlayRepositionNearEndOfClipTest,
MediaIONodeForwardStepToEOSTest,
MediaIONodeForwardStepTest,
MediaIONodeForwardStepActiveAudioTest,
MediaIONodeBackwardTest,
MP4M4VAMRFileOpenPlayStopTest = 51, // Start of testing various local files
MP4M4VAMRFilePlayStopPlayStopTest,
MP4H263AMRFileOpenPlayStopTest,
MP4H263AMRFilePlayStopPlayStopTest,
MP4AVCAMRFileOpenPlayStopTest,
MP4AVCAMRFilePlayStopPlayStopTest,
MP4AMRFileOpenPlayStopTest,
MP4AMRFilePlayStopPlayStopTest,
MP4AACFileOpenPlayStopTest,
MP4AACFilePlayStopPlayStopTest = 60,
MP4M4VAMRTextFileOpenPlayStopTest,
MP4M4VAMRTextFilePlayStopPlayStopTest,
AMRIETFFileOpenPlayStopTest,
AMRIETFFilePlayStopPlayStopTest,
AMRIF2FileOpenPlayStopTest,
AMRIF2FilePlayStopPlayStopTest,
AACADTSFileOpenPlayStopTest,
AACADTSFilePlayStopPlayStopTest,
AACADIFFileOpenPlayStopTest,
AACADIFFilePlayStopPlayStopTest = 70,
AACRawFileOpenPlayStopTest,
AACRawFilePlayStopPlayStopTest,
MP3CBRFileOpenPlayStopTest,
MP3CBRFilePlayStopPlayStopTest,
MP3VBRFileOpenPlayStopTest,
MP3VBRFilePlayStopPlayStopTest,
WAVFileOpenPlayStopTest,
WAVFilePlayStopPlayStopTest,
ASFFileOpenPlayStopTest,
ASFFilePlayStopPlayStopTest = 80,
//real audio test case
RealAudioFileOpenPlayStopTest = 81,
SetPlaybackAfterPrepare,
MediaIONodeBackwardForwardTest = 83,
MediaIONodePauseNearEOSBackwardResumeTest,
MediaIONodeMultiplePauseSetPlaybackRateResumeTest,
MediaIONodeBackwardNearEOSForwardNearStartTest,
MultiplePauseSeekResumeTest = 87,
MultipleSetStartPositionPlayStopTest,
OpenPlayStopResetCPMRecognizeTest = 89, //Start of testing recognizer using DataStream input
LastLocalTest,//placeholder
FirstDownloadTest = 100, //placeholder
FTDownloadOpenPlayStopTest = 101,
ProgDownloadPlayAsapTest, //102
ProgDownloadDownloadThenPlayTest, //103
ProgDownloadDownloadOnlyTest, //104
ProgDownloadCancelDuringInitTest, //105
ProgDownloadContentTooLarge, //106
ProgDownloadTruncated, //107
ProgDownloadProtocolRolloverTest, //108
ProgDownloadSetPlayBackRangeTest, //109
ProgDownloadPlayUtilEOSTest, //110
FTDownloadOpenPlayUntilEOSTest, //111
ProgDownloadDownloadThenPlayPauseTest,//112
ProgDownloadDownloadThenPlayRepositionTest,//113
ProgDownloadCancelDuringInitDelayTest, //114
ProgDownloadPauseResumeAfterUnderflowTest, //115
FTDownloadPlayStopPlayTest, //116
ProgDownloadPlayStopPlayTest, //117
LastDownloadTest, //placeholder
ProgPlaybackMP4UntilEOSTest = 150,
ProgPlaybackMP4ShortTest, //151
ProgPlaybackMP4ShortPauseResumeTest, //152
ProgPlaybackMP4LongPauseResumeTest, //153
ProgPlaybackMP4StartPauseSeekResumeTwiceTest, //154
ProgPlaybackMP4SeekStartTest, //155
ProgPlaybackMP4StartPauseSeekResumeLoopTest, //156
ProgPlaybackMP4SeekForwardStepLoopTest, //157
ProgPlaybackPlayStopPlayTest, //158
ProgPlaybackMP4SeekToBOCAfterDownloadCompleteTest, //159
ProgPlaybackMP4SeekInCacheAfterDownloadCompleteTest, //160
ProgPlaybackMP4EOSStopPlayAgainTest, //161
LastProgressivePlaybackTest, //placeholder
FirstStreamingTest = 200, //placeholder
StreamingOpenPlayStopTest, //201
StreamingOpenPlayPausePlayStopTest, //202
StreamingOpenPlaySeekStopTest, //203
StreamingCancelDuringPrepareTest, //204
LastStreamingTest, //placeholder
//Multiple Instance tests.
MultipleInstanceOpenPlayStopTest = 300,
MultipleThreadOpenPlayStopTest = 301,
//this range reserved for future multiple instance tests.
LastMultipleInstanceTest = 325,//placeholder
FirstProjTest = 700, // placeholder
// Project specific unit tests should have numbers 701 to 799
LastProjTest = 799,
FirstInteractiveTest = 800, // placeholder
PrintMetadataTest = 801,
PrintMemStatsTest,
PlayUntilEOSTest,
ReleaseMetadataTest,
StreamingOpenPlayUntilEOSTest = 851,//851
StreamingOpenPlayPausePlayUntilEOSTest,//852
StreamingOpenPlaySeekPlayUntilEOSTest, //853
StreamingJitterBufferAdjustUntilEOSTest, //854
StreamingCloakingOpenPlayUntilEOSTest, //855
StreamingPlayBitStreamSwitchPlayUntilEOSTest,//856
StreamingMultiplePlayUntilEOSTest,//857
StreamingMultipleCloakingPlayUntilEOSTest, //858
StreamingProtocolRollOverTest, //859
StreamingProtocolRollOverTestWithUnknownURLType, //860
StreamingPlayListSeekTest, //861
StreamingSeekAfterEOSTest, //862
/*
* TC 863: This test case checks the engine behavior when the server responds
* with any of the following error codes - 404 (URL Not Found), 415 (Media Unsupported),
* 457 (Invalid Range). In all cases, the test should not error out, and complete as in TC 861
*/
StreamingPlayListErrorCodeTest, // 863
StreamingOpenPlayMultipleSeekToEndOfClipUntilEOSTest, //864
StreamingOpenPlayMultiplePausePlayUntilEOSTest = 875, //875
DVBH_StreamingOpenPlayStopTest = 876, //876
DVBH_StreamingOpenPlayUntilEOSTest, //877
StreamingLongPauseTest, //878
CPM_DLA_OMA1PASSTRHU_OpenFailAuthPlayStopResetTest, //879
CPM_DLA_OMA1PASSTRHU_OpenPlayStopResetTest, //880
CPM_DLA_OMA1PASSTRHU_UnknownContentOpenPlayStopResetTest, //881
StreamingOpenPlayUntilEOSTestWithFileHandle,//882
//883-888 available
//GetLicense returns commandCompleted before CancelLic could be triggered
CPM_DLA_OMA1PASSTRHU_CancelAcquireLicenseTooLate_CancelFails = 889, //889
//GetLicense does not commandComplete, cancelLic is triggered
CPM_DLA_OMA1PASSTRHU_CancelAcquireLicense_CancelSucceeds, //890
CPM_DLA_OMA1PASSTRHU_ContentNotSupported, //891
StreamingOpenPlayForwardPlayUntilEOSTest, //892
//Multiple CPM Plugins
OpenPlayStop_MultiCPMTest, //893
StreamingLongPauseSeekTest, //894
GenericReset_AddDataSource = 900,
GenericReset_Init,
GenericReset_AddDataSinkVideo,
GenericReset_AddDataSinkAudio,
GenericReset_Prepare,
GenericReset_Start,
GenericReset_Pause,
GenericReset_Resume,
GenericReset_Stop,
//GenericReset_Reset,
GenericReset_SetPlaybackRange,
GenericDelete_AddDataSource = 910,
GenericDelete_Init,
GenericDelete_AddDataSinkVideo,
GenericDelete_AddDataSinkAudio,
GenericDelete_Prepare,
GenericDelete_Start,
GenericDelete_Pause,
GenericDelete_Resume,
GenericDelete_Stop,
//GenericDelete_Reset,
GenericDelete_SetPlaybackRange,
GenericDeleteWhileProc_AddDataSource = 920,
GenericDeleteWhileProc_Init,
GenericDeleteWhileProc_AddDataSinkVideo,
GenericDeleteWhileProc_AddDataSinkAudio,
GenericDeleteWhileProc_Prepare,
GenericDeleteWhileProc_Start,
GenericDeleteWhileProc_Pause,
GenericDeleteWhileProc_Resume,
GenericDeleteWhileProc_Stop,
//GenericDeleteWhileProc_Reset,
GenericDeleteWhileProc_SetPlaybackRange,
GenericCancelAll_AddDataSource = 930,
GenericCancelAll_Init,
GenericCancelAll_AddDataSinkVideo,
GenericCancelAll_AddDataSinkAudio,
GenericCancelAll_Prepare,
GenericCancelAll_Start,
GenericCancelAll_Pause,
GenericCancelAll_Resume,
GenericCancelAll_Stop,
//GenericCancelAll_Reset,
GenericCancelAll_SetPlaybackRange,
GenericCancelAllWhileProc_AddDataSource = 940,
GenericCancelAllWhileProc_Init,
GenericCancelAllWhileProc_AddDataSinkVideo,
GenericCancelAllWhileProc_AddDataSinkAudio,
GenericCancelAllWhileProc_Prepare,
GenericCancelAllWhileProc_Start,
GenericCancelAllWhileProc_Pause,
GenericCancelAllWhileProc_Resume,
GenericCancelAllWhileProc_Stop,
//GenericCancelAllWhileProc_Reset,
GenericCancelAllWhileProc_SetPlaybackRange,
// ACCESS DRM plugin tests
FirstAccessCPMTest = 960,
QueryEngine_AccessCPMTest, //961
OpenPlayStop_AccessCPMTest, //962
PlayStopPlayStop_AccessCPMTest, //963
StartupMeasurement_AccessCPMTest, //964
LastAccessCPMTest,
GenericNetworkDisconnect_AddDataSource = 1051,
GenericNetworkDisconnect_Init,
GenericNetworkDisconnect_AddDataSinkVideo,
GenericNetworkDisconnect_AddDataSinkAudio,
GenericNetworkDisconnect_Prepare,
GenericNetworkDisconnect_Start,
GenericNetworkDisconnect_Pause,
GenericNetworkDisconnect_Resume,
GenericNetworkDisconnect_Stop,
GenericNetworkDisconnect_SetPlaybackRange,
GenericNetworkDisconnectWhileProc_AddDataSource = 1061,
GenericNetworkDisconnectWhileProc_Init,
GenericNetworkDisconnectWhileProc_AddDataSinkVideo,
GenericNetworkDisconnectWhileProc_AddDataSinkAudio,
GenericNetworkDisconnectWhileProc_Prepare,
GenericNetworkDisconnectWhileProc_Start,
GenericNetworkDisconnectWhileProc_Pause,
GenericNetworkDisconnectWhileProc_Resume,
GenericNetworkDisconnectWhileProc_Stop,
GenericNetworkDisconnectWhileProc_SetPlaybackRange,
GenericNetworkDisconnectReconnect_AddDataSource = 1071,
GenericNetworkDisconnectReconnect_Init,
GenericNetworkDisconnectReconnect_AddDataSinkVideo,
GenericNetworkDisconnectReconnect_AddDataSinkAudio,
GenericNetworkDisconnectReconnect_Prepare,
GenericNetworkDisconnectReconnect_Start,
GenericNetworkDisconnectReconnect_Pause,
GenericNetworkDisconnectReconnect_Resume,
GenericNetworkDisconnectReconnect_Stop,
GenericNetworkDisconnectReconnect_SetPlaybackRange,
GenericNetworkDisconnectReconnectWhileProc_AddDataSource = 1081,
GenericNetworkDisconnectReconnectWhileProc_Init,
GenericNetworkDisconnectReconnectWhileProc_AddDataSinkVideo,
GenericNetworkDisconnectReconnectWhileProc_AddDataSinkAudio,
GenericNetworkDisconnectReconnectWhileProc_Prepare,
GenericNetworkDisconnectReconnectWhileProc_Start,
GenericNetworkDisconnectReconnectWhileProc_Pause,
GenericNetworkDisconnectReconnectWhileProc_Resume,
GenericNetworkDisconnectReconnectWhileProc_Stop,
GenericNetworkDisconnectReconnectWhileProc_SetPlaybackRange,
GenericNetworkDisconnectCancelAll_AddDataSource = 1091,
GenericNetworkDisconnectCancelAll_Init,
GenericNetworkDisconnectCancelAll_AddDataSinkVideo,
GenericNetworkDisconnectCancelAll_AddDataSinkAudio,
GenericNetworkDisconnectCancelAll_Prepare,
GenericNetworkDisconnectCancelAll_Start,
GenericNetworkDisconnectCancelAll_Pause,
GenericNetworkDisconnectCancelAll_Resume,
GenericNetworkDisconnectCancelAll_Stop,
GenericNetworkDisconnectCancelAll_SetPlaybackRange,
GenericNetworkDisconnectCancelAllWhileProc_AddDataSource = 1101,
GenericNetworkDisconnectCancelAllWhileProc_Init,
GenericNetworkDisconnectCancelAllWhileProc_AddDataSinkVideo,
GenericNetworkDisconnectCancelAllWhileProc_AddDataSinkAudio,
GenericNetworkDisconnectCancelAllWhileProc_Prepare,
GenericNetworkDisconnectCancelAllWhileProc_Start,
GenericNetworkDisconnectCancelAllWhileProc_Pause,
GenericNetworkDisconnectCancelAllWhileProc_Resume,
GenericNetworkDisconnectCancelAllWhileProc_Stop,
GenericNetworkDisconnectCancelAllWhileProc_SetPlaybackRange,
GenericNetworkDisconnectCancelAllWhileProtocolRollover,
GenericOpenPlayMultiplePauseResumeUntilEOSTest = 1112,
GenericOpenPlayMultipleSeekUntilEOSTest,
GenericOpenPlayStop_SleepAddDataSource = 1114,
GenericOpenPlayStop_SleepInit,
GenericOpenPlayStop_SleepAddDataSinkVideo,
GenericOpenPlayStop_SleepAddDataSinkAudio,
GenericOpenPlayStop_SleepPrepare,
GenericOpenPlayStop_SleepGetMetaDataValueList,
GenericOpenPlayStop_SleepStop,
GenericOpenPlayPauseResumeSeekStopProfiling = 1125,
GenericOpenPlayPauseRepositionResumeUntilEOSTest,
GenericOpenPlayPauseRepositionResumeNetworkDisconnectCancelAllTest,
GenericOpenSetPlaybackRangeStartPlayStopTest,
GenericOpenPlayRepositionToEndTest,
GenericPVMFErrorCorruptReNotified,
GenericOpenPlayPauseGetMetaDataUntilEOSTest,
GenericOpenGetMetaDataPicTest,//1132
//1133-1149 available.
//BEGIN JANUS CPM TESTS
CleanDrmData_JanusCPMTest = 1150,
LoadLicense_JanusCPMTest,//1151
OpenPlayStop_JanusCPMTest, //1152
PlayStopPlayStop_JanusCPMTest,//1153
QueryEngine_JanusCPMTest,//1154
StartupMeasurement_JanusCPMTest, //1155
//Janus DLA tests
DLA_CleanDrmData_JanusCPMTest,//1156
DLA_OpenPlayStop_JanusCPMTest,//1157
DLA_LicenseCapture_JanusCPMTest,//1158
DLA_CancelAcquireLicense_JanusCPMTest,//1159
//Janus streaming tests.
DLA_StreamingOpenPlayUntilEOST_JanusCPMTest,//1160
DLA_StreamingOpenPlayPausePlayUntilEOS_JanusCPMTest,//1161
DLA_StreamingOpenPlaySeekPlayUntilEOS_JanusCPMTest,//1162
DLA_StreamingMultiplePlayUntilEOS_JanusCPMTest,//1163
DLA_StreamingProtocolRollOverTest_JanusCPMTest,//1164
DLA_StreamingProtocolRollOverTestWithUnknownURLType_JanusCPMTest,//1165
DLA_StreamingCancelAcquireLicense_JanusCPMTest,//1166
//Janus PDL tests
DLA_PDL_OpenPlayUntilEOS_JanusCPMTest,//1167
//this range RESERVED for future Janus tests.
FirstDLAStreamingTest = 1200, //placeholder
//note these are all Janus CPM tests
DLA_StreamingCancelAll_AddDataSource = 1201,
DLA_StreamingCancelAll_Init,
DLA_StreamingCancelAll_LicenseAcquired,
DLA_StreamingCancelAll_AddDataSinkVideo,
DLA_StreamingCancelAll_AddDataSinkAudio,
DLA_StreamingCancelAll_Prepare,
DLA_StreamingCancelAll_Start,
DLA_StreamingCancelAll_Pause,
DLA_StreamingCancelAll_Resume,
DLA_StreamingCancelAll_Stop,
DLA_StreamingCancelAll_SetPlaybackRange,
DLA_StreamingCancelAllWhileProc_AddDataSource = 1212,
DLA_StreamingCancelAllWhileProc_Init,
DLA_StreamingCancelAllWhileProc_LicenseAcquired,
DLA_StreamingCancelAllWhileProc_AddDataSinkVideo,
DLA_StreamingCancelAllWhileProc_AddDataSinkAudio,
DLA_StreamingCancelAllWhileProc_Prepare,
DLA_StreamingCancelAllWhileProc_Start,
DLA_StreamingCancelAllWhileProc_Pause,
DLA_StreamingCancelAllWhileProc_Resume,
DLA_StreamingCancelAllWhileProc_Stop,
DLA_StreamingCancelAllWhileProc_SetPlaybackRange,
DLA_StreamingNetworkDisconnect_AddDataSource = 1223,
DLA_StreamingNetworkDisconnect_Init,
DLA_StreamingNetworkDisconnect_LicenseAcquired,
DLA_StreamingNetworkDisconnect_AddDataSinkVideo,
DLA_StreamingNetworkDisconnect_AddDataSinkAudio,
DLA_StreamingNetworkDisconnect_Prepare,
DLA_StreamingNetworkDisconnect_Start,
DLA_StreamingNetworkDisconnect_Pause,
DLA_StreamingNetworkDisconnect_Resume,
DLA_StreamingNetworkDisconnect_Stop,
DLA_StreamingNetworkDisconnect_SetPlaybackRange,
DLA_StreamingNetworkDisconnectWhileProc_AddDataSource = 1234,
DLA_StreamingNetworkDisconnectWhileProc_Init,
DLA_StreamingNetworkDisconnectWhileProc_LicenseAcquired,
DLA_StreamingNetworkDisconnectWhileProc_AddDataSinkVideo,
DLA_StreamingNetworkDisconnectWhileProc_AddDataSinkAudio,
DLA_StreamingNetworkDisconnectWhileProc_Prepare,
DLA_StreamingNetworkDisconnectWhileProc_Start,
DLA_StreamingNetworkDisconnectWhileProc_Pause,
DLA_StreamingNetworkDisconnectWhileProc_Resume,
DLA_StreamingNetworkDisconnectWhileProc_Stop,
DLA_StreamingNetworkDisconnectWhileProc_SetPlaybackRange,
DLA_StreamingNetworkDisconnectReconnect_AddDataSource = 1245,
DLA_StreamingNetworkDisconnectReconnect_Init,
DLA_StreamingNetworkDisconnectReconnect_LicenseAcquired,
DLA_StreamingNetworkDisconnectReconnect_AddDataSinkVideo,
DLA_StreamingNetworkDisconnectReconnect_AddDataSinkAudio,
DLA_StreamingNetworkDisconnectReconnect_Prepare,
DLA_StreamingNetworkDisconnectReconnect_Start,
DLA_StreamingNetworkDisconnectReconnect_Pause,
DLA_StreamingNetworkDisconnectReconnect_Resume,
DLA_StreamingNetworkDisconnectReconnect_Stop,
DLA_StreamingNetworkDisconnectReconnect_SetPlaybackRange,
DLA_StreamingNetworkDisconnectReconnectWhileProc_AddDataSource = 1256,
DLA_StreamingNetworkDisconnectReconnectWhileProc_Init,
DLA_StreamingNetworkDisconnectReconnectWhileProc_LicenseAcquired,
DLA_StreamingNetworkDisconnectReconnectWhileProc_AddDataSinkVideo,
DLA_StreamingNetworkDisconnectReconnectWhileProc_AddDataSinkAudio,
DLA_StreamingNetworkDisconnectReconnectWhileProc_Prepare,
DLA_StreamingNetworkDisconnectReconnectWhileProc_Start,
DLA_StreamingNetworkDisconnectReconnectWhileProc_Pause,
DLA_StreamingNetworkDisconnectReconnectWhileProc_Resume,
DLA_StreamingNetworkDisconnectReconnectWhileProc_Stop,
DLA_StreamingNetworkDisconnectReconnectWhileProc_SetPlaybackRange,
DLA_StreamingNetworkDisconnectCancelAll_AddDataSource = 1267,
DLA_StreamingNetworkDisconnectCancelAll_Init,
DLA_StreamingNetworkDisconnectCancelAll_LicenseAcquired,
DLA_StreamingNetworkDisconnectCancelAll_AddDataSinkVideo,
DLA_StreamingNetworkDisconnectCancelAll_AddDataSinkAudio,
DLA_StreamingNetworkDisconnectCancelAll_Prepare,
DLA_StreamingNetworkDisconnectCancelAll_Start,
DLA_StreamingNetworkDisconnectCancelAll_Pause,
DLA_StreamingNetworkDisconnectCancelAll_Resume,
DLA_StreamingNetworkDisconnectCancelAll_Stop,
DLA_StreamingNetworkDisconnectCancelAll_SetPlaybackRange,
DLA_StreamingNetworkDisconnectCancelAllWhileProc_AddDataSource = 1278,
DLA_StreamingNetworkDisconnectCancelAllWhileProc_Init,
DLA_StreamingNetworkDisconnectCancelAllWhileProc_LicenseAcquired,
DLA_StreamingNetworkDisconnectCancelAllWhileProc_AddDataSinkVideo,
DLA_StreamingNetworkDisconnectCancelAllWhileProc_AddDataSinkAudio,
DLA_StreamingNetworkDisconnectCancelAllWhileProc_Prepare,
DLA_StreamingNetworkDisconnectCancelAllWhileProc_Start,
DLA_StreamingNetworkDisconnectCancelAllWhileProc_Pause,
DLA_StreamingNetworkDisconnectCancelAllWhileProc_Resume,
DLA_StreamingNetworkDisconnectCancelAllWhileProc_Stop,
DLA_StreamingNetworkDisconnectCancelAllWhileProc_SetPlaybackRange,
DLA_StreamingOpenPlayMultiplePauseResumeUntilEOSTest = 1289,
DLA_StreamingOpenPlayMultipleSeekUntilEOSTest,
DLA_StreamingOpenPlayStop_SleepAddDataSource = 1291,
DLA_StreamingOpenPlayStop_SleepInit,
DLA_StreamingOpenPlayStop_SleepLicenseAcquired,
DLA_StreamingOpenPlayStop_SleepAddDataSinkVideo,
DLA_StreamingOpenPlayStop_SleepAddDataSinkAudio,
DLA_StreamingOpenPlayStop_SleepPrepare,
DLA_StreamingOpenPlayStop_SleepStop = 1301,
//END JANUS CPM TESTS
GenericOpenPlaySeekBeyondClipDurationTest = 1302,
//tests various modes of track selection
//refer to test_pv_player_engine_testset_apptrackselection.h
//for definition of modes
ApplicationInvolvedTrackSelectionTestDefault = 1303,
ApplicationInvolvedTrackSelectionTestPassthru = 1304,
ApplicationInvolvedTrackSelectionTestAudioOnly = 1305,
ApplicationInvolvedTrackSelectionTestVideoOnly = 1306,
ApplicationInvolvedTrackSelectionTestTextOnly = 1307,
ApplicationInvolvedTrackSelectionTestNoTracks = 1308,
//Metadata Query tests
DLA_QueryEngine_JupiterCPMTest_v2_WMA = 1400,
DLA_QueryEngine_JupiterCPMTest_v24_WMA,//1401
DLA_QueryEngine_JupiterCPMTest_v4_Enveloped_ASF,//1402
DLA_QueryEngine_JupiterCPMTest_v4_Enveloped_MP4,//1403
DLA_QueryEngine_JupiterCPMTest_v4_Enveloped_Image,//1404
//Enveloped image tests
DLA_EnvelopeRead_JupiterCPMTest_v4_Enveloped_Image,//1405
//Multi-media format tests
DLA_OpenPlayStop_JupiterCPMTest_v2_WMA,//1406
DLA_OpenPlayStop_JupiterCPMTest_v2_WMV,//1407
DLA_OpenPlayStop_JupiterCPMTest_v24_WMA,//1408
DLA_OpenPlayStop_JupiterCPMTest_v24_WMV,//1409
DLA_OpenPlayStop_JupiterCPMTest_v4_WMA,//1410
DLA_OpenPlayStop_JupiterCPMTest_v4_WMV,//1411
DLA_OpenPlayStop_JupiterCPMTest_v4_AAC,//1412
DLA_OpenPlayStop_JupiterCPMTest_v4_H264,//1413
DLA_OpenPlayStop_JupiterCPMTest_v4_Enveloped_ASF,//1414
DLA_OpenPlayStop_JupiterCPMTest_v4_Enveloped_MP4,//1415
DLA_OpenPlayStop_JupiterCPMTest_unprotected_H264,//1416
DLA_OpenPlayStop_JupiterCPMTest_unprotected_AAC,//1417
//Special license protocol sequence tests
DLA_OpenPlayStop_JupiterCPMTest_redirect,//1418
DLA_OpenPlayStop_JupiterCPMTest_v24_WMA_fallback,//1419
DLA_OpenPlayStop_JupiterCPMTest_v4_WMA_ringtone,//1420
DLA_OpenPlayStop_JupiterCPMTest_v4_WMA_domain,//1421
DLA_OpenPlayStop_JupiterCPMTest_v4_WMA_domain_renew,//1422
DLA_OpenPlayStop_JupiterCPMTest_v4_WMA_domain_offline,//1423
DLA_OpenPlayStop_JupiterCPMTest_v4_WMA_domain_history,//1424
//Jupiter utility tests
DLA_JoinDomain_JupiterCPMTest,//1425
DLA_LeaveDomain_JupiterCPMTest,//1426
DLA_DeleteLicense_JupiterCPMTest_v2_Content,//1427
DLA_DeleteLicense_JupiterCPMTest_v24_Content,//1428
DLA_MeteringByCert_JupiterCPMTest,//1429
DLA_MeteringByMID_JupiterCPMTest,//1430
DLA_MeteringAll_JupiterCPMTest,//1431
DLA_LicenseUpdateAll_JupiterCPMTest,//1432
DLA_LicenseUpdateExpired_JupiterCPMTest,//1433
//Jupiter CancelAcquireLicense tests
DLA_CancelAcquireLicense_JupiterCPMTest_v4_Enveloped_Image,//1434
DLA_CancelAcquireLicense_JupiterCPMTest_v2_Content,//1435
DLA_CancelAcquireLicense_JupiterCPMTest_v24_Content,//1436
DLA_CancelAcquireLicense_JupiterCPMTest_v4_Enveloped_MP4,//1437
//Jupiter streaming tests.
DLA_StreamingOpenPlayUntilEOST_JupiterCPMTest,//1438
DLA_StreamingOpenPlayPausePlayUntilEOS_JupiterCPMTest,//1439
DLA_StreamingOpenPlaySeekPlayUntilEOS_JupiterCPMTest,//1440
DLA_StreamingMultiplePlayUntilEOS_JupiterCPMTest,//1441
DLA_StreamingCancelAcquireLicense_JupiterCPMTest,//1442
DLA_StreamingProtocolRollOverTest_JupiterCPMTest,//1443
DLA_StreamingProtocolRollOverTestWithUnknownURLType_JupiterCPMTest,//1444
//RESERVED FOR FUTURE JUPITER CPM TESTS.
LastJupiterCPMTest = 1599,//placeholder
//End JUPITER CPM TESTS.
/*
* Note: Starting PVR tests from 1600 since the number of tests exceed the range
* from 895 and 900 (the earlier location of the tests)
*/
/*
* =========== Basic PVR tests ===========
*/
/*
* 1600: Play->pause->resume->stop test
* Description: Self-explanatory
*/
/**
PVR Memory Live Buffer tests start at 1600
*/
PVR_MLB_StreamingOpenPlayLivePausePlayStopTest = 1600,//1600
PVR_MLB_StreamingOpenPlayLivePausePlaySeekStopTest,//1601
PVR_MLB_StreamingOpenPlayLiveBufferBoundaryCheckTest,//1602
/*
* 1601: Reposition after a play pause
* Description: See TC 1611
*/
/*
* 1602: Check live buffer boundary
* Description: To maintain TC numbers, this test case
* does a play followed by a stop.
*/
/*
* =========== Live pause tests ===========
*/
/*
* 1603: Quick successive pause/resume
* Description: This test case will call pause/resume in a quick and
* repetitive sequence to test quick successive pause/resume stress condition.
* Input: 1. repeat count
*/
PVR_MLB_StreamingOpenPlayMultipleLivePausePlayTest,//1603
/*
* 1604: Pause with random duration
* Description: This test case will call pause/resume repeatedly.
* Each pause has random duration in a range.
* Inputs: 1. repeat count.
* 2. pause duration range
*/
PVR_MLB_StreamingOpenPlayMultipleLivePauseRandomDurationPlayTest,//1604
/*
* 1605: Long pause
* Description: This test case will pause long period of time (> live buffer duration)
* Input: 1. pause duration
*/
PVR_MLB_StreamingOpenPlayLongLivePausePlayTest,//1605
/*
* 1606: Stop during live pause
* Description: This test case stop the session during live pause.
* Then it starts the same session again.
*/
PVR_MLB_StreamingOpenPlayLivePauseStopTest,//1606
/*
* =========== Random position tests ===========
*/
/*
* 1607: Jump to live after pause
* Description: This test case jumps to live session (not buffer) after a pause.
* The above step is repeated several times, after pausing for a random duration.
* Inputs: 1. Repeat count
* 2. Pause duration range
*/
PVR_MLB_StreamingOpenPauseJumpToLiveStopTest, //1607
/*
* 1608: Jump to live after pause/resume
* Description: This test case pauses a live session for a random duration, resumes
* a for random duration that is less than the pause duration, and then
* jumps to live. This is repeated several times.
* Inputs: 1. Repeat count
* 2. Pause duration range
* 3. Resume duration range
*/
PVR_MLB_StreamingOpenPauseResumeJumpToLiveStopTest, //1608
/*
* 1609: Stop during playing back from live buffer
* Description: This test case pauses a live session for a random duration, resumes
* and then stops the session while playing from the live buffer. The same
* session is started after the stop.
*/
PVR_MLB_StreamingOpenPauseResumeStopTest, //1609
/*
* 1610: RTSP URL test
* Description: This test case uses an RTSP URL as the input for the streaming session.
* Both live and VOD cases are handled.
*/
PVR_MLB_StreamingRTSPUrlPauseResumeStopTest, //1610
/*
* 1611: PVR Repositioning test
* Description: This test case does a sequence of repositioning requests within the live buffer.
* The followed sequence is: start, pause, resume, repositioning sequence, stop.
The repos. sequence consists of 6 repositioning requests back and forward.
*/
PVR_MLB_StreamingPauseResumeRepositionStopTest, //1611
/*
* 1612: PVR Repositioning test
* Description: This test case does a sequence of repositioning requests within the live buffer.
* The followed sequence is: start, pause, repositioning, resume. This sequence is
done six times, followed by a stop.
*/
PVR_MLB_StreamingPauseRepositionResumeStopTest, //1612
/*
* 1613: RTSP END_OF_STREAM test for memory live buffer.
* Description: This test is design to test the case where and RTSP END_OF_STREAM arrives
* during a live pause. Total playback time must equal the cumulative playlist clip
* duration.
* Input:
*/
PVR_MLB_StreamingOpenPlayLivePauseWaitForRTSPEOSResumeTest = 1613,//1613
/*
* 1614: PVR Playlist switch with a full live buffer after JTL
* Description: This test case makes a live pause it resumes once the live buffer gets full, and makes
* a JTL followed by a channel switch, the channel switch time is measured.
*/
PVR_MLB_StreamingOpenPauseJmpToLiveChannelSwitchTest, //1614
/*
* 1615 PVR Bitrate estimation test
* Description: Test case for mismatch between advertised and real bitrate,
* the root of the problem with higher-than-advertised bitrates is that it
* may cause overwrites in the LiveBuffer, which is then reflected in quality artifacts.
*
* PLEASE USE A SDP FILE THAT ANOUNCES A SMALLER BITRATE THAN THE REAL ONE
*/
PVR_MLB_StreamingBitrateEstimationTest = 1615,
/**
PVR FileSystem Live Buffer tests start at 1630
*/
PVR_FSLB_StreamingOpenPlayLivePausePlayStopTest = 1630,//1630
PVR_FSLB_StreamingOpenPlayLivePausePlaySeekStopTest,//1631
PVR_FSLB_StreamingOpenPlayLiveBufferBoundaryCheckTest,//1632
/*
* =========== Live pause tests ===========
*/
/*
* 1633: Quick successive pause/resume
* Description: This test case will call pause/resume in a quick and
* repetitive sequence to test quick successive pause/resume stress condition.
* Input: 1. repeat count
*/
PVR_FSLB_StreamingOpenPlayMultipleLivePausePlayTest,//1633
/*
* 1634: Pause with random duration
* Description: This test case will call pause/resume repeatedly.
* Each pause has random duration in a range.
* Inputs: 1. repeat count.
* 2. pause duration range
*/
PVR_FSLB_StreamingOpenPlayMultipleLivePauseRandomDurationPlayTest,//1634
/*
* 1635: Long pause
* Description: This test case will pause long period of time (> live buffer duration)
* Input: 1. pause duration
*/
PVR_FSLB_StreamingOpenPlayLongLivePausePlayTest,//1635
/*
* 1636: Stop during live pause
* Description: This test case stop the session during live pause.
* Then it starts the same session again.
*/
PVR_FSLB_StreamingOpenPlayLivePauseStopTest,//1636
/*
* =========== Random position tests ===========
*/
/*
* 1637: Jump to live after pause
* Description: This test case jumps to live session (not buffer) after a pause.
* The above step is repeated several times, after pausing for a random duration.
* Inputs: 1. Repeat count
* 2. Pause duration range
*/
PVR_FSLB_StreamingOpenPauseJumpToLiveStopTest, //1637
/*
* 1638: Jump to live after pause/resume
* Description: This test case pauses a live session for a random duration, resumes
* a for random duration that is less than the pause duration, and then
* jumps to live. This is repeated several times.
* Inputs: 1. Repeat count
* 2. Pause duration range
* 3. Resume duration range
*/
PVR_FSLB_StreamingOpenPauseResumeJumpToLiveStopTest, //1638
/*
* 1639: Stop during playing back from live buffer
* Description: This test case pauses a live session for a random duration, resumes
* and then stops the session while playing from the live buffer. The same
* session is started after the stop.
*/
PVR_FSLB_StreamingOpenPauseResumeStopTest, //1639
/*
* 1640: RTSP URL test
* Description: This test case uses an RTSP URL as the input for the streaming session.
* Both live and VOD cases are handled.
*/
PVR_FSLB_StreamingRTSPUrlPauseResumeStopTest, //1640
/*
* 1641: PVR Repositioning test
* Description: This test case does a sequence of repositioning requests within the live buffer.
* The followed sequence is: start, pause, resume, repositioning sequence, stop.
The repos. sequence consists of 6 repositioning requests back and forward.
*/
PVR_FSLB_StreamingPauseResumeRepositionStopTest, //1641
/*
* 1642: PVR Repositioning test
* Description: This test case does a sequence of repositioning requests within the live buffer.
* The followed sequence is: start, pause, repositioning, resume. This sequence is
done six times, followed by a stop.
*/
PVR_FSLB_StreamingPauseRepositionResumeStopTest, //1642
/*
* 1643: RTSP END_OF_STREAM test for file system live buffer.
* Description: Same as 1643.
* Input:
*/
PVR_FSLB_StreamingOpenPlayLivePauseWaitForRTSPEOSResumeTest, //1643
/*
* 1644: PVR Playlist switch with a full live buffer after JTL
* Description: This test case makes a live pause it resumes once the live buffer gets full, and makes
* a JTL followed by a channel switch, the channel switch time is measured.
*/
PVR_FSLB_StreamingOpenPauseJmpToLiveChannelSwitchTest, //1644
/**
PVR local file playback tests start at 1660
*/
PVR_FILEPLAYBACK_OpenPlayUntilEOFTest = 1660,// 1660
/*
* 1661 PVR Local Playback Open-Play-Reposition-Play-Stop
* Description: This test case plays a local pvr file for 10 seconds, then
* it repositions to 50, 75, 40, 0, 60 and 95% of the local file
* and then it stops playback.
*
*/
PVR_FILEPLAYBACK_OpenPlayRepositionPlayStopTest, // 1661
/*
* 1662 PVR Local Playback Open-Play-Pause-Reposition
* Description: This test case plays a local pvr file for 10 seconds, then pauses playback
* it repositions to 50, 75, 40, 0, 60 and 95% of the local file
* and then it stops playback.
*
*/
PVR_FILEPLAYBACK_OpenPlayPauseRepositionTest, // 1662
/*
* 1663 PVR Local Playback Retrieved duration is correct
* Description: This test case plays a local pvr file for 3 seconds and
* verifies if the retrieved duration is correct
*
*/
PVR_FILEPLAYBACK_OpenPlayVerifyDurationTest, // 1663
/*===========================PVR Recorder Test cases============================*/
/*
* 1680 PVR_Recorder_RecordOnStartUp
* Description: - Recording will start from NPT zero until playback is stopped.
* - Pass criteria will be: No playback or recording errors.
*/
PVR_Recorder_RecordOnStartUp = 1680,
/*
* 1681 PVR_Recorder_RecordOnDemand
* Description: - Recording will start from an arbitrary NPT different than zero to a point before playback is stopped.
* - Pass criteria will be: No playback or recording errors.
*/
PVR_Recorder_RecordOnDemand,
/*
* 1682 PVR_Recorder_MultiplePause
* Description: - Recording will start from NPT zero.
* - Multiple pause/resume resume will be performed
* - Pass criteria will be: No playback or recording errors.
*/
PVR_Recorder_MultiplePause,
/*
* 1683 PVR_Recorder_MultiplePauseJTL
* Description: - Recording will start from NPT zero.
* - Multiple pause/resume will be performed
* - After last pause JTL
* - Pass criteria will be: No playback or recording errors.
*/
PVR_Recorder_MultiplePauseJTL,
/*
* 1684 PVR_Recorder_MultipleRepos
* Description: - Recording will start from NPT zero.
* - Multiple Reposition/resume will be performed
* - Pass criteria will be: No playback or recording errors.
*/
PVR_Recorder_MultipleRepos,
/*
* 1685 PVR_Recorder_MultipleRecord
* Description: - Recording will start from an arbitrary NPT different than zero.
* - Multiple StartRecord/StopRecord will be performed
* - Pass criteria will be: No playback or recording errors
*/
PVR_Recorder_MultipleRecord,
LastInteractiveTest = 2000, // placeholder
BeyondLastTest = 9999 //placeholder
};
// From test_case
virtual void test();
// From pvplayer_async_test_observer
void TestCompleted(test_case&);
//Validating file format specific player test cases
bool ValidateTestCase(int& aCurrentTestCaseNumber);
void SetupLoggerScheduler();
private:
const char *iFileName;
PVMFFormatType iFileType;
int iCurrentTestNumber;
pvplayer_async_test_base* iCurrentTest;
int32 iFirstTest;
int32 iLastTest;
bool iCompressedVideoOutput;
bool iCompressedAudioOutput;
bool iFileInput;
bool iBCS;
//for proxy support
bool iProxyEnabled;
// For test results
int iTotalSuccess;
int iTotalError;
int iTotalFail;
// For logging
int32 iLogLevel;
int32 iLogNode;
int32 iLogFile;
int32 iLogMem;
// For memory statistics
uint32 iTotalAlloc;
uint32 iTotalBytes;
uint32 iAllocFails;
uint32 iNumAllocs;
//Flag for checking the file type
int32 iFileFormatType;
};
/**
* Factory class for project specific unit test cases
*/
class PVPlayerProjTestFactory
{
public:
/**
* Creates customer project test case object as specified by test case number. Default
* implementation returns NULL. Customer projects that wish to extend pvPlayer unit
* test to implement customer specific test cases should implement this function
*
* @param aTestCaseNumber - Unit test case number
* @param aTestParam - Parameters to the unit test case
* @return Newly created project specific test case object, or NULL if the test case
* number is not supported.
*/
virtual pvplayer_async_test_base* GetProjTest(uint aTestCaseNumber, PVPlayerAsyncTestParam aTestParam)
{
OSCL_UNUSED_ARG(aTestCaseNumber);
OSCL_UNUSED_ARG(aTestParam);
return NULL;
}
};
#endif