0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 20:03:10 +02:00
mpv/audio/filter
wm4 fa510bd00c af: prevent endless loop when removing filters due to spdif
This code removes filters which can not take spdif inout. This was made
so that PCM filters are transparently dropped in spdif mode.

This entered an endless loop with:

   --af=lavcac3enc:::2 --audio-channels=5.1

The forced number of output channels is incompatible with spdif. It's
trying to insert af_lavrresample as conversion filter to compensate for
it. Of course this doesn't work, which triggers the PCM filter removal.
Then it goes on normally - since the new state is exactly as before, it
will try the same thing again, forever.

Fix by reusing the retry counter, which is a very dumb but very
effective measure against these cases of filter negotiation failure. We
could try to be more clever (for example, if the removed filter is a
conversion filter, we can be sure this won't work, and error out
immediately). But better keep it simple and robust.
2015-10-26 15:51:26 +01:00
..
af_channels.c Update license headers 2015-04-13 12:10:01 +02:00
af_delay.c Update license headers 2015-04-13 12:10:01 +02:00
af_drc.c audio/filter: remove reentrancy flag 2015-09-20 14:44:44 +02:00
af_equalizer.c audio/filter: remove reentrancy flag 2015-09-20 14:44:44 +02:00
af_format.c audio/filters: use refcounted frames for some simple filters 2015-01-13 20:16:59 +01:00
af_lavcac3enc.c audio: remove unused legacy libavutil header 2015-08-07 02:41:39 +02:00
af_lavfi.c af_lavfi: implement af-metadata property 2015-09-11 23:04:02 +02:00
af_lavrresample.c af_lavrresample: fix unintended audio drift when setting playback speed 2015-10-14 18:51:12 +02:00
af_pan.c Update license headers 2015-04-13 12:10:01 +02:00
af_rubberband.c af_rubberband: actually fix deadlock 2015-02-12 10:15:12 +01:00
af_scaletempo.c Update license headers 2015-04-13 12:10:01 +02:00
af_volume.c audio/filter: remove reentrancy flag 2015-09-20 14:44:44 +02:00
af.c af: prevent endless loop when removing filters due to spdif 2015-10-26 15:51:26 +01:00
af.h audio/filter: remove reentrancy flag 2015-09-20 14:44:44 +02:00
equalizer.h Update license headers 2015-04-13 12:10:01 +02:00
tools.c af: move af_from_dB() function to af_volume.c 2015-06-23 15:11:23 +02:00