From af0860c625c041dedb15db7247ff81c8e294bee4 Mon Sep 17 00:00:00 2001 From: Yamit Mehta Date: Mon, 20 Jul 2015 14:06:53 +0530 Subject: libstagefright - Fix seek on audio having empty stss block Ignore stss block for audio even if its present, all audio sample are sync samples itself, self decodeable and playable. Parsing this block for audio restricts audio seek to few entries available in this block, sometimes 0, which is undesired. CRs-Fixed: 664870 Change-Id: If3208d5c0557d3eaeddf875d6c6762bd870c439b --- media/libstagefright/MPEG4Extractor.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp index e88e90f..4c6bc40 100755 --- a/media/libstagefright/MPEG4Extractor.cpp +++ b/media/libstagefright/MPEG4Extractor.cpp @@ -1555,14 +1555,22 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) { *offset += chunk_size; - status_t err = - mLastTrack->sampleTable->setTimeToSampleParams( - data_offset, chunk_data_size); + // Ignore stss block for audio even if its present + // All audio sample are sync samples itself, + // self decodeable and playable. + // Parsing this block for audio restricts audio seek to few entries + // available in this block, sometimes 0, which is undesired. + const char *mime; + CHECK(mLastTrack->meta->findCString(kKeyMIMEType, &mime)); + if (strncasecmp("audio/", mime, 6)) { + status_t err = + mLastTrack->sampleTable->setSyncSampleParams( + data_offset, chunk_data_size); - if (err != OK) { - return err; + if (err != OK) { + return err; + } } - break; } -- cgit v1.1