From e9cfd720833c3a0cef5be8ed1c9c5648083a562f Mon Sep 17 00:00:00 2001 From: rohks Date: Wed, 14 Aug 2024 04:29:01 -0700 Subject: [PATCH] Enable CBR seeking for files with unknown length in `AmrExtractor` Constant bit rate (CBR) seeking can be enabled even when the length of the file is not known. Additionally, dump files for these files have been updated to accurately log the `position` when `timeUs` is set to `0`. PiperOrigin-RevId: 662868607 --- .../main/java/androidx/media3/extractor/amr/AmrExtractor.java | 1 - .../extractordumps/amr/sample_nb_cbr.amr.unknown_length.dump | 2 +- .../extractordumps/amr/sample_wb_cbr.amr.unknown_length.dump | 2 +- 3 files changed, 2 insertions(+), 3 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 d7a6e0ec1b..dac457063a 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 @@ -381,7 +381,6 @@ public final class AmrExtractor implements Extractor { } if ((flags & FLAG_ENABLE_CONSTANT_BITRATE_SEEKING) == 0 - || inputLength == C.LENGTH_UNSET || (firstSampleSize != C.LENGTH_UNSET && firstSampleSize != currentSampleSize)) { seekMap = new SeekMap.Unseekable(C.TIME_UNSET); extractorOutput.seekMap(seekMap); 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 6cab18f874..59da50ae4d 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 @@ -1,7 +1,7 @@ seekMap: isSeekable = false duration = UNSET TIME - getPosition(0) = [[timeUs=0, position=0]] + getPosition(0) = [[timeUs=0, position=6]] numberOfTracks = 1 track 0: total output bytes = 2834 diff --git a/libraries/test_data/src/test/assets/extractordumps/amr/sample_wb_cbr.amr.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/amr/sample_wb_cbr.amr.unknown_length.dump index c4fb207a3a..0945d1f4a8 100644 --- a/libraries/test_data/src/test/assets/extractordumps/amr/sample_wb_cbr.amr.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/amr/sample_wb_cbr.amr.unknown_length.dump @@ -1,7 +1,7 @@ seekMap: isSeekable = false duration = UNSET TIME - getPosition(0) = [[timeUs=0, position=0]] + getPosition(0) = [[timeUs=0, position=9]] numberOfTracks = 1 track 0: total output bytes = 4056