From a8b65ca8d6aaa188884edb4f4e5fa6b6cbf587af Mon Sep 17 00:00:00 2001 From: kimvde Date: Mon, 11 Nov 2019 14:22:30 +0000 Subject: [PATCH] Compute format maxInputSize in FlacReader Use the maximum frame size as the maximum sample size if provided. PiperOrigin-RevId: 279722820 --- .../google/android/exoplayer2/extractor/ogg/FlacReader.java | 4 +++- library/core/src/test/assets/ogg/bear_flac.ogg.0.dump | 2 +- library/core/src/test/assets/ogg/bear_flac.ogg.1.dump | 2 +- library/core/src/test/assets/ogg/bear_flac.ogg.2.dump | 2 +- library/core/src/test/assets/ogg/bear_flac.ogg.3.dump | 2 +- library/core/src/test/assets/ogg/bear_flac.ogg.unklen.dump | 2 +- .../core/src/test/assets/ogg/bear_flac_noseektable.ogg.0.dump | 2 +- .../core/src/test/assets/ogg/bear_flac_noseektable.ogg.1.dump | 2 +- .../core/src/test/assets/ogg/bear_flac_noseektable.ogg.2.dump | 2 +- .../core/src/test/assets/ogg/bear_flac_noseektable.ogg.3.dump | 2 +- .../src/test/assets/ogg/bear_flac_noseektable.ogg.unklen.dump | 2 +- 11 files changed, 13 insertions(+), 11 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java index e1218b5572..f7735d84de 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java @@ -73,6 +73,8 @@ import java.util.List; byte[] data = packet.data; if (streamMetadata == null) { streamMetadata = new FlacStreamMetadata(data, 17); + int maxInputSize = + streamMetadata.maxFrameSize == 0 ? Format.NO_VALUE : streamMetadata.maxFrameSize; byte[] metadata = Arrays.copyOfRange(data, 9, packet.limit()); metadata[4] = (byte) 0x80; // Set the last metadata block flag, ignore the other blocks List initializationData = Collections.singletonList(metadata); @@ -82,7 +84,7 @@ import java.util.List; MimeTypes.AUDIO_FLAC, /* codecs= */ null, streamMetadata.bitRate(), - /* maxInputSize= */ Format.NO_VALUE, + maxInputSize, streamMetadata.channels, streamMetadata.sampleRate, initializationData, diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.0.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.0.dump index ccd09181a8..365040c46c 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.0.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.0.dump @@ -9,7 +9,7 @@ track 0: id = null containerMimeType = null sampleMimeType = audio/flac - maxInputSize = -1 + maxInputSize = 5776 width = -1 height = -1 frameRate = -1.0 diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.1.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.1.dump index 0f36b2b32e..ff020b32fd 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.1.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.1.dump @@ -9,7 +9,7 @@ track 0: id = null containerMimeType = null sampleMimeType = audio/flac - maxInputSize = -1 + maxInputSize = 5776 width = -1 height = -1 frameRate = -1.0 diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.2.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.2.dump index b3ff58e707..88deeaebd3 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.2.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.2.dump @@ -9,7 +9,7 @@ track 0: id = null containerMimeType = null sampleMimeType = audio/flac - maxInputSize = -1 + maxInputSize = 5776 width = -1 height = -1 frameRate = -1.0 diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.3.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.3.dump index ea2eff8b04..2eb7be2454 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.3.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.3.dump @@ -9,7 +9,7 @@ track 0: id = null containerMimeType = null sampleMimeType = audio/flac - maxInputSize = -1 + maxInputSize = 5776 width = -1 height = -1 frameRate = -1.0 diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.unklen.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.unklen.dump index ccd09181a8..365040c46c 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.unklen.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.unklen.dump @@ -9,7 +9,7 @@ track 0: id = null containerMimeType = null sampleMimeType = audio/flac - maxInputSize = -1 + maxInputSize = 5776 width = -1 height = -1 frameRate = -1.0 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.0.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.0.dump index 0972d17f2f..c07b2f3844 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.0.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.0.dump @@ -9,7 +9,7 @@ track 0: id = null containerMimeType = null sampleMimeType = audio/flac - maxInputSize = -1 + maxInputSize = 5776 width = -1 height = -1 frameRate = -1.0 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.1.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.1.dump index e33b81c90f..a7fce3c901 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.1.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.1.dump @@ -9,7 +9,7 @@ track 0: id = null containerMimeType = null sampleMimeType = audio/flac - maxInputSize = -1 + maxInputSize = 5776 width = -1 height = -1 frameRate = -1.0 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.2.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.2.dump index b8b7d85393..d05d36bd1e 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.2.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.2.dump @@ -9,7 +9,7 @@ track 0: id = null containerMimeType = null sampleMimeType = audio/flac - maxInputSize = -1 + maxInputSize = 5776 width = -1 height = -1 frameRate = -1.0 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.3.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.3.dump index c866017548..376cb68499 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.3.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.3.dump @@ -9,7 +9,7 @@ track 0: id = null containerMimeType = null sampleMimeType = audio/flac - maxInputSize = -1 + maxInputSize = 5776 width = -1 height = -1 frameRate = -1.0 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.unklen.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.unklen.dump index 735d97eed1..44a93a6037 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.unklen.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.unklen.dump @@ -9,7 +9,7 @@ track 0: id = null containerMimeType = null sampleMimeType = audio/flac - maxInputSize = -1 + maxInputSize = 5776 width = -1 height = -1 frameRate = -1.0