Android-x86
Fork
Donation

  • R/O
  • HTTP
  • SSH
  • HTTPS

external-opencore: 提交

external/opencore


Commit MetaInfo

修订版d8246c8d2622e0b65335b56c4a6783307d95b48a (tree)
时间2010-04-16 05:34:32
作者PacketVideo CM <engbuild@pv.c...>
CommiterPacketVideo CM

Log Message

RIO-8909: Re-submit ASF source node playlist support after fixing silent audio sample handling.

Change-Id: I7b9674c58162a91a3763284b713749c82dc3dffb

更改概述

差异

--- a/engines/2way/src/pv_2way_sdkinfo.h
+++ b/engines/2way/src/pv_2way_sdkinfo.h
@@ -21,7 +21,7 @@
2121 // This header file is automatically generated at build-time
2222 // *** OFFICIAL RELEASE INFO -- Will not auto update
2323
24-#define PV2WAY_ENGINE_SDKINFO_LABEL "1363430"
24+#define PV2WAY_ENGINE_SDKINFO_LABEL "1364347"
2525 #define PV2WAY_ENGINE_SDKINFO_DATE 0x20100407
2626
2727 #endif //PV_2WAY_SDKINFO_H_INCLUDED
--- a/engines/author/src/pv_author_sdkinfo.h
+++ b/engines/author/src/pv_author_sdkinfo.h
@@ -21,7 +21,7 @@
2121 // This header file is automatically generated at build-time
2222 // *** OFFICIAL RELEASE INFO -- Will not auto update
2323
24-#define PVAUTHOR_ENGINE_SDKINFO_LABEL "1363430"
24+#define PVAUTHOR_ENGINE_SDKINFO_LABEL "1364347"
2525 #define PVAUTHOR_ENGINE_SDKINFO_DATE 0x20100407
2626
2727 #endif //PV_AUTHOR_SDKINFO_H_INCLUDED
--- a/engines/player/src/pv_player_engine.cpp
+++ b/engines/player/src/pv_player_engine.cpp
@@ -16583,44 +16583,28 @@ PVMFStatus PVPlayerEngine::DoCancelGetLicense(PVMFCommandId aCmdId, PVPlayerEngi
1658316583
1658416584 void PVPlayerEngine::IssueSourceNodeAudioSinkEvent(const PVMFAsyncEvent& aEvent)
1658516585 {
16586- bool retVal = false;
16587- int32 datapathIndex = -1;
16588- // Make sure there are no video tracks
16589- retVal = FindDatapathForTrackUsingMimeString(true, false, false, datapathIndex);
16590- if (retVal == false)
16591- {
16592- // Make sure there are no text tracks
16593- retVal = FindDatapathForTrackUsingMimeString(false, false, true, datapathIndex);
16594- if (retVal == false)
16595- {
16596- retVal = FindDatapathForTrackUsingMimeString(false, true, false, datapathIndex);
16597- if (retVal)
16598- {
16599- uint32 *data = (uint32*) aEvent.GetEventData();
16600- uint32 clipId = *(data + 1);
16601- uint8 localbuffer[8];
16602- oscl_memcpy(localbuffer, &clipId, sizeof(uint32));
16586+ uint32 *data = (uint32*) aEvent.GetEventData();
16587+ uint32 clipId = *(data + 1);
16588+ uint8 localbuffer[8];
16589+ oscl_memcpy(localbuffer, &clipId, sizeof(uint32));
1660316590
16604- int32 eventType = aEvent.GetEventType();
16591+ int32 eventType = aEvent.GetEventType();
1660516592
16606- if (eventType == PVMFInfoStartOfData)
16607- {
16608- if (iNumPVMFInfoStartOfDataPending == 0)
16609- {
16610- SendInformationalEvent(PVPlayerInfoClipPlaybackStarted, NULL, aEvent.GetEventData(), localbuffer, 8);
16611- }
16612- }
16613- else // aEvent == PVMFInfoEndOfData
16614- {
16615- SendInformationalEvent(PVPlayerInfoClipPlaybackEnded, NULL, aEvent.GetEventData(), localbuffer, 8);
16616- }
16617- if (clipId + 1 <= iDataSource->GetNumClips())
16618- {
16619- iSourceNodeInitIF->AudioSinkEvent(eventType, clipId);
16620- }
16621- }
16593+ if (eventType == PVMFInfoStartOfData)
16594+ {
16595+ if (iNumPVMFInfoStartOfDataPending == 0)
16596+ {
16597+ SendInformationalEvent(PVPlayerInfoClipPlaybackStarted, NULL, aEvent.GetEventData(), localbuffer, 8);
1662216598 }
1662316599 }
16600+ else // aEvent == PVMFInfoEndOfData
16601+ {
16602+ SendInformationalEvent(PVPlayerInfoClipPlaybackEnded, NULL, aEvent.GetEventData(), localbuffer, 8);
16603+ }
16604+ if (clipId + 1 <= iDataSource->GetNumClips())
16605+ {
16606+ iSourceNodeInitIF->AudioSinkEvent(eventType, clipId);
16607+ }
1662416608 }
1662516609
1662616610 OSCL_EXPORT_REF void
--- a/engines/player/src/pv_player_sdkinfo.h
+++ b/engines/player/src/pv_player_sdkinfo.h
@@ -21,7 +21,7 @@
2121 // This header file is automatically generated at build-time
2222 // *** OFFICIAL RELEASE INFO -- Will not auto update
2323
24-#define PVPLAYER_ENGINE_SDKINFO_LABEL "1363430"
24+#define PVPLAYER_ENGINE_SDKINFO_LABEL "1364347"
2525 #define PVPLAYER_ENGINE_SDKINFO_DATE 0x20100407
2626
2727 #endif //PV_PLAYER_SDKINFO_H_INCLUDED
--- a/engines/player/test/src/test_pv_player_engine_testset_playlist.cpp
+++ b/engines/player/test/src/test_pv_player_engine_testset_playlist.cpp
@@ -339,6 +339,13 @@ int32 CreatePlaylist(const char* aFileName, PVMFFormatType& aFileType, char**& a
339339 invalidFileName += DEFAULT_INVALID_MP4_PLAYLIST;
340340 defaultPlaylist = true;
341341 }
342+ else if (oscl_strstr(aFileName, ".wma") != NULL || oscl_strstr(aFileName, ".WMA") != NULL ||
343+ oscl_strstr(aFileName, ".asf") != NULL || oscl_strstr(aFileName, ".ASF") != NULL)
344+ {
345+ validFileName += DEFAULT_VALID_WMA_PLAYLIST;
346+ invalidFileName += DEFAULT_INVALID_WMA_PLAYLIST;
347+ defaultPlaylist = true;
348+ }
342349 else if (oscl_strstr(aFileName, ".txt") != NULL || oscl_strstr(aFileName, ".TXT") != NULL)
343350 {
344351 // using input text file from command line
--- a/engines/player/test/src/test_pv_player_engine_testset_playlist.h
+++ b/engines/player/test/src/test_pv_player_engine_testset_playlist.h
@@ -338,6 +338,15 @@ class pvplayer_async_test_playlist_playback : public pvplayer_async_test_base
338338 iAlternateMimeType = PVMF_MIME_MPEG4FF;
339339 }
340340 }
341+ else if (iFileType == PVMF_MIME_ASFFF)
342+ {
343+ iSinkFileNameSubString += _STRLIT_WCHAR("wma");
344+
345+ if (iInvalidMimeTypeTest)
346+ {
347+ iAlternateMimeType = PVMF_MIME_MP3FF;
348+ }
349+ }
341350 else //(iFileType == PVMF_MIME_MP4FF)
342351 {
343352 iSinkFileNameSubString += _STRLIT_WCHAR("mp4");
@@ -709,6 +718,10 @@ class pvplayer_async_test_playlist_seek_skip : public pvplayer_async_test_base
709718 {
710719 iSinkFileNameSubString += _STRLIT_WCHAR("mp3");
711720 }
721+ else if (iFileType == PVMF_MIME_ASFFF)
722+ {
723+ iSinkFileNameSubString += _STRLIT_WCHAR("wma");
724+ }
712725 else //(iFileType == PVMF_MIME_MP4FF)
713726 {
714727 iSinkFileNameSubString += _STRLIT_WCHAR("mp4");
@@ -1245,3 +1258,4 @@ class pvplayer_async_test_validate_gapless : public pvplayer_async_test_base
12451258
12461259
12471260 #endif //TEST_PV_PLAYER_ENGINE_TESTSET_PLAYLIST_H_INCLUDED
1261+
--- a/engines/player/test/src/test_pv_player_engine_testset_playlist_clipinfo.h
+++ b/engines/player/test/src/test_pv_player_engine_testset_playlist_clipinfo.h
@@ -43,9 +43,12 @@
4343
4444 #define DEFAULT_VALID_MP3_PLAYLIST "test_valid_mp3_playlist.txt"
4545 #define DEFAULT_VALID_MP4_PLAYLIST "test_valid_mp4_playlist.txt"
46+#define DEFAULT_VALID_WMA_PLAYLIST "test_valid_wma_playlist.txt"
4647 #define DEFAULT_INVALID_MP3_PLAYLIST "test_invalid_mp3_playlist.txt"
4748 #define DEFAULT_INVALID_MP4_PLAYLIST "test_invalid_mp4_playlist.txt"
49+#define DEFAULT_INVALID_WMA_PLAYLIST "test_invalid_wma_playlist.txt"
4850
4951 #define PLAYLIST_READ_BUFFER_SIZE 6 * 1024
5052
5153 #endif
54+
--- a/nodes/pvmp4ffparsernode/src/pvmf_mp4ffparser_node.cpp
+++ b/nodes/pvmp4ffparsernode/src/pvmf_mp4ffparser_node.cpp
@@ -5634,7 +5634,7 @@ void PVMFMP4FFParserNode::CleanupFileSource()
56345634 // delete file parser object, if any
56355635 if (clipInfo.iParserObj)
56365636 {
5637- ReleaseMP4FileParser(iClipInfoList.size() - 1);
5637+ ReleaseMP4FileParser(iClipInfoList.size() - 1, true);
56385638 }
56395639 // clear the vector element
56405640 iClipInfoList.pop_back();
@@ -8971,11 +8971,12 @@ PVMFStatus PVMFMP4FFParserNode::ConstructMP4FileParser(PVMFStatus* aStatus, int3
89718971 }
89728972
89738973
8974-PVMFStatus PVMFMP4FFParserNode::ReleaseMP4FileParser(int32 aClipIndex)
8974+PVMFStatus PVMFMP4FFParserNode::ReleaseMP4FileParser(int32 aClipIndex, bool cleanParserAtLastIndex)
89758975 {
89768976 PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLogger, PVLOGMSG_ERR, (0, "PVMFMP4FFParserNode::ReleaseMP4FileParser() In ClipIndex[%d]", aClipIndex));
89778977 PVMFStatus status = PVMFFailure;
8978- if (aClipIndex >= 0)
8978+ // don't clean up parser object if there is only one clip in the list, unless it is requested
8979+ if (aClipIndex >= 0 && (iNumClipsInPlayList > 1 || cleanParserAtLastIndex))
89798980 {
89808981 if (((uint32) aClipIndex == iClipInfoList[iClipInfoList.size() - 1].iClipInfo.GetClipIndex()) ||
89818982 iPlaylistExhausted)
--- a/nodes/pvmp4ffparsernode/src/pvmf_mp4ffparser_node.h
+++ b/nodes/pvmp4ffparsernode/src/pvmf_mp4ffparser_node.h
@@ -470,7 +470,7 @@ class PVMFMP4FFParserNode
470470
471471 // create parser objects for gapless
472472 PVMFStatus ConstructMP4FileParser(PVMFStatus* aStatus, int32 aClipIndex, PVMFCPMPluginAccessInterfaceFactory* aCPMFactory);
473- PVMFStatus ReleaseMP4FileParser(int32 aClipIndex);
473+ PVMFStatus ReleaseMP4FileParser(int32 aClipIndex, bool cleanParserAtLastIndex = false);
474474 PVMFStatus InitNextValidClipInPlaylist(PVMFStatus* aStatus = NULL, int32 aSkipToTrack = -1, PVMFDataStreamFactory* aDataStreamFactory = NULL);
475475 IMpeg4File* GetParserObjAtIndex(int32 aClipIndex = -1);
476476
Show on old repository browser