From 36ea0f8acd5c032234e19f72efc0bc7057cf33b9 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Thu, 10 Dec 2015 09:33:48 -0800 Subject: [PATCH] Fix Seeker.getTimeUs for positions before the first frame. Issue: #1038 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=109906628 --- .../android/exoplayer/extractor/mp3/ConstantBitrateSeeker.java | 3 ++- .../com/google/android/exoplayer/extractor/mp3/XingSeeker.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/library/src/main/java/com/google/android/exoplayer/extractor/mp3/ConstantBitrateSeeker.java b/library/src/main/java/com/google/android/exoplayer/extractor/mp3/ConstantBitrateSeeker.java index db134089b9..bf83902410 100644 --- a/library/src/main/java/com/google/android/exoplayer/extractor/mp3/ConstantBitrateSeeker.java +++ b/library/src/main/java/com/google/android/exoplayer/extractor/mp3/ConstantBitrateSeeker.java @@ -47,7 +47,8 @@ import com.google.android.exoplayer.C; @Override public long getTimeUs(long position) { - return ((position - firstFramePosition) * C.MICROS_PER_SECOND * BITS_PER_BYTE) / bitrate; + return (Math.max(0, position - firstFramePosition) * C.MICROS_PER_SECOND * BITS_PER_BYTE) + / bitrate; } @Override diff --git a/library/src/main/java/com/google/android/exoplayer/extractor/mp3/XingSeeker.java b/library/src/main/java/com/google/android/exoplayer/extractor/mp3/XingSeeker.java index bc548f676c..bef49dfa89 100644 --- a/library/src/main/java/com/google/android/exoplayer/extractor/mp3/XingSeeker.java +++ b/library/src/main/java/com/google/android/exoplayer/extractor/mp3/XingSeeker.java @@ -130,7 +130,7 @@ import com.google.android.exoplayer.util.Util; @Override public long getTimeUs(long position) { - if (!isSeekable()) { + if (!isSeekable() || position < firstFramePosition) { return 0L; } double offsetByte = 256.0 * (position - firstFramePosition) / sizeBytes;