diff options
author | Lajos Molnar <lajos@google.com> | 2014-07-17 10:52:36 -0700 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2014-07-17 22:11:38 -0700 |
commit | 599950efbb03b1672561d4cf2272504b879525e8 (patch) | |
tree | cfb507c4b090974cc12cde0a6567f5bebfb70aab /media/libstagefright/OggExtractor.cpp | |
parent | cc227036b05f7c2f960a89c567a61f9decefe742 (diff) | |
download | frameworks_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/OggExtractor.cpp')
-rw-r--r-- | media/libstagefright/OggExtractor.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/media/libstagefright/OggExtractor.cpp b/media/libstagefright/OggExtractor.cpp index 8c15929..0838004 100644 --- a/media/libstagefright/OggExtractor.cpp +++ b/media/libstagefright/OggExtractor.cpp @@ -320,14 +320,14 @@ status_t MyVorbisExtractor::seekToTime(int64_t timeUs) { } size_t left = 0; - size_t right = mTableOfContents.size(); - while (left < right) { - size_t center = left / 2 + right / 2 + (left & right & 1); + size_t right = mTableOfContents.size() - 1; + while (left <= right) { + size_t center = left + (right - left) / 2; const TOCEntry &entry = mTableOfContents.itemAt(center); if (timeUs < entry.mTimeUs) { - right = center; + right = center - 1; } else if (timeUs > entry.mTimeUs) { left = center + 1; } else { |