diff options
author | PacketVideo CM <engbuild@pv.com> | 2010-02-11 18:47:21 -0800 |
---|---|---|
committer | PacketVideo CM <engbuild@pv.com> | 2010-02-11 18:47:21 -0800 |
commit | 44eabfb68b715f97dcbba0c0d4993557519cd1f3 (patch) | |
tree | 4c14e3dd0d210fdea2e592b13b6345382a6ba93d /engines/player/test | |
parent | fd60d847cfb8a1f5913ff926a20d277e0139a5d2 (diff) | |
download | opencore-44eabfb68b715f97dcbba0c0d4993557519cd1f3.tar.gz |
RIO-7261: Gapless and playlist support for MP4
Diffstat (limited to 'engines/player/test')
3 files changed, 192 insertions, 4 deletions
diff --git a/engines/player/test/src/test_pv_player_engine.cpp b/engines/player/test/src/test_pv_player_engine.cpp index 06d71e833..f611b266f 100644 --- a/engines/player/test/src/test_pv_player_engine.cpp +++ b/engines/player/test/src/test_pv_player_engine.cpp @@ -3802,8 +3802,7 @@ void pvplayer_engine_test::test() iCurrentTest = new pvplayer_async_test_playlist_playback(testparam, false, false, 0, 0, false, false, false, false, GAPLESS_FORMAT_LAME_MP3); break; case GaplessValidateiTunesAACPlaylist: - fprintf(file, "GaplessValidateiTunesAACPlaylist not enabled\n"); - //@disabled iCurrentTest = new pvplayer_async_test_playlist_playback(testparam, false, false, 0, 0, false, false, false, false, GAPLESS_FORMAT_ITUNES_AAC); + iCurrentTest = new pvplayer_async_test_playlist_playback(testparam, false, false, 0, 0, false, false, false, false, GAPLESS_FORMAT_ITUNES_AAC); break; case CleanDrmData_JanusCPMTest: diff --git a/engines/player/test/src/test_pv_player_engine_testset_playlist.cpp b/engines/player/test/src/test_pv_player_engine_testset_playlist.cpp index bf09b3c9e..fe8f32624 100644 --- a/engines/player/test/src/test_pv_player_engine_testset_playlist.cpp +++ b/engines/player/test/src/test_pv_player_engine_testset_playlist.cpp @@ -1152,6 +1152,28 @@ void pvplayer_async_test_playlist_playback::Run() } break; + case STATE_ADDDATASINK_VIDEO: + { + iVideoSinkFileName = OUTPUTNAME_PREPEND_WSTRING; + iVideoSinkFileName += _STRLIT_WCHAR("test_playlist_"); + iVideoSinkFileName += iSinkFileNameSubString; + if (iCompressedVideo) + { + iVideoSinkFileName += _STRLIT_WCHAR("compressed_"); + } + iVideoSinkFileName += _STRLIT_WCHAR("_video.dat"); + + iMIOFileOutVideo = iMioFactory->CreateVideoOutput((OsclAny*) & iVideoSinkFileName, MEDIATYPE_VIDEO, iCompressedVideo); + iIONodeVideo = PVMediaOutputNodeFactory::CreateMediaOutputNode(iMIOFileOutVideo); + iDataSinkVideo = new PVPlayerDataSinkPVMFNode; + ((PVPlayerDataSinkPVMFNode*)iDataSinkVideo)->SetDataSinkNode(iIONodeVideo); + + fprintf(iTestMsgOutputFile, "Adding Videoo Sink...\n"); + OSCL_TRY(error, iCurrentCmdId = iPlayer->AddDataSink(*iDataSinkVideo, (OsclAny*) & iContextObject)); + OSCL_FIRST_CATCH_ANY(error, PVPATB_TEST_IS_TRUE(false); iState = STATE_CLEANUPANDCOMPLETE; RunIfNotReady()); + } + break; + case STATE_PREPARE: { fprintf(iTestMsgOutputFile, "Calling Prepare...\n"); @@ -1264,6 +1286,14 @@ void pvplayer_async_test_playlist_playback::Run() } break; + case STATE_REMOVEDATASINK_VIDEO: + { + fprintf(iTestMsgOutputFile, "Removing Video Sink...\n"); + OSCL_TRY(error, iCurrentCmdId = iPlayer->RemoveDataSink(*iDataSinkVideo, (OsclAny*) & iContextObject)); + OSCL_FIRST_CATCH_ANY(error, PVPATB_TEST_IS_TRUE(false); iState = STATE_CLEANUPANDCOMPLETE; RunIfNotReady()); + } + break; + case STATE_RESET: { fprintf(iTestMsgOutputFile, "Calling Reset...\n"); @@ -1294,9 +1324,18 @@ void pvplayer_async_test_playlist_playback::Run() delete iDataSinkAudio; iDataSinkAudio = NULL; + delete iDataSinkVideo; + iDataSinkVideo = NULL; + + PVMediaOutputNodeFactory::DeleteMediaOutputNode(iIONodeVideo); + iIONodeVideo = NULL; + PVMediaOutputNodeFactory::DeleteMediaOutputNode(iIONodeAudio); iIONodeAudio = NULL; + iMioFactory->DestroyVideoOutput(iMIOFileOutVideo); + iMIOFileOutVideo = NULL; + iMioFactory->DestroyAudioOutput(iMIOFileOutAudio); iMIOFileOutAudio = NULL; @@ -1503,6 +1542,29 @@ void pvplayer_async_test_playlist_playback::CommandCompleted(const PVCmdResponse if (PVMFSuccess == aResponse.GetCmdStatus()) { fprintf(iTestMsgOutputFile, "...Add Audio Sink Complete\n"); + if (iFileType != PVMF_MIME_MP3FF) + { + iState = STATE_ADDDATASINK_VIDEO; + } + else + { + iState = STATE_PREPARE; + } + RunIfNotReady(); + } + else + { + // AddDataSink failed + PVPATB_TEST_IS_TRUE(false); + iState = STATE_CLEANUPANDCOMPLETE; + RunIfNotReady(); + } + break; + + case STATE_ADDDATASINK_VIDEO: + if (PVMFSuccess == aResponse.GetCmdStatus()) + { + fprintf(iTestMsgOutputFile, "...Add Video Sink Complete\n"); iState = STATE_PREPARE; RunIfNotReady(); } @@ -1626,6 +1688,30 @@ void pvplayer_async_test_playlist_playback::CommandCompleted(const PVCmdResponse if (PVMFSuccess == aResponse.GetCmdStatus()) { fprintf(iTestMsgOutputFile, "...Remove Audio Sink Complete\n"); + + if (iFileType != PVMF_MIME_MP3FF) + { + iState = STATE_REMOVEDATASINK_VIDEO; + } + else + { + iState = STATE_RESET; + } + RunIfNotReady(); + } + else + { + // RemoveDataSink failed + PVPATB_TEST_IS_TRUE(false); + iState = STATE_RESET; + RunIfNotReady(); + } + break; + + case STATE_REMOVEDATASINK_VIDEO: + if (PVMFSuccess == aResponse.GetCmdStatus()) + { + fprintf(iTestMsgOutputFile, "...Remove Video Sink Complete\n"); iState = STATE_RESET; RunIfNotReady(); } @@ -1844,9 +1930,12 @@ void pvplayer_async_test_playlist_playback::HandleInformationalEvent(const PVAsy case PVMFInfoClipCorrupted: { iCorruptedClipsIdentified++; + + uint32 *clipId = (uint32*) aEvent.GetLocalBuffer(); + fprintf(iTestMsgOutputFile, "***** PVMFInfoClipCorrupted received for clip index %d\n", *clipId); + if (iNumInvalidClips > 0) { - uint32 *clipId = (uint32*) aEvent.GetLocalBuffer(); // index for first corrupted clip uint32 startIndex = iInvalidClipAtIndex; @@ -1862,7 +1951,6 @@ void pvplayer_async_test_playlist_playback::HandleInformationalEvent(const PVAsy { PVPATB_TEST_IS_TRUE(false); } - fprintf(iTestMsgOutputFile, "***** PVMFInfoClipCorrupted received for clip index %d\n", *clipId); bool added = AddEventToSequence(iResultingEvents, PL_CLIP_CORRUPT_EVENT, *clipId, PL_GENERATE_TIMESTAMP, 0, iTestMsgOutputFile); if (!added) @@ -2296,6 +2384,29 @@ void pvplayer_async_test_playlist_seek_skip::Run() } break; + case STATE_ADDDATASINK_VIDEO: + { + OSCL_wHeapString<OsclMemAllocator> sinkfilename; + sinkfilename = OUTPUTNAME_PREPEND_WSTRING; + sinkfilename += _STRLIT_WCHAR("test_playlist_playback"); + sinkfilename += iSinkFileNameSubString; + if (iCompressedVideo) + { + sinkfilename += _STRLIT_WCHAR("compressed_"); + } + sinkfilename += _STRLIT_WCHAR("_video.dat"); + + iMIOFileOutVideo = iMioFactory->CreateVideoOutput((OsclAny*) & sinkfilename, MEDIATYPE_VIDEO, iCompressedVideo); + iIONodeVideo = PVMediaOutputNodeFactory::CreateMediaOutputNode(iMIOFileOutVideo); + iDataSinkVideo = new PVPlayerDataSinkPVMFNode; + ((PVPlayerDataSinkPVMFNode*)iDataSinkVideo)->SetDataSinkNode(iIONodeVideo); + + fprintf(iTestMsgOutputFile, "Adding Video Sink...\n"); + OSCL_TRY(error, iCurrentCmdId = iPlayer->AddDataSink(*iDataSinkVideo, (OsclAny*) & iContextObject)); + OSCL_FIRST_CATCH_ANY(error, PVPATB_TEST_IS_TRUE(false); iState = STATE_CLEANUPANDCOMPLETE; RunIfNotReady()); + } + break; + case STATE_PREPARE: { fprintf(iTestMsgOutputFile, "Calling Prepare...\n"); @@ -2475,6 +2586,14 @@ void pvplayer_async_test_playlist_seek_skip::Run() } break; + case STATE_REMOVEDATASINK_VIDEO: + { + fprintf(iTestMsgOutputFile, "Removing Video Sink...\n"); + OSCL_TRY(error, iCurrentCmdId = iPlayer->RemoveDataSink(*iDataSinkVideo, (OsclAny*) & iContextObject)); + OSCL_FIRST_CATCH_ANY(error, PVPATB_TEST_IS_TRUE(false); iState = STATE_CLEANUPANDCOMPLETE; RunIfNotReady()); + } + break; + case STATE_RESET: { fprintf(iTestMsgOutputFile, "Calling Reset...\n"); @@ -2505,12 +2624,21 @@ void pvplayer_async_test_playlist_seek_skip::Run() delete iDataSinkAudio; iDataSinkAudio = NULL; + delete iDataSinkVideo; + iDataSinkVideo = NULL; + PVMediaOutputNodeFactory::DeleteMediaOutputNode(iIONodeAudio); iIONodeAudio = NULL; + PVMediaOutputNodeFactory::DeleteMediaOutputNode(iIONodeVideo); + iIONodeVideo = NULL; + iMioFactory->DestroyAudioOutput(iMIOFileOutAudio); iMIOFileOutAudio = NULL; + iMioFactory->DestroyAudioOutput(iMIOFileOutVideo); + iMIOFileOutVideo = NULL; + ValidateEvents(); TestCompleted(); @@ -2602,6 +2730,30 @@ void pvplayer_async_test_playlist_seek_skip::CommandCompleted(const PVCmdRespons if (PVMFSuccess == aResponse.GetCmdStatus()) { fprintf(iTestMsgOutputFile, "...Add Audio Sink Complete\n"); + + if (iFileType != PVMF_MIME_MP3FF) + { + iState = STATE_ADDDATASINK_VIDEO; + } + else + { + iState = STATE_PREPARE; + } + RunIfNotReady(); + } + else + { + // AddDataSink failed + PVPATB_TEST_IS_TRUE(false); + iState = STATE_CLEANUPANDCOMPLETE; + RunIfNotReady(); + } + break; + + case STATE_ADDDATASINK_VIDEO: + if (PVMFSuccess == aResponse.GetCmdStatus()) + { + fprintf(iTestMsgOutputFile, "...Add Video Sink Complete\n"); iState = STATE_PREPARE; RunIfNotReady(); } @@ -2810,6 +2962,29 @@ void pvplayer_async_test_playlist_seek_skip::CommandCompleted(const PVCmdRespons if (PVMFSuccess == aResponse.GetCmdStatus()) { fprintf(iTestMsgOutputFile, "...Remove Audio Sink Complete\n"); + if (iFileType != PVMF_MIME_MP3FF) + { + iState = STATE_REMOVEDATASINK_VIDEO; + } + else + { + iState = STATE_RESET; + } + RunIfNotReady(); + } + else + { + // RemoveDataSink failed + PVPATB_TEST_IS_TRUE(false); + iState = STATE_RESET; + RunIfNotReady(); + } + break; + + case STATE_REMOVEDATASINK_VIDEO: + if (PVMFSuccess == aResponse.GetCmdStatus()) + { + fprintf(iTestMsgOutputFile, "...Remove Video Sink Complete\n"); iState = STATE_RESET; RunIfNotReady(); } diff --git a/engines/player/test/src/test_pv_player_engine_testset_playlist.h b/engines/player/test/src/test_pv_player_engine_testset_playlist.h index 4a0871c05..7113d2aca 100644 --- a/engines/player/test/src/test_pv_player_engine_testset_playlist.h +++ b/engines/player/test/src/test_pv_player_engine_testset_playlist.h @@ -204,6 +204,9 @@ class pvplayer_async_test_playlist_playback : public pvplayer_async_test_base , iDataSinkAudio(NULL) , iMIOFileOutAudio(NULL) , iIONodeAudio(NULL) + , iDataSinkVideo(NULL) + , iMIOFileOutVideo(NULL) + , iIONodeVideo(NULL) , iCurrentCmdId(0) , iSourceContextData(NULL) , iNumEOSReceived(0) @@ -481,6 +484,10 @@ class pvplayer_async_test_playlist_playback : public pvplayer_async_test_base PvmiMIOControl* iMIOFileOutAudio; PVMFNodeInterface* iIONodeAudio; + PVPlayerDataSink* iDataSinkVideo; + PvmiMIOControl* iMIOFileOutVideo; + PVMFNodeInterface* iIONodeVideo; + PVCommandId iCurrentCmdId; PVMFSourceContextData* iSourceContextData; uint32 iNumEOSReceived; @@ -537,6 +544,7 @@ class pvplayer_async_test_playlist_playback : public pvplayer_async_test_base uint32 iReferencePCMFileSize; GaplessMetadataFormat iGaplessFormat; OSCL_wHeapString<OsclMemAllocator> iAudioSinkFileName; + OSCL_wHeapString<OsclMemAllocator> iVideoSinkFileName; }; @@ -586,6 +594,9 @@ class pvplayer_async_test_playlist_seek_skip : public pvplayer_async_test_base , iDataSinkAudio(NULL) , iIONodeAudio(NULL) , iMIOFileOutAudio(NULL) + , iDataSinkVideo(NULL) + , iIONodeVideo(NULL) + , iMIOFileOutVideo(NULL) , iCurrentCmdId(0) , iSourceContextData(NULL) , iNumEOSReceived(0) @@ -1019,6 +1030,9 @@ class pvplayer_async_test_playlist_seek_skip : public pvplayer_async_test_base PVPlayerDataSink* iDataSinkAudio; PVMFNodeInterface* iIONodeAudio; PvmiMIOControl* iMIOFileOutAudio; + PVPlayerDataSink* iDataSinkVideo; + PVMFNodeInterface* iIONodeVideo; + PvmiMIOControl* iMIOFileOutVideo; PVCommandId iCurrentCmdId; PVMFSourceContextData* iSourceContextData; |