From 85d952c58b4d135e5096c099d1e2e94fe75328fa Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 11 Sep 2008 07:50:20 +0200 Subject: output: copy reqAudioFormat to outAudioFormat only if not yet open If the output device is already open, it may have modified outAudioFormat; in this case, outAudioFormat is still valid, and does not need an overwrite. --- src/output_control.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/output_control.c b/src/output_control.c index 26558d3c4..0818a459b 100644 --- a/src/output_control.c +++ b/src/output_control.c @@ -34,7 +34,13 @@ int audio_output_open(struct audio_output *audioOutput, audioOutput->inAudioFormat = *audioFormat; if (audio_format_defined(&audioOutput->reqAudioFormat)) { - audioOutput->outAudioFormat = audioOutput->reqAudioFormat; + /* copy reqAudioFormat to outAudioFormat only if the + device is not yet open; if it is already open, + plugin->open() may have modified outAudioFormat, + and the value is already ok */ + if (!audioOutput->open) + audioOutput->outAudioFormat = + audioOutput->reqAudioFormat; } else { audioOutput->outAudioFormat = audioOutput->inAudioFormat; if (audioOutput->open) -- cgit v1.2.3