From ada19a25403ac11f4899624febfca8a2d17e17b2 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 16 Dec 2016 06:03:28 -0800 Subject: [PATCH] Correctly offset subsample timestamps. This has always been broken in V2, but the issue is now also visible for the very first period in the timeline because we offset if by 60s. Previously the issue would only have been visible from the start of the second period. Issue: #2208 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=142252702 --- .../java/com/google/android/exoplayer2/BaseRenderer.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/library/src/main/java/com/google/android/exoplayer2/BaseRenderer.java b/library/src/main/java/com/google/android/exoplayer2/BaseRenderer.java index 447e39bf52f..514bbca8f4e 100644 --- a/library/src/main/java/com/google/android/exoplayer2/BaseRenderer.java +++ b/library/src/main/java/com/google/android/exoplayer2/BaseRenderer.java @@ -267,6 +267,12 @@ protected final int readSource(FormatHolder formatHolder, DecoderInputBuffer buf return streamIsFinal ? C.RESULT_BUFFER_READ : C.RESULT_NOTHING_READ; } buffer.timeUs += streamOffsetUs; + } else if (result == C.RESULT_FORMAT_READ) { + Format format = formatHolder.format; + if (format.subsampleOffsetUs != Format.OFFSET_SAMPLE_RELATIVE) { + format = format.copyWithSubsampleOffsetUs(format.subsampleOffsetUs + streamOffsetUs); + formatHolder.format = format; + } } return result; }