From 147152817609dbbdda84b5fce6a3fbde3cf6365f Mon Sep 17 00:00:00 2001 From: samrobinson Date: Fri, 8 Dec 2023 06:34:18 -0800 Subject: [PATCH] Change AudioGraph #release to #reset, resetting internal state. PiperOrigin-RevId: 589113634 --- .../main/java/androidx/media3/transformer/AudioGraph.java | 8 ++++++-- .../java/androidx/media3/transformer/AudioGraphInput.java | 2 ++ .../androidx/media3/transformer/AudioSampleExporter.java | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/AudioGraph.java b/libraries/transformer/src/main/java/androidx/media3/transformer/AudioGraph.java index 4c9b03c522..a11e8c27cb 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/AudioGraph.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/AudioGraph.java @@ -124,13 +124,17 @@ import java.util.Objects; return currentOutput; } - /** Releases underlying resources, including clearing the inputs. */ - public void release() { + /** Resets the graph to an unconfigured state, releasing any underlying resources. */ + public void reset() { for (int i = 0; i < inputs.size(); i++) { inputs.valueAt(i).release(); } inputs.clear(); mixer.reset(); + + finishedInputs = 0; + currentOutput = EMPTY_BUFFER; + outputAudioFormat = AudioFormat.NOT_SET; } /** Returns whether the input has ended and all queued data has been output. */ diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/AudioGraphInput.java b/libraries/transformer/src/main/java/androidx/media3/transformer/AudioGraphInput.java index dc3045317c..7be7d0b9bc 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/AudioGraphInput.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/AudioGraphInput.java @@ -151,7 +151,9 @@ import java.util.concurrent.atomic.AtomicReference; return true; } + /** Releases any underlying resources. */ public void release() { + // TODO(b/303029174): Impl flush(), reset() & decide if a separate release() is still needed. audioProcessingPipeline.reset(); } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/AudioSampleExporter.java b/libraries/transformer/src/main/java/androidx/media3/transformer/AudioSampleExporter.java index 0f9c130c84..abcfa0deef 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/AudioSampleExporter.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/AudioSampleExporter.java @@ -112,7 +112,7 @@ import org.checkerframework.dataflow.qual.Pure; @Override public void release() { - audioGraph.release(); + audioGraph.reset(); encoder.release(); }