From 75574928e5d9aba554771fe759bb44ba5db877b9 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Fri, 2 Feb 2018 10:09:24 -0800 Subject: [PATCH] Only override gapless data if set in ClippingMediaPeriod This avoids reading a format that is not equal because of switching between NO_VALUE and 0. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184298076 --- .../android/exoplayer2/source/ClippingMediaPeriod.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/ClippingMediaPeriod.java b/library/core/src/main/java/com/google/android/exoplayer2/source/ClippingMediaPeriod.java index 3f2c5ec894..f14c0faad4 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/ClippingMediaPeriod.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/ClippingMediaPeriod.java @@ -292,11 +292,13 @@ public final class ClippingMediaPeriod implements MediaPeriod, MediaPeriod.Callb } int result = childStream.readData(formatHolder, buffer, requireFormat); if (result == C.RESULT_FORMAT_READ) { - // Clear gapless playback metadata if the start/end points don't match the media. Format format = formatHolder.format; - int encoderDelay = startUs != 0 ? 0 : format.encoderDelay; - int encoderPadding = endUs != C.TIME_END_OF_SOURCE ? 0 : format.encoderPadding; - formatHolder.format = format.copyWithGaplessInfo(encoderDelay, encoderPadding); + if (format.encoderDelay != Format.NO_VALUE || format.encoderPadding != Format.NO_VALUE) { + // Clear gapless playback metadata if the start/end points don't match the media. + int encoderDelay = startUs != 0 ? 0 : format.encoderDelay; + int encoderPadding = endUs != C.TIME_END_OF_SOURCE ? 0 : format.encoderPadding; + formatHolder.format = format.copyWithGaplessInfo(encoderDelay, encoderPadding); + } return C.RESULT_FORMAT_READ; } if (endUs != C.TIME_END_OF_SOURCE