diff options
author | Anton Kindestam <antonki@kth.se> | 2018-02-21 16:41:15 +0100 |
---|---|---|
committer | Anton Kindestam <antonki@kth.se> | 2019-09-22 15:59:24 +0200 |
commit | d00f9b19c77fe8e44c3b7dcacb6a11fe13326c5c (patch) | |
tree | dcab87d0f660eb1cc0ac4d778b26521561780529 /TOOLS | |
parent | e2f96535f5f7ca390e334074f64f163db663b822 (diff) | |
download | mpv-d00f9b19c77fe8e44c3b7dcacb6a11fe13326c5c.tar.bz2 mpv-d00f9b19c77fe8e44c3b7dcacb6a11fe13326c5c.tar.xz |
draw_bmp: Fix for GBRP formats GBRP9 and up
First we shift the values up to the actual amount of bits in draw_ass,
so that they will be drawn correctly when using formats with more than
8 bpc. (draw_rgba is already correct w.r.t. RGB formats with 9 or more
bpc)
Then, in scale_sb_rgba, by setting the amount of bits per channel used
for planar RGB formats (formats are always planar at this point in
draw_bmp) to be the same as the source from 9 to 16 bpc (in effect all
the various GBRP formats) we manage to fit the special case that does
not require any conversion in chroma_up and chroma_down when handling
these formats (as long as the source itself is a planar format),
instead writing directly to the combined dst/src buffer. This in turn
works around a bug (incorrect colors) in libswscale when scaling
between GBRP formats with 9 or more bpc. Additionally this should be
more efficient, since we skip up- and down-conversion and temporary
buffers.
Diffstat (limited to 'TOOLS')
0 files changed, 0 insertions, 0 deletions