summaryrefslogtreecommitdiffstats
path: root/audio/filter/af_format.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-03-23 13:02:59 +0100
committerwm4 <wm4@nowhere>2013-04-13 04:21:27 +0200
commit5a958921a738f2cd928f8339872b74a3c299ff0e (patch)
tree751da3be0e1b48f987cc3f38d30f381b34e38ee6 /audio/filter/af_format.c
parent0a136ece5aa6c3004cc6e7b778f889fb6aa82633 (diff)
downloadmpv-5a958921a738f2cd928f8339872b74a3c299ff0e.tar.bz2
mpv-5a958921a738f2cd928f8339872b74a3c299ff0e.tar.xz
af: remove automatically inserted filters on full reinit
Make sure automatically inserted filters are removed on full reinit (they are re-added later if they are really needed). Automatically inserted filters were never explicitly removed, instead, it was expected that redundant conversion filters detach themselves. This didn't work if there were several chained format conversion filters, e.g. s16le->floatle->s16le, which could result from repeated filter insertion and removal. (format filters detach only if input format and output format are the same.) Further, the dummy filter (which exists only because af.c can't handle an empty filter chain for some reason) could introduce bad conversions due to how the format negotiation works. Change the code so that the dummy filter never takes part on format negotiation. (It would be better to fix format negotiation, but that would be much more complicated and would involving fixing all filters.) Simplify af_reinit() and remove the start audio filter parameter. This means format negotiation and filter initialization is run more often, but should be harmless.
Diffstat (limited to 'audio/filter/af_format.c')
0 files changed, 0 insertions, 0 deletions