summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2012-08-08 09:19:05 -0700
committerMarco Nelissen <marcone@google.com>2012-08-08 09:19:05 -0700
commitb7e75cfd64893dde230dfc1c3b281a00ca1b4470 (patch)
tree1ed2135b58a8762cdefda74197ea688a50b907b5 /media/libmediaplayerservice
parent28620ee3e9926ef07f0b4cb3e22b156b812e2d7e (diff)
downloadframeworks_av-b7e75cfd64893dde230dfc1c3b281a00ca1b4470.zip
frameworks_av-b7e75cfd64893dde230dfc1c3b281a00ca1b4470.tar.gz
frameworks_av-b7e75cfd64893dde230dfc1c3b281a00ca1b4470.tar.bz2
Handle empty stsc box
Change-Id: I867e2499fac3045075654aaaecf44327753327fd
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r--media/libmediaplayerservice/nuplayer/mp4/TrackFragment.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/media/libmediaplayerservice/nuplayer/mp4/TrackFragment.cpp b/media/libmediaplayerservice/nuplayer/mp4/TrackFragment.cpp
index e2df468..12e71db 100644
--- a/media/libmediaplayerservice/nuplayer/mp4/TrackFragment.cpp
+++ b/media/libmediaplayerservice/nuplayer/mp4/TrackFragment.cpp
@@ -217,6 +217,9 @@ static void setU32At(uint8_t *ptr, uint32_t x) {
}
void Parser::StaticTrackFragment::fixSampleToChunkTableIfNecessary() {
+ if (mSampleToChunk == NULL) {
+ return;
+ }
uint32_t entryCount = U32_AT(mSampleToChunk->data() + 4);
uint32_t totalSamples = 0;
for (uint32_t i = 0; i < entryCount; ++i) {
@@ -251,7 +254,7 @@ status_t Parser::StaticTrackFragment::signalCompletion() {
mSampleToChunkIndex = 0;
- mSampleToChunkRemaining =
+ mSampleToChunkRemaining = (mSampleToChunk == NULL) ? 0 :
U32_AT(mSampleToChunk->data() + 8 + 12 * mSampleToChunkIndex + 4);
updateSampleInfo();
@@ -328,7 +331,11 @@ status_t Parser::StaticTrackFragment::parseSampleToChunk(
uint32_t entryCount = parser->readU32(offset + 4);
- if (entryCount == 0 || offset + 8 + entryCount * 12 != size) {
+ if (entryCount == 0) {
+ return OK;
+ }
+
+ if (offset + 8 + entryCount * 12 != size) {
return ERROR_MALFORMED;
}