mirror of
https://github.com/samsonjs/media.git
synced 2026-03-29 10:05:48 +00:00
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
This commit is contained in:
parent
54c608481b
commit
ddc98334e0
1 changed files with 8 additions and 9 deletions
|
|
@ -437,22 +437,21 @@ public final class DefaultAudioSink implements AudioSink {
|
|||
if (processingEnabled) {
|
||||
trimmingAudioProcessor.setTrimFrameCount(trimStartFrames, trimEndFrames);
|
||||
channelMappingAudioProcessor.setChannelMap(outputChannels);
|
||||
AudioProcessor.AudioFormat inputAudioFormat =
|
||||
AudioProcessor.AudioFormat outputFormat =
|
||||
new AudioProcessor.AudioFormat(sampleRate, channelCount, encoding);
|
||||
AudioProcessor.AudioFormat outputAudioFormat = inputAudioFormat;
|
||||
for (AudioProcessor audioProcessor : availableAudioProcessors) {
|
||||
try {
|
||||
outputAudioFormat = audioProcessor.configure(inputAudioFormat);
|
||||
AudioProcessor.AudioFormat nextFormat = audioProcessor.configure(outputFormat);
|
||||
if (audioProcessor.isActive()) {
|
||||
outputFormat = nextFormat;
|
||||
}
|
||||
} catch (UnhandledAudioFormatException e) {
|
||||
throw new ConfigurationException(e);
|
||||
}
|
||||
if (audioProcessor.isActive()) {
|
||||
inputAudioFormat = outputAudioFormat;
|
||||
}
|
||||
}
|
||||
sampleRate = outputAudioFormat.sampleRate;
|
||||
channelCount = outputAudioFormat.channelCount;
|
||||
encoding = outputAudioFormat.encoding;
|
||||
sampleRate = outputFormat.sampleRate;
|
||||
channelCount = outputFormat.channelCount;
|
||||
encoding = outputFormat.encoding;
|
||||
}
|
||||
|
||||
int outputChannelConfig = getChannelConfig(channelCount, isInputPcm);
|
||||
|
|
|
|||
Loading…
Reference in a new issue