diff options
author | PacketVideo CM <engbuild@pv.com> | 2010-06-23 14:06:49 -0700 |
---|---|---|
committer | PacketVideo CM <engbuild@pv.com> | 2010-06-23 14:31:03 -0700 |
commit | ecd97784b8186ab136f2dd97fcf496ed2fd78f63 (patch) | |
tree | daaefa94381ec95ba5bf21c133ea381dfd2693f3 | |
parent | 9d4ca5aa6bde303f38828b5f6ef37b3ef59ed7e0 (diff) | |
download | opencore-ecd97784b8186ab136f2dd97fcf496ed2fd78f63.tar.gz |
RIO-9089: Fix for repositioning large offsets during MP4 PS
Change-Id: I024fc35e13276113ca7bcfa1874548596c93823c
6 files changed, 14 insertions, 13 deletions
diff --git a/engines/2way/src/pv_2way_sdkinfo.h b/engines/2way/src/pv_2way_sdkinfo.h index 149da9c7a..7c5338392 100644 --- a/engines/2way/src/pv_2way_sdkinfo.h +++ b/engines/2way/src/pv_2way_sdkinfo.h @@ -21,7 +21,7 @@ // This header file is automatically generated at build-time // *** OFFICIAL RELEASE INFO -- Will not auto update -#define PV2WAY_ENGINE_SDKINFO_LABEL "1495880" +#define PV2WAY_ENGINE_SDKINFO_LABEL "1495892" #define PV2WAY_ENGINE_SDKINFO_DATE 0x20100614 #endif //PV_2WAY_SDKINFO_H_INCLUDED diff --git a/engines/author/src/pv_author_sdkinfo.h b/engines/author/src/pv_author_sdkinfo.h index 10845e785..517f5c7d3 100644 --- a/engines/author/src/pv_author_sdkinfo.h +++ b/engines/author/src/pv_author_sdkinfo.h @@ -21,7 +21,7 @@ // This header file is automatically generated at build-time // *** OFFICIAL RELEASE INFO -- Will not auto update -#define PVAUTHOR_ENGINE_SDKINFO_LABEL "1495880" +#define PVAUTHOR_ENGINE_SDKINFO_LABEL "1495892" #define PVAUTHOR_ENGINE_SDKINFO_DATE 0x20100614 #endif //PV_AUTHOR_SDKINFO_H_INCLUDED diff --git a/engines/player/src/pv_player_sdkinfo.h b/engines/player/src/pv_player_sdkinfo.h index 74a8babe7..03e3201fa 100644 --- a/engines/player/src/pv_player_sdkinfo.h +++ b/engines/player/src/pv_player_sdkinfo.h @@ -21,7 +21,7 @@ // This header file is automatically generated at build-time // *** OFFICIAL RELEASE INFO -- Will not auto update -#define PVPLAYER_ENGINE_SDKINFO_LABEL "1495880" +#define PVPLAYER_ENGINE_SDKINFO_LABEL "1495892" #define PVPLAYER_ENGINE_SDKINFO_DATE 0x20100614 #endif //PV_PLAYER_SDKINFO_H_INCLUDED diff --git a/fileformats/mp4/parser/src/trackfragmentatom.cpp b/fileformats/mp4/parser/src/trackfragmentatom.cpp index 81f6438e2..384969435 100644 --- a/fileformats/mp4/parser/src/trackfragmentatom.cpp +++ b/fileformats/mp4/parser/src/trackfragmentatom.cpp @@ -810,10 +810,9 @@ TrackFragmentAtom::getNextNSamples(uint32 startSampleNum, } if (INSUFFICIENT_DATA == _mp4ErrorCode || INSUFFICIENT_BUFFER_SIZE == _mp4ErrorCode) { - // if MBDS, may need to kick of a http request - uint32 contentLength = AtomUtils::getContentLength(_pinput); - if ((0 != contentLength) && ((sigmaSampleSize + sampleFileOffset) > contentLength)) + TOsclFileOffset contentLength = AtomUtils::getContentLength(_pinput); + if (((TOsclFileOffset)0 != contentLength) && ((sigmaSampleSize + sampleFileOffset) > contentLength)) { // do not skip beyond end of clip // if content length is known @@ -821,13 +820,10 @@ TrackFragmentAtom::getNextNSamples(uint32 startSampleNum, } else { - - AtomUtils::skipFromStart(_pinput, (TOsclFileOffset)sampleFileOffset); - + AtomUtils::skipFromStart(_pinput, sampleFileOffset); } *n = 0; - _currentTrackFragmentRunSampleNumber = startSampleNum; for (uint32 i = 0; i < pgau->numMediaSamples; i++) { diff --git a/nodes/pvdownloadmanagernode/src/pvmf_memorybufferdatastream_factory.cpp b/nodes/pvdownloadmanagernode/src/pvmf_memorybufferdatastream_factory.cpp index afb6fe701..de83ddd5c 100644 --- a/nodes/pvdownloadmanagernode/src/pvmf_memorybufferdatastream_factory.cpp +++ b/nodes/pvdownloadmanagernode/src/pvmf_memorybufferdatastream_factory.cpp @@ -2136,7 +2136,7 @@ PVMFMemoryBufferWriteDataStreamImpl::Reposition(PvmiDataStreamSession aSessionID PvmiDataStreamCommandId cmdId = 0; int32 error = 0; - OSCL_TRY(error, cmdId = iRequestObserver->DataStreamRequest(0, PVDS_REQUEST_REPOSITION, (OsclAny*)iRepositionRequest.iNewFilePosition, (OsclAny*) & iRepositionRequest)); + OSCL_TRY(error, cmdId = iRequestObserver->DataStreamRequest(0, PVDS_REQUEST_REPOSITION, (OsclAny*) & iRepositionRequest.iNewFilePosition, (OsclAny*) & iRepositionRequest)); if (error) { status = PVDS_FAILURE; diff --git a/nodes/pvprotocolenginenode/download_protocols/progressive_streaming/src/pvmf_protocol_engine_node_progressive_streaming.cpp b/nodes/pvprotocolenginenode/download_protocols/progressive_streaming/src/pvmf_protocol_engine_node_progressive_streaming.cpp index 472a0474e..514b06123 100644 --- a/nodes/pvprotocolenginenode/download_protocols/progressive_streaming/src/pvmf_protocol_engine_node_progressive_streaming.cpp +++ b/nodes/pvprotocolenginenode/download_protocols/progressive_streaming/src/pvmf_protocol_engine_node_progressive_streaming.cpp @@ -90,7 +90,10 @@ OSCL_EXPORT_REF TOsclFileOffset ProgressiveStreamingContainer::getSeekOffset(PVM //extract the parameters. OsclAny* aRequestData; aCmd.PVMFNodeCommand::Parse(aRequestData); - TOsclFileOffset newOffset = (TOsclFileOffset)aRequestData; + + TOsclFileOffset *newOffset_tmp = (TOsclFileOffset*)(aRequestData); + TOsclFileOffset newOffset = *newOffset_tmp; + return newOffset; } @@ -122,7 +125,9 @@ OSCL_EXPORT_REF bool ProgressiveStreamingContainer::completeRepositionRequest() pCmd->PVMFNodeCommand::Parse(aRequestData, aDataStreamCmdId); // set current file offset to the byte range request offset - TOsclFileOffset newOffset = (TOsclFileOffset)aRequestData; + TOsclFileOffset *newOffset_tmp = (TOsclFileOffset*)(aRequestData); + TOsclFileOffset newOffset = *newOffset_tmp; + iNodeOutput->seekDataStream(newOffset); iNodeOutput->setCurrentOutputSize(newOffset); iDownloadControl->setPrevDownloadSize(newOffset); |