mpv/libaf
wm4 8a6b0b813a af: fix crash when trying to use volume controls with AC3 pass-through
Changing the volume when softvol is enabled or if the audio output driver
doesn't support volume controls causes insertion of the "volume" filter.
This fails with AC3. Since the filter wasn't removed after that, and the
filter chain was in a bogus state, random crashes occured past this
point.

Fix it by reinitializing the filter chain completely on failure. Volume
controls simply won't work. (This can't be fixed, because AC3 is a
compressed format, and would require additional decoding/encoding passes
in order to support arbitrary volume changes.)

This also affects balance controls.
2012-03-09 20:48:54 +02:00
..
af.c af: fix crash when trying to use volume controls with AC3 pass-through 2012-03-09 20:48:54 +02:00
af.h libaf: Make af_reinit "public", to allow using it in future patches 2010-11-02 04:18:37 +02:00
af_bs2b.c Cosmetics for r29244 to follow K&R style closely. 2009-05-03 21:52:41 +00:00
af_center.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_channels.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
af_comp.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_delay.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_dummy.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_equalizer.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_export.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_extrastereo.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_format.c audio: clamp sample values in float->int format conversions 2011-05-04 17:25:11 +03:00
af_format.h Add support for distinguishing between little- and big-endian SPDIF AC3 2010-01-11 20:27:52 +00:00
af_format_alaw.h Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
af_format_ulaw.h Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
af_gate.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_hrtf.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_hrtf.h Replace informal license notices by standard license header 2009-01-05 12:41:40 +00:00
af_karaoke.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_ladspa.c cleanup: avoid various GCC warnings 2011-04-20 04:22:53 +03:00
af_lavcac3enc.c build: switch to libavutil bswap.h and intreadwrite.h 2012-02-01 22:46:27 +02:00
af_lavcresample.c cleanup: avoid various GCC warnings 2011-04-20 04:22:53 +03:00
af_pan.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_resample.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_resample_template.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
af_scaletempo.c Delete things related to old translation system 2010-03-10 03:47:14 +02:00
af_sinesuppress.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_stats.c af_stats: Some fixes to the new filter 2009-02-21 22:07:39 +00:00
af_sub.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_surround.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_sweep.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_tools.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
af_volnorm.c cleanup: remove NULL checks before free() all over the code 2010-11-14 13:11:20 +02:00
af_volume.c af_volume: do not change data when volume is 1 2012-01-16 22:40:14 +02:00
control.h Change libaf control ordering to make the controls unique again, (AF_CONTROL_PAN_BALANCE vs. 2009-09-26 06:41:09 +00:00
dsp.h Replace informal license notices by standard license header 2009-01-05 12:41:40 +00:00
equalizer.h Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
filter.c cosmetics: Remove pointless empty lines at EOF. 2010-02-20 21:02:49 +00:00
filter.h Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
format.c cleanup: silence most of the clang warnings 2011-07-09 04:23:24 +03:00
reorder_ch.c Fix mangling of 24-bit audio during channel reorder. 2009-11-28 18:23:26 +00:00
reorder_ch.h Add support for 8 channel audio. 2009-11-10 00:45:19 +00:00
window.c cosmetics: Remove pointless empty lines at EOF. 2010-02-20 21:02:49 +00:00
window.h Replace informal license notices by standard license header 2009-01-05 12:41:40 +00:00