Merge "Ignore audio sync sample list"

gugelfrei
Marco Nelissen 5 years ago committed by Gerrit Code Review
commit f9ac0e84e2

@ -143,6 +143,7 @@ private:
uint8_t *mSrcBuffer;
bool mIsHeif;
bool mIsAudio;
sp<ItemTable> mItemTable;
size_t parseNALSize(const uint8_t *data) const;
@ -4030,6 +4031,7 @@ MPEG4Source::MPEG4Source(
}
mIsPcm = !strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_RAW);
mIsAudio = !strncasecmp(mime, "audio/", 6);
if (mIsPcm) {
int32_t numChannels = 0;
@ -4869,8 +4871,11 @@ status_t MPEG4Source::read(
findFlags = SampleTable::kFlagBefore;
}
uint32_t syncSampleIndex;
if (err == OK) {
uint32_t syncSampleIndex = sampleIndex;
// assume every audio sample is a sync sample. This works around
// seek issues with files that were incorrectly written with an
// empty or single-sample stss block for the audio track
if (err == OK && !mIsAudio) {
err = mSampleTable->findSyncSampleNear(
sampleIndex, &syncSampleIndex, findFlags);
}

Loading…
Cancel
Save