Loading media/libstagefright/MPEG4Extractor.cpp +10 −2 Original line number Diff line number Diff line Loading @@ -3540,7 +3540,7 @@ status_t MPEG4Source::read( off64_t offset; size_t size; uint32_t cts; uint32_t cts, stts; bool isSyncSample; bool newBuffer = false; if (mBuffer == NULL) { Loading @@ -3548,7 +3548,7 @@ status_t MPEG4Source::read( status_t err = mSampleTable->getMetaDataForSample( mCurrentSampleIndex, &offset, &size, &cts, &isSyncSample); mCurrentSampleIndex, &offset, &size, &cts, &isSyncSample, &stts); if (err != OK) { return err; Loading Loading @@ -3579,6 +3579,8 @@ status_t MPEG4Source::read( mBuffer->meta_data()->clear(); mBuffer->meta_data()->setInt64( kKeyTime, ((int64_t)cts * 1000000) / mTimescale); mBuffer->meta_data()->setInt64( kKeyDuration, ((int64_t)stts * 1000000) / mTimescale); if (targetSampleTimeUs >= 0) { mBuffer->meta_data()->setInt64( Loading Loading @@ -3701,6 +3703,8 @@ status_t MPEG4Source::read( mBuffer->meta_data()->clear(); mBuffer->meta_data()->setInt64( kKeyTime, ((int64_t)cts * 1000000) / mTimescale); mBuffer->meta_data()->setInt64( kKeyDuration, ((int64_t)stts * 1000000) / mTimescale); if (targetSampleTimeUs >= 0) { mBuffer->meta_data()->setInt64( Loading Loading @@ -3850,6 +3854,8 @@ status_t MPEG4Source::fragmentedRead( mBuffer->set_range(0, size); mBuffer->meta_data()->setInt64( kKeyTime, ((int64_t)cts * 1000000) / mTimescale); mBuffer->meta_data()->setInt64( kKeyDuration, ((int64_t)smpl->duration * 1000000) / mTimescale); if (targetSampleTimeUs >= 0) { mBuffer->meta_data()->setInt64( Loading Loading @@ -3973,6 +3979,8 @@ status_t MPEG4Source::fragmentedRead( mBuffer->meta_data()->setInt64( kKeyTime, ((int64_t)cts * 1000000) / mTimescale); mBuffer->meta_data()->setInt64( kKeyDuration, ((int64_t)smpl->duration * 1000000) / mTimescale); if (targetSampleTimeUs >= 0) { mBuffer->meta_data()->setInt64( Loading media/libstagefright/SampleIterator.cpp +6 −3 Original line number Diff line number Diff line Loading @@ -133,7 +133,8 @@ status_t SampleIterator::seekTo(uint32_t sampleIndex) { } status_t err; if ((err = findSampleTime(sampleIndex, &mCurrentSampleTime)) != OK) { if ((err = findSampleTimeAndDuration( sampleIndex, &mCurrentSampleTime, &mCurrentSampleDuration)) != OK) { ALOGE("findSampleTime return error"); return err; } Loading Loading @@ -285,8 +286,8 @@ status_t SampleIterator::getSampleSizeDirect( return OK; } status_t SampleIterator::findSampleTime( uint32_t sampleIndex, uint32_t *time) { status_t SampleIterator::findSampleTimeAndDuration( uint32_t sampleIndex, uint32_t *time, uint32_t *duration) { if (sampleIndex >= mTable->mNumSampleSizes) { return ERROR_OUT_OF_RANGE; } Loading @@ -309,6 +310,8 @@ status_t SampleIterator::findSampleTime( *time += mTable->getCompositionTimeOffset(sampleIndex); *duration = mTTSDuration; return OK; } Loading media/libstagefright/SampleTable.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -778,7 +778,8 @@ status_t SampleTable::getMetaDataForSample( off64_t *offset, size_t *size, uint32_t *compositionTime, bool *isSyncSample) { bool *isSyncSample, uint32_t *sampleDuration) { Mutex::Autolock autoLock(mLock); status_t err; Loading Loading @@ -820,6 +821,10 @@ status_t SampleTable::getMetaDataForSample( } } if (sampleDuration) { *sampleDuration = mSampleIterator->getSampleDuration(); } return OK; } Loading media/libstagefright/include/SampleIterator.h +3 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ struct SampleIterator { off64_t getSampleOffset() const { return mCurrentSampleOffset; } size_t getSampleSize() const { return mCurrentSampleSize; } uint32_t getSampleTime() const { return mCurrentSampleTime; } uint32_t getSampleDuration() const { return mCurrentSampleDuration; } status_t getSampleSizeDirect( uint32_t sampleIndex, size_t *size); Loading Loading @@ -61,11 +62,12 @@ private: off64_t mCurrentSampleOffset; size_t mCurrentSampleSize; uint32_t mCurrentSampleTime; uint32_t mCurrentSampleDuration; void reset(); status_t findChunkRange(uint32_t sampleIndex); status_t getChunkOffset(uint32_t chunk, off64_t *offset); status_t findSampleTime(uint32_t sampleIndex, uint32_t *time); status_t findSampleTimeAndDuration(uint32_t sampleIndex, uint32_t *time, uint32_t *duration); SampleIterator(const SampleIterator &); SampleIterator &operator=(const SampleIterator &); Loading media/libstagefright/include/SampleTable.h +2 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,8 @@ public: off64_t *offset, size_t *size, uint32_t *compositionTime, bool *isSyncSample = NULL); bool *isSyncSample = NULL, uint32_t *sampleDuration = NULL); enum { kFlagBefore, Loading Loading
media/libstagefright/MPEG4Extractor.cpp +10 −2 Original line number Diff line number Diff line Loading @@ -3540,7 +3540,7 @@ status_t MPEG4Source::read( off64_t offset; size_t size; uint32_t cts; uint32_t cts, stts; bool isSyncSample; bool newBuffer = false; if (mBuffer == NULL) { Loading @@ -3548,7 +3548,7 @@ status_t MPEG4Source::read( status_t err = mSampleTable->getMetaDataForSample( mCurrentSampleIndex, &offset, &size, &cts, &isSyncSample); mCurrentSampleIndex, &offset, &size, &cts, &isSyncSample, &stts); if (err != OK) { return err; Loading Loading @@ -3579,6 +3579,8 @@ status_t MPEG4Source::read( mBuffer->meta_data()->clear(); mBuffer->meta_data()->setInt64( kKeyTime, ((int64_t)cts * 1000000) / mTimescale); mBuffer->meta_data()->setInt64( kKeyDuration, ((int64_t)stts * 1000000) / mTimescale); if (targetSampleTimeUs >= 0) { mBuffer->meta_data()->setInt64( Loading Loading @@ -3701,6 +3703,8 @@ status_t MPEG4Source::read( mBuffer->meta_data()->clear(); mBuffer->meta_data()->setInt64( kKeyTime, ((int64_t)cts * 1000000) / mTimescale); mBuffer->meta_data()->setInt64( kKeyDuration, ((int64_t)stts * 1000000) / mTimescale); if (targetSampleTimeUs >= 0) { mBuffer->meta_data()->setInt64( Loading Loading @@ -3850,6 +3854,8 @@ status_t MPEG4Source::fragmentedRead( mBuffer->set_range(0, size); mBuffer->meta_data()->setInt64( kKeyTime, ((int64_t)cts * 1000000) / mTimescale); mBuffer->meta_data()->setInt64( kKeyDuration, ((int64_t)smpl->duration * 1000000) / mTimescale); if (targetSampleTimeUs >= 0) { mBuffer->meta_data()->setInt64( Loading Loading @@ -3973,6 +3979,8 @@ status_t MPEG4Source::fragmentedRead( mBuffer->meta_data()->setInt64( kKeyTime, ((int64_t)cts * 1000000) / mTimescale); mBuffer->meta_data()->setInt64( kKeyDuration, ((int64_t)smpl->duration * 1000000) / mTimescale); if (targetSampleTimeUs >= 0) { mBuffer->meta_data()->setInt64( Loading
media/libstagefright/SampleIterator.cpp +6 −3 Original line number Diff line number Diff line Loading @@ -133,7 +133,8 @@ status_t SampleIterator::seekTo(uint32_t sampleIndex) { } status_t err; if ((err = findSampleTime(sampleIndex, &mCurrentSampleTime)) != OK) { if ((err = findSampleTimeAndDuration( sampleIndex, &mCurrentSampleTime, &mCurrentSampleDuration)) != OK) { ALOGE("findSampleTime return error"); return err; } Loading Loading @@ -285,8 +286,8 @@ status_t SampleIterator::getSampleSizeDirect( return OK; } status_t SampleIterator::findSampleTime( uint32_t sampleIndex, uint32_t *time) { status_t SampleIterator::findSampleTimeAndDuration( uint32_t sampleIndex, uint32_t *time, uint32_t *duration) { if (sampleIndex >= mTable->mNumSampleSizes) { return ERROR_OUT_OF_RANGE; } Loading @@ -309,6 +310,8 @@ status_t SampleIterator::findSampleTime( *time += mTable->getCompositionTimeOffset(sampleIndex); *duration = mTTSDuration; return OK; } Loading
media/libstagefright/SampleTable.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -778,7 +778,8 @@ status_t SampleTable::getMetaDataForSample( off64_t *offset, size_t *size, uint32_t *compositionTime, bool *isSyncSample) { bool *isSyncSample, uint32_t *sampleDuration) { Mutex::Autolock autoLock(mLock); status_t err; Loading Loading @@ -820,6 +821,10 @@ status_t SampleTable::getMetaDataForSample( } } if (sampleDuration) { *sampleDuration = mSampleIterator->getSampleDuration(); } return OK; } Loading
media/libstagefright/include/SampleIterator.h +3 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ struct SampleIterator { off64_t getSampleOffset() const { return mCurrentSampleOffset; } size_t getSampleSize() const { return mCurrentSampleSize; } uint32_t getSampleTime() const { return mCurrentSampleTime; } uint32_t getSampleDuration() const { return mCurrentSampleDuration; } status_t getSampleSizeDirect( uint32_t sampleIndex, size_t *size); Loading Loading @@ -61,11 +62,12 @@ private: off64_t mCurrentSampleOffset; size_t mCurrentSampleSize; uint32_t mCurrentSampleTime; uint32_t mCurrentSampleDuration; void reset(); status_t findChunkRange(uint32_t sampleIndex); status_t getChunkOffset(uint32_t chunk, off64_t *offset); status_t findSampleTime(uint32_t sampleIndex, uint32_t *time); status_t findSampleTimeAndDuration(uint32_t sampleIndex, uint32_t *time, uint32_t *duration); SampleIterator(const SampleIterator &); SampleIterator &operator=(const SampleIterator &); Loading
media/libstagefright/include/SampleTable.h +2 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,8 @@ public: off64_t *offset, size_t *size, uint32_t *compositionTime, bool *isSyncSample = NULL); bool *isSyncSample = NULL, uint32_t *sampleDuration = NULL); enum { kFlagBefore, Loading