diff --git a/libraries/decoder_flac/src/androidTest/java/androidx/media3/decoder/flac/FlacExtractorTest.java b/libraries/decoder_flac/src/androidTest/java/androidx/media3/decoder/flac/FlacExtractorTest.java index a614c3d8f3..9b48330a69 100644 --- a/libraries/decoder_flac/src/androidTest/java/androidx/media3/decoder/flac/FlacExtractorTest.java +++ b/libraries/decoder_flac/src/androidTest/java/androidx/media3/decoder/flac/FlacExtractorTest.java @@ -44,6 +44,14 @@ public class FlacExtractorTest { /* dumpFilesPrefix= */ "extractordumps/flac/bear_raw"); } + @Test + public void sample32bit() throws Exception { + ExtractorAsserts.assertAllBehaviors( + FlacExtractor::new, + /* file= */ "media/flac/bear_32bit.flac", + /* dumpFilesPrefix= */ "extractordumps/flac/bear_32bit_raw"); + } + @Test public void sampleWithId3HeaderAndId3Enabled() throws Exception { ExtractorAsserts.assertAllBehaviors( diff --git a/libraries/decoder_flac/src/androidTest/java/androidx/media3/decoder/flac/FlacPlaybackTest.java b/libraries/decoder_flac/src/androidTest/java/androidx/media3/decoder/flac/FlacPlaybackTest.java index 5061d3fd70..16354ec38e 100644 --- a/libraries/decoder_flac/src/androidTest/java/androidx/media3/decoder/flac/FlacPlaybackTest.java +++ b/libraries/decoder_flac/src/androidTest/java/androidx/media3/decoder/flac/FlacPlaybackTest.java @@ -48,6 +48,7 @@ public class FlacPlaybackTest { private static final String BEAR_FLAC_16BIT = "mka/bear-flac-16bit.mka"; private static final String BEAR_FLAC_24BIT = "mka/bear-flac-24bit.mka"; + private static final String BEAR_FLAC_32BIT = "mka/bear-flac-32bit.mka"; @Before public void setUp() { @@ -66,6 +67,11 @@ public class FlacPlaybackTest { playAndAssertAudioSinkInput(BEAR_FLAC_24BIT); } + @Test + public void test32BitPlayback() throws Exception { + playAndAssertAudioSinkInput(BEAR_FLAC_32BIT); + } + private static void playAndAssertAudioSinkInput(String fileName) throws Exception { CapturingAudioSink audioSink = new CapturingAudioSink( diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/MkaPlaybackTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/MkaPlaybackTest.java index 234296e799..65a58f3bdc 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/MkaPlaybackTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/MkaPlaybackTest.java @@ -41,6 +41,7 @@ public final class MkaPlaybackTest { return ImmutableList.of( "bear-flac-16bit.mka", "bear-flac-24bit.mka", + "bear-flac-32bit.mka", "bear-opus.mka", "bear-opus-negative-gain.mka"); } diff --git a/libraries/test_data/src/test/assets/audiosinkdumps/mka/bear-flac-32bit.mka.audiosink.dump b/libraries/test_data/src/test/assets/audiosinkdumps/mka/bear-flac-32bit.mka.audiosink.dump new file mode 100644 index 0000000000..419f62af20 --- /dev/null +++ b/libraries/test_data/src/test/assets/audiosinkdumps/mka/bear-flac-32bit.mka.audiosink.dump @@ -0,0 +1,94 @@ +AudioSink: + buffer count = 29 + discontinuity: + config: + pcmEncoding = 22 + channelCount = 2 + sampleRate = 48000 + buffer #0: + time = 1000000000000 + data = -746929509 + buffer #1: + time = 1000000096000 + data = 1843221663 + buffer #2: + time = 1000000192000 + data = -753315018 + buffer #3: + time = 1000000288000 + data = -987395536 + buffer #4: + time = 1000000384000 + data = -301290316 + buffer #5: + time = 1000000480000 + data = -1165200562 + buffer #6: + time = 1000000576000 + data = 650616491 + buffer #7: + time = 1000000672000 + data = -1758005883 + buffer #8: + time = 1000000768000 + data = -1749269438 + buffer #9: + time = 1000000864000 + data = -1167887824 + buffer #10: + time = 1000000960000 + data = -1159777940 + buffer #11: + time = 1000001056000 + data = 94231483 + buffer #12: + time = 1000001152000 + data = 1164961407 + buffer #13: + time = 1000001248000 + data = -667334254 + buffer #14: + time = 1000001344000 + data = 353133318 + buffer #15: + time = 1000001440000 + data = -979797234 + buffer #16: + time = 1000001536000 + data = -420363394 + buffer #17: + time = 1000001632000 + data = 55072236 + buffer #18: + time = 1000001728000 + data = 1205528859 + buffer #19: + time = 1000001824000 + data = 1645315121 + buffer #20: + time = 1000001920000 + data = -1077485570 + buffer #21: + time = 1000002016000 + data = 110538032 + buffer #22: + time = 1000002112000 + data = 902882525 + buffer #23: + time = 1000002208000 + data = -1559538454 + buffer #24: + time = 1000002304000 + data = -1297310517 + buffer #25: + time = 1000002400000 + data = 608958818 + buffer #26: + time = 1000002496000 + data = 402297267 + buffer #27: + time = 1000002592000 + data = -546536196 + buffer #28: + time = 1000002688000 + data = -1541360306 diff --git a/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.0.dump b/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.0.dump new file mode 100644 index 0000000000..18bfb4e8a3 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.0.dump @@ -0,0 +1,139 @@ +seekMap: + isSeekable = true + duration = 2741000 + getPosition(0) = [[timeUs=0, position=8286]] + getPosition(1) = [[timeUs=1, position=8286]] + getPosition(1370500) = [[timeUs=1370500, position=83950]] + getPosition(2741000) = [[timeUs=2741000, position=163626]] +numberOfTracks = 1 +track 0: + total output bytes = 1052544 + sample count = 29 + track duration = 2741000 + format 0: + averageBitrate = 3072000 + peakBitrate = 3072000 + containerMimeType = audio/flac + sampleMimeType = audio/raw + maxInputSize = 36864 + channelCount = 2 + sampleRate = 48000 + pcmEncoding = 22 + metadata = entries=[VC: ENCODER=Lavf61.7.100] + sample 0: + time = 0 + flags = 1 + data = length 36864, hash BD8DA71B + sample 1: + time = 96000 + flags = 1 + data = length 36864, hash 421F769F + sample 2: + time = 192000 + flags = 1 + data = length 36864, hash AD186736 + sample 3: + time = 288000 + flags = 1 + data = length 36864, hash 4D965FB0 + sample 4: + time = 384000 + flags = 1 + data = length 36864, hash AE3AFFB4 + sample 5: + time = 480000 + flags = 1 + data = length 36864, hash B442274E + sample 6: + time = 576000 + flags = 1 + data = length 36864, hash 9E8889EB + sample 7: + time = 672000 + flags = 1 + data = length 36864, hash CC9ED245 + sample 8: + time = 768000 + flags = 1 + data = length 36864, hash CDCA3B02 + sample 9: + time = 864000 + flags = 1 + data = length 36864, hash 3E7EF3F0 + sample 10: + time = 960000 + flags = 1 + data = length 36864, hash AABD286C + sample 11: + time = 1056000 + flags = 1 + data = length 36864, hash 8848FDFB + sample 12: + time = 1152000 + flags = 1 + data = length 36864, hash FA880EFF + sample 13: + time = 1248000 + flags = 1 + data = length 36864, hash 597D7692 + sample 14: + time = 1344000 + flags = 1 + data = length 36864, hash BEFF9B86 + sample 15: + time = 1440000 + flags = 1 + data = length 36864, hash 1D2B3E4E + sample 16: + time = 1536000 + flags = 1 + data = length 36864, hash 33A272FE + sample 17: + time = 1632000 + flags = 1 + data = length 36864, hash 756B9E6C + sample 18: + time = 1728000 + flags = 1 + data = length 36864, hash A7C3DC9B + sample 19: + time = 1824000 + flags = 1 + data = length 36864, hash B4C9DEB1 + sample 20: + time = 1920000 + flags = 1 + data = length 36864, hash D2F72F7E + sample 21: + time = 2016000 + flags = 1 + data = length 36864, hash 93F6F570 + sample 22: + time = 2112000 + flags = 1 + data = length 36864, hash D49823DD + sample 23: + time = 2208000 + flags = 1 + data = length 36864, hash 129FF62A + sample 24: + time = 2304000 + flags = 1 + data = length 36864, hash AC17044B + sample 25: + time = 2400000 + flags = 1 + data = length 36864, hash 92429562 + sample 26: + time = 2496000 + flags = 1 + data = length 36864, hash EC7AE33 + sample 27: + time = 2592000 + flags = 1 + data = length 36864, hash 98FEA2FC + sample 28: + time = 2688000 + flags = 1 + data = length 20352, hash 89878FCE +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.1.dump b/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.1.dump new file mode 100644 index 0000000000..df1d7723a2 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.1.dump @@ -0,0 +1,103 @@ +seekMap: + isSeekable = true + duration = 2741000 + getPosition(0) = [[timeUs=0, position=8286]] + getPosition(1) = [[timeUs=1, position=8286]] + getPosition(1370500) = [[timeUs=1370500, position=83950]] + getPosition(2741000) = [[timeUs=2741000, position=163626]] +numberOfTracks = 1 +track 0: + total output bytes = 720768 + sample count = 20 + track duration = 2741000 + format 0: + averageBitrate = 3072000 + peakBitrate = 3072000 + containerMimeType = audio/flac + sampleMimeType = audio/raw + maxInputSize = 36864 + channelCount = 2 + sampleRate = 48000 + pcmEncoding = 22 + metadata = entries=[VC: ENCODER=Lavf61.7.100] + sample 0: + time = 864000 + flags = 1 + data = length 36864, hash 3E7EF3F0 + sample 1: + time = 960000 + flags = 1 + data = length 36864, hash AABD286C + sample 2: + time = 1056000 + flags = 1 + data = length 36864, hash 8848FDFB + sample 3: + time = 1152000 + flags = 1 + data = length 36864, hash FA880EFF + sample 4: + time = 1248000 + flags = 1 + data = length 36864, hash 597D7692 + sample 5: + time = 1344000 + flags = 1 + data = length 36864, hash BEFF9B86 + sample 6: + time = 1440000 + flags = 1 + data = length 36864, hash 1D2B3E4E + sample 7: + time = 1536000 + flags = 1 + data = length 36864, hash 33A272FE + sample 8: + time = 1632000 + flags = 1 + data = length 36864, hash 756B9E6C + sample 9: + time = 1728000 + flags = 1 + data = length 36864, hash A7C3DC9B + sample 10: + time = 1824000 + flags = 1 + data = length 36864, hash B4C9DEB1 + sample 11: + time = 1920000 + flags = 1 + data = length 36864, hash D2F72F7E + sample 12: + time = 2016000 + flags = 1 + data = length 36864, hash 93F6F570 + sample 13: + time = 2112000 + flags = 1 + data = length 36864, hash D49823DD + sample 14: + time = 2208000 + flags = 1 + data = length 36864, hash 129FF62A + sample 15: + time = 2304000 + flags = 1 + data = length 36864, hash AC17044B + sample 16: + time = 2400000 + flags = 1 + data = length 36864, hash 92429562 + sample 17: + time = 2496000 + flags = 1 + data = length 36864, hash EC7AE33 + sample 18: + time = 2592000 + flags = 1 + data = length 36864, hash 98FEA2FC + sample 19: + time = 2688000 + flags = 1 + data = length 20352, hash 89878FCE +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.2.dump b/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.2.dump new file mode 100644 index 0000000000..20ab43c4e7 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.2.dump @@ -0,0 +1,63 @@ +seekMap: + isSeekable = true + duration = 2741000 + getPosition(0) = [[timeUs=0, position=8286]] + getPosition(1) = [[timeUs=1, position=8286]] + getPosition(1370500) = [[timeUs=1370500, position=83950]] + getPosition(2741000) = [[timeUs=2741000, position=163626]] +numberOfTracks = 1 +track 0: + total output bytes = 352128 + sample count = 10 + track duration = 2741000 + format 0: + averageBitrate = 3072000 + peakBitrate = 3072000 + containerMimeType = audio/flac + sampleMimeType = audio/raw + maxInputSize = 36864 + channelCount = 2 + sampleRate = 48000 + pcmEncoding = 22 + metadata = entries=[VC: ENCODER=Lavf61.7.100] + sample 0: + time = 1824000 + flags = 1 + data = length 36864, hash B4C9DEB1 + sample 1: + time = 1920000 + flags = 1 + data = length 36864, hash D2F72F7E + sample 2: + time = 2016000 + flags = 1 + data = length 36864, hash 93F6F570 + sample 3: + time = 2112000 + flags = 1 + data = length 36864, hash D49823DD + sample 4: + time = 2208000 + flags = 1 + data = length 36864, hash 129FF62A + sample 5: + time = 2304000 + flags = 1 + data = length 36864, hash AC17044B + sample 6: + time = 2400000 + flags = 1 + data = length 36864, hash 92429562 + sample 7: + time = 2496000 + flags = 1 + data = length 36864, hash EC7AE33 + sample 8: + time = 2592000 + flags = 1 + data = length 36864, hash 98FEA2FC + sample 9: + time = 2688000 + flags = 1 + data = length 20352, hash 89878FCE +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.3.dump b/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.3.dump new file mode 100644 index 0000000000..4aeb7ac443 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.3.dump @@ -0,0 +1,27 @@ +seekMap: + isSeekable = true + duration = 2741000 + getPosition(0) = [[timeUs=0, position=8286]] + getPosition(1) = [[timeUs=1, position=8286]] + getPosition(1370500) = [[timeUs=1370500, position=83950]] + getPosition(2741000) = [[timeUs=2741000, position=163626]] +numberOfTracks = 1 +track 0: + total output bytes = 20352 + sample count = 1 + track duration = 2741000 + format 0: + averageBitrate = 3072000 + peakBitrate = 3072000 + containerMimeType = audio/flac + sampleMimeType = audio/raw + maxInputSize = 36864 + channelCount = 2 + sampleRate = 48000 + pcmEncoding = 22 + metadata = entries=[VC: ENCODER=Lavf61.7.100] + sample 0: + time = 2688000 + flags = 1 + data = length 20352, hash 89878FCE +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.unknown_length.dump new file mode 100644 index 0000000000..552d59bea2 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/flac/bear_32bit_raw.unknown_length.dump @@ -0,0 +1,136 @@ +seekMap: + isSeekable = false + duration = 2741000 + getPosition(0) = [[timeUs=0, position=0]] +numberOfTracks = 1 +track 0: + total output bytes = 1052544 + sample count = 29 + track duration = 2741000 + format 0: + averageBitrate = 3072000 + peakBitrate = 3072000 + containerMimeType = audio/flac + sampleMimeType = audio/raw + maxInputSize = 36864 + channelCount = 2 + sampleRate = 48000 + pcmEncoding = 22 + metadata = entries=[VC: ENCODER=Lavf61.7.100] + sample 0: + time = 0 + flags = 1 + data = length 36864, hash BD8DA71B + sample 1: + time = 96000 + flags = 1 + data = length 36864, hash 421F769F + sample 2: + time = 192000 + flags = 1 + data = length 36864, hash AD186736 + sample 3: + time = 288000 + flags = 1 + data = length 36864, hash 4D965FB0 + sample 4: + time = 384000 + flags = 1 + data = length 36864, hash AE3AFFB4 + sample 5: + time = 480000 + flags = 1 + data = length 36864, hash B442274E + sample 6: + time = 576000 + flags = 1 + data = length 36864, hash 9E8889EB + sample 7: + time = 672000 + flags = 1 + data = length 36864, hash CC9ED245 + sample 8: + time = 768000 + flags = 1 + data = length 36864, hash CDCA3B02 + sample 9: + time = 864000 + flags = 1 + data = length 36864, hash 3E7EF3F0 + sample 10: + time = 960000 + flags = 1 + data = length 36864, hash AABD286C + sample 11: + time = 1056000 + flags = 1 + data = length 36864, hash 8848FDFB + sample 12: + time = 1152000 + flags = 1 + data = length 36864, hash FA880EFF + sample 13: + time = 1248000 + flags = 1 + data = length 36864, hash 597D7692 + sample 14: + time = 1344000 + flags = 1 + data = length 36864, hash BEFF9B86 + sample 15: + time = 1440000 + flags = 1 + data = length 36864, hash 1D2B3E4E + sample 16: + time = 1536000 + flags = 1 + data = length 36864, hash 33A272FE + sample 17: + time = 1632000 + flags = 1 + data = length 36864, hash 756B9E6C + sample 18: + time = 1728000 + flags = 1 + data = length 36864, hash A7C3DC9B + sample 19: + time = 1824000 + flags = 1 + data = length 36864, hash B4C9DEB1 + sample 20: + time = 1920000 + flags = 1 + data = length 36864, hash D2F72F7E + sample 21: + time = 2016000 + flags = 1 + data = length 36864, hash 93F6F570 + sample 22: + time = 2112000 + flags = 1 + data = length 36864, hash D49823DD + sample 23: + time = 2208000 + flags = 1 + data = length 36864, hash 129FF62A + sample 24: + time = 2304000 + flags = 1 + data = length 36864, hash AC17044B + sample 25: + time = 2400000 + flags = 1 + data = length 36864, hash 92429562 + sample 26: + time = 2496000 + flags = 1 + data = length 36864, hash EC7AE33 + sample 27: + time = 2592000 + flags = 1 + data = length 36864, hash 98FEA2FC + sample 28: + time = 2688000 + flags = 1 + data = length 20352, hash 89878FCE +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/media/flac/bear_32bit.flac b/libraries/test_data/src/test/assets/media/flac/bear_32bit.flac new file mode 100644 index 0000000000..4d8d931543 Binary files /dev/null and b/libraries/test_data/src/test/assets/media/flac/bear_32bit.flac differ diff --git a/libraries/test_data/src/test/assets/media/mka/bear-flac-32bit.mka b/libraries/test_data/src/test/assets/media/mka/bear-flac-32bit.mka new file mode 100644 index 0000000000..024562edff Binary files /dev/null and b/libraries/test_data/src/test/assets/media/mka/bear-flac-32bit.mka differ diff --git a/libraries/test_data/src/test/assets/playbackdumps/mka/bear-flac-32bit.mka.dump b/libraries/test_data/src/test/assets/playbackdumps/mka/bear-flac-32bit.mka.dump new file mode 100644 index 0000000000..eb718550a1 --- /dev/null +++ b/libraries/test_data/src/test/assets/playbackdumps/mka/bear-flac-32bit.mka.dump @@ -0,0 +1,305 @@ +MediaCodecAdapter (exotest.audio.flac): + inputBuffers: + count = 30 + input buffer #0: + timeUs = 1000000000000 + contents = length 5806, hash E8370E2C + input buffer #1: + timeUs = 1000000096000 + contents = length 5831, hash 4F0743B0 + input buffer #2: + timeUs = 1000000192000 + contents = length 5901, hash D725EF12 + input buffer #3: + timeUs = 1000000288000 + contents = length 5731, hash 14B1EFE + input buffer #4: + timeUs = 1000000384000 + contents = length 5924, hash 481A7FC1 + input buffer #5: + timeUs = 1000000480000 + contents = length 5900, hash 4D715F5C + input buffer #6: + timeUs = 1000000576000 + contents = length 5977, hash 59E98D91 + input buffer #7: + timeUs = 1000000672000 + contents = length 5888, hash 9B855417 + input buffer #8: + timeUs = 1000000768000 + contents = length 5880, hash F853FBB8 + input buffer #9: + timeUs = 1000000864000 + contents = length 5829, hash BFD59D6F + input buffer #10: + timeUs = 1000000960000 + contents = length 5908, hash B38E101B + input buffer #11: + timeUs = 1000001056000 + contents = length 6223, hash BD01CA3C + input buffer #12: + timeUs = 1000001152000 + contents = length 6040, hash ABBAE87B + input buffer #13: + timeUs = 1000001248000 + contents = length 5974, hash 9A589524 + input buffer #14: + timeUs = 1000001344000 + contents = length 6466, hash 38D2EF0A + input buffer #15: + timeUs = 1000001440000 + contents = length 6234, hash 32D84C24 + input buffer #16: + timeUs = 1000001536000 + contents = length 5959, hash 8638233C + input buffer #17: + timeUs = 1000001632000 + contents = length 6063, hash 5E21728E + input buffer #18: + timeUs = 1000001728000 + contents = length 5935, hash AFB43AE0 + input buffer #19: + timeUs = 1000001824000 + contents = length 5822, hash 21F8ABEF + input buffer #20: + timeUs = 1000001920000 + contents = length 5927, hash 3FDE7E9E + input buffer #21: + timeUs = 1000002016000 + contents = length 6030, hash 9AC6FD0E + input buffer #22: + timeUs = 1000002112000 + contents = length 5926, hash A3C067A1 + input buffer #23: + timeUs = 1000002208000 + contents = length 6019, hash BDA32275 + input buffer #24: + timeUs = 1000002304000 + contents = length 5979, hash CFF22F6E + input buffer #25: + timeUs = 1000002400000 + contents = length 5976, hash D185E6C5 + input buffer #26: + timeUs = 1000002496000 + contents = length 6023, hash 9E1F037B + input buffer #27: + timeUs = 1000002592000 + contents = length 5012, hash 2ACC9CC4 + input buffer #28: + timeUs = 1000002688000 + contents = length 1558, hash 94FFBE4D + input buffer #29: + timeUs = 0 + flags = 4 + contents = length 0, hash 1 + outputBuffers: + count = 29 + output buffer #0: + timeUs = 1000000000000 + size = 0 + rendered = false + output buffer #1: + timeUs = 1000000096000 + size = 0 + rendered = false + output buffer #2: + timeUs = 1000000192000 + size = 0 + rendered = false + output buffer #3: + timeUs = 1000000288000 + size = 0 + rendered = false + output buffer #4: + timeUs = 1000000384000 + size = 0 + rendered = false + output buffer #5: + timeUs = 1000000480000 + size = 0 + rendered = false + output buffer #6: + timeUs = 1000000576000 + size = 0 + rendered = false + output buffer #7: + timeUs = 1000000672000 + size = 0 + rendered = false + output buffer #8: + timeUs = 1000000768000 + size = 0 + rendered = false + output buffer #9: + timeUs = 1000000864000 + size = 0 + rendered = false + output buffer #10: + timeUs = 1000000960000 + size = 0 + rendered = false + output buffer #11: + timeUs = 1000001056000 + size = 0 + rendered = false + output buffer #12: + timeUs = 1000001152000 + size = 0 + rendered = false + output buffer #13: + timeUs = 1000001248000 + size = 0 + rendered = false + output buffer #14: + timeUs = 1000001344000 + size = 0 + rendered = false + output buffer #15: + timeUs = 1000001440000 + size = 0 + rendered = false + output buffer #16: + timeUs = 1000001536000 + size = 0 + rendered = false + output buffer #17: + timeUs = 1000001632000 + size = 0 + rendered = false + output buffer #18: + timeUs = 1000001728000 + size = 0 + rendered = false + output buffer #19: + timeUs = 1000001824000 + size = 0 + rendered = false + output buffer #20: + timeUs = 1000001920000 + size = 0 + rendered = false + output buffer #21: + timeUs = 1000002016000 + size = 0 + rendered = false + output buffer #22: + timeUs = 1000002112000 + size = 0 + rendered = false + output buffer #23: + timeUs = 1000002208000 + size = 0 + rendered = false + output buffer #24: + timeUs = 1000002304000 + size = 0 + rendered = false + output buffer #25: + timeUs = 1000002400000 + size = 0 + rendered = false + output buffer #26: + timeUs = 1000002496000 + size = 0 + rendered = false + output buffer #27: + timeUs = 1000002592000 + size = 0 + rendered = false + output buffer #28: + timeUs = 1000002688000 + size = 0 + rendered = false +AudioSink: + buffer count = 29 + config: + pcmEncoding = 2 + channelCount = 2 + sampleRate = 48000 + buffer #0: + time = 1000000000000 + data = 1 + buffer #1: + time = 1000000096000 + data = 1 + buffer #2: + time = 1000000192000 + data = 1 + buffer #3: + time = 1000000288000 + data = 1 + buffer #4: + time = 1000000384000 + data = 1 + buffer #5: + time = 1000000480000 + data = 1 + buffer #6: + time = 1000000576000 + data = 1 + buffer #7: + time = 1000000672000 + data = 1 + buffer #8: + time = 1000000768000 + data = 1 + buffer #9: + time = 1000000864000 + data = 1 + buffer #10: + time = 1000000960000 + data = 1 + buffer #11: + time = 1000001056000 + data = 1 + buffer #12: + time = 1000001152000 + data = 1 + buffer #13: + time = 1000001248000 + data = 1 + buffer #14: + time = 1000001344000 + data = 1 + buffer #15: + time = 1000001440000 + data = 1 + buffer #16: + time = 1000001536000 + data = 1 + buffer #17: + time = 1000001632000 + data = 1 + buffer #18: + time = 1000001728000 + data = 1 + buffer #19: + time = 1000001824000 + data = 1 + buffer #20: + time = 1000001920000 + data = 1 + buffer #21: + time = 1000002016000 + data = 1 + buffer #22: + time = 1000002112000 + data = 1 + buffer #23: + time = 1000002208000 + data = 1 + buffer #24: + time = 1000002304000 + data = 1 + buffer #25: + time = 1000002400000 + data = 1 + buffer #26: + time = 1000002496000 + data = 1 + buffer #27: + time = 1000002592000 + data = 1 + buffer #28: + time = 1000002688000 + data = 1