summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/include/SampleTable.h
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2014-07-17 10:52:36 -0700
committerLajos Molnar <lajos@google.com>2014-07-17 22:11:38 -0700
commit599950efbb03b1672561d4cf2272504b879525e8 (patch)
treecfb507c4b090974cc12cde0a6567f5bebfb70aab /media/libstagefright/include/SampleTable.h
parentcc227036b05f7c2f960a89c567a61f9decefe742 (diff)
downloadframeworks_av-599950efbb03b1672561d4cf2272504b879525e8.zip
frameworks_av-599950efbb03b1672561d4cf2272504b879525e8.tar.gz
frameworks_av-599950efbb03b1672561d4cf2272504b879525e8.tar.bz2
stagefright: Fix seeking in MPEG4 container
- seek based on user-visible timestamp - seek to previous, next and closest exactly Bug: 12786906 Change-Id: I2d5e1fbff6469b6f081a284be2222a4cb50aa754
Diffstat (limited to 'media/libstagefright/include/SampleTable.h')
-rw-r--r--media/libstagefright/include/SampleTable.h10
1 files changed, 9 insertions, 1 deletions
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);