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(); }