diff options
author | Max Kellermann <max@duempel.org> | 2009-03-20 16:21:49 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-03-20 16:21:49 +0100 |
commit | 3d202e4609ab2ed69f8d906d1af0b273fe5025b3 (patch) | |
tree | ec842551ef6b0bb898132a165402384dd227894b | |
parent | e6c753a474bcf1d81127f74762f8b7f913dd3160 (diff) | |
download | mpd-3d202e4609ab2ed69f8d906d1af0b273fe5025b3.tar.gz mpd-3d202e4609ab2ed69f8d906d1af0b273fe5025b3.tar.xz mpd-3d202e4609ab2ed69f8d906d1af0b273fe5025b3.zip |
output_control: close earlier on format mismatch
To prevent a race condition, close the output thread before assigning
the new audio format.
-rw-r--r-- | src/output_control.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/output_control.c b/src/output_control.c index 9a240ffe4..78800794f 100644 --- a/src/output_control.c +++ b/src/output_control.c @@ -79,13 +79,13 @@ audio_output_open(struct audio_output *ao, ao->chunk = NULL; if (!ao->config_audio_format) { + if (ao->open) + audio_output_close(ao); + /* no audio format is configured: copy in->out, let the output's open() method determine the effective out_audio_format */ ao->out_audio_format = ao->in_audio_format; - - if (ao->open) - audio_output_close(ao); } ao->pipe = mp; |