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.
This commit is contained in:
Max Kellermann 2008-09-11 07:50:20 +02:00
parent 420c879dd6
commit 85d952c58b
1 changed files with 7 additions and 1 deletions

View File

@ -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)