From 007c258ceb9ff73826011b75c8144f017beaebd8 Mon Sep 17 00:00:00 2001 From: rohks Date: Mon, 8 Jul 2024 09:50:09 -0700 Subject: [PATCH] Fix `maxInputSize` for AMR-NB The `maxInputSize` for AMR-NB should be 32, not 61. The `maxInputSize` for AMR-WB is 61. PiperOrigin-RevId: 650282516 --- .../java/androidx/media3/extractor/amr/AmrExtractor.java | 7 +++---- .../test/assets/extractordumps/amr/sample_nb.amr.0.dump | 2 +- .../extractordumps/amr/sample_nb.amr.unknown_length.dump | 2 +- .../assets/extractordumps/amr/sample_nb_cbr.amr.0.dump | 2 +- .../assets/extractordumps/amr/sample_nb_cbr.amr.1.dump | 2 +- .../assets/extractordumps/amr/sample_nb_cbr.amr.2.dump | 2 +- .../assets/extractordumps/amr/sample_nb_cbr.amr.3.dump | 2 +- .../amr/sample_nb_cbr.amr.unknown_length.dump | 2 +- .../transformerdumps/amr/sample_nb.amr/original.dump | 2 +- 9 files changed, 11 insertions(+), 12 deletions(-) diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/amr/AmrExtractor.java b/libraries/extractor/src/main/java/androidx/media3/extractor/amr/AmrExtractor.java index 2260a55a8e..d7a6e0ec1b 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/amr/AmrExtractor.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/amr/AmrExtractor.java @@ -139,9 +139,6 @@ public final class AmrExtractor implements Extractor { private static final byte[] amrSignatureNb = Util.getUtf8Bytes("#!AMR\n"); private static final byte[] amrSignatureWb = Util.getUtf8Bytes("#!AMR-WB\n"); - /** Theoretical maximum frame size for a AMR frame. */ - private static final int MAX_FRAME_SIZE_BYTES = frameSizeBytesByTypeWb[8]; - /** * The required number of samples in the stream with same sample size to classify the stream as a * constant-bitrate-stream. @@ -284,10 +281,12 @@ public final class AmrExtractor implements Extractor { hasOutputFormat = true; String mimeType = isWideBand ? MimeTypes.AUDIO_AMR_WB : MimeTypes.AUDIO_AMR_NB; int sampleRate = isWideBand ? SAMPLE_RATE_WB : SAMPLE_RATE_NB; + // Theoretical maximum frame size for a AMR frame. + int maxInputSize = isWideBand ? frameSizeBytesByTypeWb[8] : frameSizeBytesByTypeNb[7]; trackOutput.format( new Format.Builder() .setSampleMimeType(mimeType) - .setMaxInputSize(MAX_FRAME_SIZE_BYTES) + .setMaxInputSize(maxInputSize) .setChannelCount(1) .setSampleRate(sampleRate) .build()); diff --git a/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb.amr.0.dump b/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb.amr.0.dump index 8430964566..6cab18f874 100644 --- a/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb.amr.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb.amr.0.dump @@ -8,7 +8,7 @@ track 0: sample count = 218 format 0: sampleMimeType = audio/3gpp - maxInputSize = 61 + maxInputSize = 32 channelCount = 1 sampleRate = 8000 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb.amr.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb.amr.unknown_length.dump index 8430964566..6cab18f874 100644 --- a/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb.amr.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb.amr.unknown_length.dump @@ -8,7 +8,7 @@ track 0: sample count = 218 format 0: sampleMimeType = audio/3gpp - maxInputSize = 61 + maxInputSize = 32 channelCount = 1 sampleRate = 8000 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.0.dump b/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.0.dump index ceef911773..2ed249d16b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.0.dump @@ -11,7 +11,7 @@ track 0: sample count = 218 format 0: sampleMimeType = audio/3gpp - maxInputSize = 61 + maxInputSize = 32 channelCount = 1 sampleRate = 8000 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.1.dump b/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.1.dump index a4cb365b4b..e12b429169 100644 --- a/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.1.dump @@ -11,7 +11,7 @@ track 0: sample count = 146 format 0: sampleMimeType = audio/3gpp - maxInputSize = 61 + maxInputSize = 32 channelCount = 1 sampleRate = 8000 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.2.dump b/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.2.dump index 57fb75cc10..b4d0d0d226 100644 --- a/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.2.dump @@ -11,7 +11,7 @@ track 0: sample count = 73 format 0: sampleMimeType = audio/3gpp - maxInputSize = 61 + maxInputSize = 32 channelCount = 1 sampleRate = 8000 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.3.dump b/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.3.dump index a77bd61f7e..bb9c247b6b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.3.dump @@ -11,7 +11,7 @@ track 0: sample count = 1 format 0: sampleMimeType = audio/3gpp - maxInputSize = 61 + maxInputSize = 32 channelCount = 1 sampleRate = 8000 sample 0: diff --git a/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.unknown_length.dump index 8430964566..6cab18f874 100644 --- a/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/amr/sample_nb_cbr.amr.unknown_length.dump @@ -8,7 +8,7 @@ track 0: sample count = 218 format 0: sampleMimeType = audio/3gpp - maxInputSize = 61 + maxInputSize = 32 channelCount = 1 sampleRate = 8000 sample 0: diff --git a/libraries/test_data/src/test/assets/transformerdumps/amr/sample_nb.amr/original.dump b/libraries/test_data/src/test/assets/transformerdumps/amr/sample_nb.amr/original.dump index efc23b54d9..05ef9a17d8 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/amr/sample_nb.amr/original.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/amr/sample_nb.amr/original.dump @@ -1,6 +1,6 @@ format audio: sampleMimeType = audio/3gpp - maxInputSize = 61 + maxInputSize = 32 channelCount = 1 sampleRate = 8000 sample: