diff options
author | Lajos Molnar <lajos@google.com> | 2014-07-21 13:47:21 -0700 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2014-07-21 13:53:37 -0700 |
commit | 225d5b20409fd400bfa4ed5e9bc1d5babb498471 (patch) | |
tree | cdb6c6af42de0f14c7312cd0951937de29d7a2b0 /media/libstagefright/SampleTable.cpp | |
parent | ac847e2ca8e0a81e013e1fb2fdf2cefe21db3b75 (diff) | |
download | frameworks_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.cpp | 16 |
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 { |