Commit 3a6a0375 by olly Committed by Oliver Woodman

DefaultAudioSink: Fix issue if last processor is not active

It's incorrect to use an AudioFormat returned from AudioProcessor.configure
unless the AudioProcessor is active.

Issue: #7134
PiperOrigin-RevId: 302674132
parent 9ed47165
...@@ -458,22 +458,21 @@ public final class DefaultAudioSink implements AudioSink { ...@@ -458,22 +458,21 @@ public final class DefaultAudioSink implements AudioSink {
if (processingEnabled) { if (processingEnabled) {
trimmingAudioProcessor.setTrimFrameCount(trimStartFrames, trimEndFrames); trimmingAudioProcessor.setTrimFrameCount(trimStartFrames, trimEndFrames);
channelMappingAudioProcessor.setChannelMap(outputChannels); channelMappingAudioProcessor.setChannelMap(outputChannels);
AudioProcessor.AudioFormat inputAudioFormat = AudioProcessor.AudioFormat outputFormat =
new AudioProcessor.AudioFormat(sampleRate, channelCount, encoding); new AudioProcessor.AudioFormat(sampleRate, channelCount, encoding);
AudioProcessor.AudioFormat outputAudioFormat = inputAudioFormat;
for (AudioProcessor audioProcessor : availableAudioProcessors) { for (AudioProcessor audioProcessor : availableAudioProcessors) {
try { try {
outputAudioFormat = audioProcessor.configure(inputAudioFormat); AudioProcessor.AudioFormat nextFormat = audioProcessor.configure(outputFormat);
if (audioProcessor.isActive()) {
outputFormat = nextFormat;
}
} catch (UnhandledAudioFormatException e) { } catch (UnhandledAudioFormatException e) {
throw new ConfigurationException(e); throw new ConfigurationException(e);
} }
if (audioProcessor.isActive()) {
inputAudioFormat = outputAudioFormat;
}
} }
sampleRate = outputAudioFormat.sampleRate; sampleRate = outputFormat.sampleRate;
channelCount = outputAudioFormat.channelCount; channelCount = outputFormat.channelCount;
encoding = outputAudioFormat.encoding; encoding = outputFormat.encoding;
} }
int outputChannelConfig = getChannelConfig(channelCount, isInputPcm); int outputChannelConfig = getChannelConfig(channelCount, isInputPcm);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment