diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/mkv/MatroskaExtractorTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/mkv/MatroskaExtractorTest.java index 3aa8d4cfe2..69ad2ee7ab 100644 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/mkv/MatroskaExtractorTest.java +++ b/libraries/extractor/src/test/java/androidx/media3/extractor/mkv/MatroskaExtractorTest.java @@ -87,6 +87,12 @@ public final class MatroskaExtractorTest { MatroskaExtractor::new, "media/mkv/sample_with_vorbis_audio.mkv", simulationConfig); } + @Test + public void mkvSample_withOpusAudio() throws Exception { + ExtractorAsserts.assertBehavior( + MatroskaExtractor::new, "media/mkv/sample_with_opus_audio.mkv", simulationConfig); + } + @Test public void mkvSample_withHtcRotationInfoInTrackName() throws Exception { ExtractorAsserts.assertBehavior( diff --git a/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.0.dump b/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.0.dump new file mode 100644 index 0000000000..162d49f061 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.0.dump @@ -0,0 +1,36 @@ +seekMap: + isSeekable = true + duration = 58000 + getPosition(0) = [[timeUs=0, position=569]] + getPosition(1) = [[timeUs=0, position=569]] + getPosition(29000) = [[timeUs=0, position=569]] + getPosition(58000) = [[timeUs=0, position=569]] +numberOfTracks = 1 +track 1: + total output bytes = 828 + sample count = 3 + format 0: + id = 1 + sampleMimeType = audio/opus + maxInputSize = 5760 + channelCount = 1 + sampleRate = 48000 + selectionFlags = 1 + language = und + initializationData: + data = length 19, hash CB9E23BC + data = length 8, hash CA22068C + data = length 8, hash 79C07075 + sample 0: + time = 0 + flags = 1 + data = length 283, hash 686EA90 + sample 1: + time = 21000 + flags = 1 + data = length 217, hash 7D03A2A6 + sample 2: + time = 41000 + flags = 268435457 + data = length 328, hash BB4A36F0 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.1.dump b/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.1.dump new file mode 100644 index 0000000000..162d49f061 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.1.dump @@ -0,0 +1,36 @@ +seekMap: + isSeekable = true + duration = 58000 + getPosition(0) = [[timeUs=0, position=569]] + getPosition(1) = [[timeUs=0, position=569]] + getPosition(29000) = [[timeUs=0, position=569]] + getPosition(58000) = [[timeUs=0, position=569]] +numberOfTracks = 1 +track 1: + total output bytes = 828 + sample count = 3 + format 0: + id = 1 + sampleMimeType = audio/opus + maxInputSize = 5760 + channelCount = 1 + sampleRate = 48000 + selectionFlags = 1 + language = und + initializationData: + data = length 19, hash CB9E23BC + data = length 8, hash CA22068C + data = length 8, hash 79C07075 + sample 0: + time = 0 + flags = 1 + data = length 283, hash 686EA90 + sample 1: + time = 21000 + flags = 1 + data = length 217, hash 7D03A2A6 + sample 2: + time = 41000 + flags = 268435457 + data = length 328, hash BB4A36F0 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.2.dump b/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.2.dump new file mode 100644 index 0000000000..162d49f061 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.2.dump @@ -0,0 +1,36 @@ +seekMap: + isSeekable = true + duration = 58000 + getPosition(0) = [[timeUs=0, position=569]] + getPosition(1) = [[timeUs=0, position=569]] + getPosition(29000) = [[timeUs=0, position=569]] + getPosition(58000) = [[timeUs=0, position=569]] +numberOfTracks = 1 +track 1: + total output bytes = 828 + sample count = 3 + format 0: + id = 1 + sampleMimeType = audio/opus + maxInputSize = 5760 + channelCount = 1 + sampleRate = 48000 + selectionFlags = 1 + language = und + initializationData: + data = length 19, hash CB9E23BC + data = length 8, hash CA22068C + data = length 8, hash 79C07075 + sample 0: + time = 0 + flags = 1 + data = length 283, hash 686EA90 + sample 1: + time = 21000 + flags = 1 + data = length 217, hash 7D03A2A6 + sample 2: + time = 41000 + flags = 268435457 + data = length 328, hash BB4A36F0 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.3.dump b/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.3.dump new file mode 100644 index 0000000000..162d49f061 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.3.dump @@ -0,0 +1,36 @@ +seekMap: + isSeekable = true + duration = 58000 + getPosition(0) = [[timeUs=0, position=569]] + getPosition(1) = [[timeUs=0, position=569]] + getPosition(29000) = [[timeUs=0, position=569]] + getPosition(58000) = [[timeUs=0, position=569]] +numberOfTracks = 1 +track 1: + total output bytes = 828 + sample count = 3 + format 0: + id = 1 + sampleMimeType = audio/opus + maxInputSize = 5760 + channelCount = 1 + sampleRate = 48000 + selectionFlags = 1 + language = und + initializationData: + data = length 19, hash CB9E23BC + data = length 8, hash CA22068C + data = length 8, hash 79C07075 + sample 0: + time = 0 + flags = 1 + data = length 283, hash 686EA90 + sample 1: + time = 21000 + flags = 1 + data = length 217, hash 7D03A2A6 + sample 2: + time = 41000 + flags = 268435457 + data = length 328, hash BB4A36F0 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.unknown_length.dump new file mode 100644 index 0000000000..162d49f061 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mkv/sample_with_opus_audio.mkv.unknown_length.dump @@ -0,0 +1,36 @@ +seekMap: + isSeekable = true + duration = 58000 + getPosition(0) = [[timeUs=0, position=569]] + getPosition(1) = [[timeUs=0, position=569]] + getPosition(29000) = [[timeUs=0, position=569]] + getPosition(58000) = [[timeUs=0, position=569]] +numberOfTracks = 1 +track 1: + total output bytes = 828 + sample count = 3 + format 0: + id = 1 + sampleMimeType = audio/opus + maxInputSize = 5760 + channelCount = 1 + sampleRate = 48000 + selectionFlags = 1 + language = und + initializationData: + data = length 19, hash CB9E23BC + data = length 8, hash CA22068C + data = length 8, hash 79C07075 + sample 0: + time = 0 + flags = 1 + data = length 283, hash 686EA90 + sample 1: + time = 21000 + flags = 1 + data = length 217, hash 7D03A2A6 + sample 2: + time = 41000 + flags = 268435457 + data = length 328, hash BB4A36F0 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/media/mkv/sample_with_opus_audio.mkv b/libraries/test_data/src/test/assets/media/mkv/sample_with_opus_audio.mkv new file mode 100644 index 0000000000..c17923bb28 Binary files /dev/null and b/libraries/test_data/src/test/assets/media/mkv/sample_with_opus_audio.mkv differ