summaryrefslogtreecommitdiffstats
path: root/core/subopt-helper.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-05-25 15:07:05 +0200
committerwm4 <wm4@nowhere>2013-05-26 16:44:18 +0200
commit3546188a41aa8c231e563ac89af68edd2798323b (patch)
tree76729cb525bedfd28d7401c8e1b2e3715452079f /core/subopt-helper.c
parent8db90e18d3e5bb524a1a611f6dd03ba78f315552 (diff)
downloadmpv-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