diff options
author | wm4 <wm4@nowhere> | 2015-01-21 18:33:47 +0100 |
---|---|---|
committer | Diogo Franco (Kovensky) <diogomfranco@gmail.com> | 2015-01-25 17:00:21 +0900 |
commit | d855be5ec1615e77a48ee56f987147890459de45 (patch) | |
tree | 901f874a5c9816e62c7d5f55e1fd4098baaa01ea /waftools/syms.py | |
parent | 141728832bc3e3241592318706e1420490e749d9 (diff) | |
download | mpv-d855be5ec1615e77a48ee56f987147890459de45.tar.bz2 mpv-d855be5ec1615e77a48ee56f987147890459de45.tar.xz |
vf_scale: replace ancient fallback image format selection
If video output and VO don't support the same format, a conversion
filter needs to be insert. Since a VO can support multiple formats, and
the filter chain also can deal with multiple formats, you basically have
to pick from a huge matrix of possible conversions.
The old MPlayer code had a quite naive algorithm: it first checked
whether any conversion from the list of preferred conversions matched,
and if not, it was falling back on checking a hardcoded list of output
formats (more or less sorted by quality). This had some unintended side-
effects, like not using obvious "replacement" formats, selecting the
wrong colorspace, selecting a bit depth that is too high or too low, and
more.
Use avcodec_find_best_pix_fmt_of_list() provided by FFmpeg instead. This
function was made for this purpose, and should select the "best" format.
Libav provides a similar function, but with a different name - there is
a function with the same name in FFmpeg, but it has different semantics
(I'm not sure if Libav or FFmpeg fucked up here).
This also removes handling of VFCAP_CSP_SUPPORTED vs.
VFCAP_CSP_SUPPORTED_BY_HW, which has no meaning anymore, except possibly
for filter chains with multiple scale filters.
Fixes #1494.
Diffstat (limited to 'waftools/syms.py')
0 files changed, 0 insertions, 0 deletions