From c768e60bf263482686e8bdadc401edc1b72fea94 Mon Sep 17 00:00:00 2001 From: samrobinson Date: Tue, 6 Feb 2024 09:57:10 -0800 Subject: [PATCH] Clearer testing of isEnded state of AudioGraphInput. PiperOrigin-RevId: 604680924 --- .../transformer/AudioGraphInputTest.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/AudioGraphInputTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/AudioGraphInputTest.java index 1bd7647c59..8d8249f574 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/AudioGraphInputTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/AudioGraphInputTest.java @@ -107,6 +107,42 @@ public class AudioGraphInputTest { assertThat(audioGraphInput.getOutputAudioFormat()).isEqualTo(STEREO_44100); } + @Test + public void isEnded_whenInitialized_returnsFalse() throws Exception { + AudioGraphInput audioGraphInput = + new AudioGraphInput( + /* requestedOutputAudioFormat= */ AudioFormat.NOT_SET, + /* editedMediaItem= */ FAKE_ITEM, + /* inputFormat= */ getPcmFormat(MONO_44100)); + + assertThat(audioGraphInput.isEnded()).isFalse(); + } + + @Test + public void isEnded_withEndOfStreamQueued_returnsTrue() throws Exception { + AudioGraphInput audioGraphInput = + new AudioGraphInput( + /* requestedOutputAudioFormat= */ AudioFormat.NOT_SET, + /* editedMediaItem= */ FAKE_ITEM, + /* inputFormat= */ getPcmFormat(MONO_44100)); + + audioGraphInput.onMediaItemChanged( + /* editedMediaItem= */ FAKE_ITEM, + /* durationUs= */ C.TIME_UNSET, + /* decodedFormat= */ getPcmFormat(MONO_44100), + /* isLast= */ false); + + checkState(!audioGraphInput.getOutput().hasRemaining()); + assertThat(audioGraphInput.isEnded()).isFalse(); + + // Queue EOS. + audioGraphInput.getInputBuffer().setFlags(C.BUFFER_FLAG_END_OF_STREAM); + checkState(audioGraphInput.queueInputBuffer()); + + assertThat(audioGraphInput.getOutput().hasRemaining()).isFalse(); + assertThat(audioGraphInput.isEnded()).isTrue(); + } + @Test public void getOutput_withoutMediaItemChange_returnsEmptyBuffer() throws Exception { AudioGraphInput audioGraphInput =