diff options
author | wm4 <wm4@nowhere> | 2013-05-25 15:07:05 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-05-26 16:44:18 +0200 |
commit | 3546188a41aa8c231e563ac89af68edd2798323b (patch) | |
tree | 76729cb525bedfd28d7401c8e1b2e3715452079f /core/subopt-helper.c | |
parent | 8db90e18d3e5bb524a1a611f6dd03ba78f315552 (diff) | |
download | mpv-3546188a41aa8c231e563ac89af68edd2798323b.tar.bz2 mpv-3546188a41aa8c231e563ac89af68edd2798323b.tar.xz |
ao_alsa: always unset ALSA error handler, cleanup on init error
The ALSA device was not closed when initialization failed.
The ALSA error handler (set with snd_lib_error_set_handler()) was not
unset when closing ao_alsa. If this is not done, the handler will still
be called when other libraries using ALSA cause errors, even though
ao_alsa was long closed. Since these messages were prefixed with
"[AO_ALSA]", they were misleading and implying ao_alsa was still used.
For some reason, our error handler is still called even after doing
snd_lib_error_set_handler(NULL), which should be impossible. Checking
with the debuggers, inserting printf(), as well as the alsa-lib source
code all suggest our error handler should not be called, but it still
happens. It's a complete mystery.
Diffstat (limited to 'core/subopt-helper.c')
0 files changed, 0 insertions, 0 deletions