From 599950efbb03b1672561d4cf2272504b879525e8 Mon Sep 17 00:00:00 2001 From: Lajos Molnar Date: Thu, 17 Jul 2014 10:52:36 -0700 Subject: stagefright: Fix seeking in MPEG4 container - seek based on user-visible timestamp - seek to previous, next and closest exactly Bug: 12786906 Change-Id: I2d5e1fbff6469b6f081a284be2222a4cb50aa754 --- media/libstagefright/include/SampleTable.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'media/libstagefright/include') diff --git a/media/libstagefright/include/SampleTable.h b/media/libstagefright/include/SampleTable.h index fe146f2..d06df7b 100644 --- a/media/libstagefright/include/SampleTable.h +++ b/media/libstagefright/include/SampleTable.h @@ -75,7 +75,8 @@ public: kFlagClosest }; status_t findSampleAtTime( - uint32_t req_time, uint32_t *sample_index, uint32_t flags); + uint64_t req_time, uint64_t scale_num, uint64_t scale_den, + uint32_t *sample_index, uint32_t flags); status_t findSyncSampleNear( uint32_t start_sample_index, uint32_t *sample_index, @@ -138,6 +139,13 @@ private: friend struct SampleIterator; + // normally we don't round + inline uint64_t getSampleTime( + size_t sample_index, uint64_t scale_num, uint64_t scale_den) const { + return (mSampleTimeEntries[sample_index].mCompositionTime + * scale_num) / scale_den; + } + status_t getSampleSize_l(uint32_t sample_index, size_t *sample_size); uint32_t getCompositionTimeOffset(uint32_t sampleIndex); -- cgit v1.1