mirror of https://github.com/mpv-player/mpv
e60b8f181d
af_format is the old audio conversion filter. It could do all possible conversions supported by the audio chain. However, ever since the addition of af_lavrresample, most conversions are done by libav/swresample, and af_format is used as fallback. Separate out the fallback cases and remove af_format. af_convert24 does 24 bit <-> 32 bit conversions, while af_convertsignendian does sign and endian conversions. Maybe the way the conversions are split sounds a bit odd. But the former changes the size of the audio data, while the latter is fully in-place, so there's at least different buffer management. This requires a quite complicated algorithm to make sure all these "partial" conversion filters can actually get from one format to another. E.g. s24le->s32be always requires convertsignendian and convert24, but af.c has no idea what the intermediate format should be. So I added a graph search (trying every possible format and filter) to determine required format and filter. When I wrote this, it seemed this was still better than messing everything into af_lavrresample, but maybe this is overkill and I'll change my opinion. For now, it seems nice to get rid of af_format though. The AC3->IEC61937 conversion isn't supported anymore, but I don't think this is needed anywhere. Most AOs test all formats explicitly, or use the AF_FORMAT_IS_IEC61937() macro (which includes AC3). One positive consequence of this change is that conversions always include dithering (done by libav/swresample), instead of possibly going through af_format, which doesn't do anything fancy. Rename af_force to af_format. It's essentially compatible with command line uses of af_format. We retain a compatibility alias for af_force. |
||
---|---|---|
.. | ||
input | ||
lua | ||
timeline | ||
asxparser.c | ||
asxparser.h | ||
av_common.c | ||
av_common.h | ||
av_log.c | ||
av_log.h | ||
av_opts.c | ||
av_opts.h | ||
bstr.c | ||
bstr.h | ||
charset_conv.c | ||
charset_conv.h | ||
codecs.c | ||
codecs.h | ||
command.c | ||
command.h | ||
cpudetect.c | ||
cpudetect.h | ||
encode.h | ||
encode_lavc.c | ||
encode_lavc.h | ||
m_config.c | ||
m_config.h | ||
m_option.c | ||
m_option.h | ||
m_property.c | ||
m_property.h | ||
mp_common.c | ||
mp_common.h | ||
mp_core.h | ||
mp_lua.c | ||
mp_lua.h | ||
mp_memory_barrier.h | ||
mp_msg.c | ||
mp_msg.h | ||
mp_osd.h | ||
mp_ring.c | ||
mp_ring.h | ||
mp_talloc.h | ||
mplayer.c | ||
mpv_global.h | ||
options.c | ||
options.h | ||
parser-cfg.c | ||
parser-cfg.h | ||
parser-mpcmd.c | ||
parser-mpcmd.h | ||
path.c | ||
path.h | ||
playlist.c | ||
playlist.h | ||
playlist_parser.c | ||
playlist_parser.h | ||
resolve.h | ||
resolve_quvi.c | ||
resolve_quvi9.c | ||
screenshot.c | ||
screenshot.h | ||
version.c |