summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/SampleTable.cpp
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2014-07-21 13:47:21 -0700
committerLajos Molnar <lajos@google.com>2014-07-21 13:53:37 -0700
commit225d5b20409fd400bfa4ed5e9bc1d5babb498471 (patch)
treecdb6c6af42de0f14c7312cd0951937de29d7a2b0 /media/libstagefright/SampleTable.cpp
parentac847e2ca8e0a81e013e1fb2fdf2cefe21db3b75 (diff)
downloadframeworks_av-225d5b20409fd400bfa4ed5e9bc1d5babb498471.zip
frameworks_av-225d5b20409fd400bfa4ed5e9bc1d5babb498471.tar.gz
frameworks_av-225d5b20409fd400bfa4ed5e9bc1d5babb498471.tar.bz2
stagefright: handle seeking to before first cue-point.
Bug: 16446994 Change-Id: Id3f9d6780a7c4f62171cbfa8675a67334e8dfa10
Diffstat (limited to 'media/libstagefright/SampleTable.cpp')
-rw-r--r--media/libstagefright/SampleTable.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/media/libstagefright/SampleTable.cpp b/media/libstagefright/SampleTable.cpp
index c7e24fc..bad43f2 100644
--- a/media/libstagefright/SampleTable.cpp
+++ b/media/libstagefright/SampleTable.cpp
@@ -525,14 +525,14 @@ status_t SampleTable::findSampleAtTime(
buildSampleEntriesTable();
uint32_t left = 0;
- uint32_t right = mNumSampleSizes - 1;
- while (left <= right) {
- uint32_t center = left + (right - left) / 2;
+ uint32_t right_plus_one = mNumSampleSizes;
+ while (left < right_plus_one) {
+ uint32_t center = left + (right_plus_one - left) / 2;
uint64_t centerTime =
getSampleTime(center, scale_num, scale_den);
if (req_time < centerTime) {
- right = center - 1;
+ right_plus_one = center;
} else if (req_time > centerTime) {
left = center + 1;
} else {
@@ -607,13 +607,13 @@ status_t SampleTable::findSyncSampleNear(
}
uint32_t left = 0;
- uint32_t right = mNumSyncSamples - 1;
- while (left <= right) {
- uint32_t center = left + (right - left) / 2;
+ uint32_t right_plus_one = mNumSyncSamples;
+ while (left < right_plus_one) {
+ uint32_t center = left + (right_plus_one - left) / 2;
uint32_t x = mSyncSamples[center];
if (start_sample_index < x) {
- right = center - 1;
+ right_plus_one = center;
} else if (start_sample_index > x) {
left = center + 1;
} else {