aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacketVideo CM <engbuild@pv.com>2010-06-23 14:06:49 -0700
committerPacketVideo CM <engbuild@pv.com>2010-06-23 14:31:03 -0700
commitecd97784b8186ab136f2dd97fcf496ed2fd78f63 (patch)
treedaaefa94381ec95ba5bf21c133ea381dfd2693f3
parent9d4ca5aa6bde303f38828b5f6ef37b3ef59ed7e0 (diff)
downloadopencore-ecd97784b8186ab136f2dd97fcf496ed2fd78f63.tar.gz
RIO-9089: Fix for repositioning large offsets during MP4 PS
Change-Id: I024fc35e13276113ca7bcfa1874548596c93823c
-rw-r--r--engines/2way/src/pv_2way_sdkinfo.h2
-rw-r--r--engines/author/src/pv_author_sdkinfo.h2
-rw-r--r--engines/player/src/pv_player_sdkinfo.h2
-rw-r--r--fileformats/mp4/parser/src/trackfragmentatom.cpp10
-rw-r--r--nodes/pvdownloadmanagernode/src/pvmf_memorybufferdatastream_factory.cpp2
-rw-r--r--nodes/pvprotocolenginenode/download_protocols/progressive_streaming/src/pvmf_protocol_engine_node_progressive_streaming.cpp9
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);