mirror of
https://github.com/mpv-player/mpv.git
synced 2024-09-20 20:03:10 +02:00
fa510bd00c
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. |
||
---|---|---|
.. | ||
af_channels.c | ||
af_delay.c | ||
af_drc.c | ||
af_equalizer.c | ||
af_format.c | ||
af_lavcac3enc.c | ||
af_lavfi.c | ||
af_lavrresample.c | ||
af_pan.c | ||
af_rubberband.c | ||
af_scaletempo.c | ||
af_volume.c | ||
af.c | ||
af.h | ||
equalizer.h | ||
tools.c |