From 5e822e160ed6831d4ca3754e30c1a1561f8f4b4a Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 16 Dec 2019 16:18:01 +0000 Subject: [PATCH] FakeTrackOutput: Throw if sample size exceeds maxInputSize This indicates the extractor has output a Format with a specified maxInputSize that's too small. Failing in FakeTrackOutput ensures this doesn't happen during Extractor tests. PiperOrigin-RevId: 285776069 --- .../google/android/exoplayer2/testutil/FakeTrackOutput.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTrackOutput.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTrackOutput.java index 4dd00557ae..f78e835b48 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTrackOutput.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTrackOutput.java @@ -93,6 +93,12 @@ public final class FakeTrackOutput implements TrackOutput, Dumper.Dumpable { @Override public void sampleMetadata(long timeUs, @C.BufferFlags int flags, int size, int offset, CryptoData cryptoData) { + if (format == null) { + throw new IllegalStateException("TrackOutput must receive format before sampleMetadata"); + } + if (format.maxInputSize != Format.NO_VALUE && size > format.maxInputSize) { + throw new IllegalStateException("Sample size exceeds Format.maxInputSize"); + } sampleTimesUs.add(timeUs); sampleFlags.add(flags); sampleStartOffsets.add(sampleData.length - offset - size);