mirror of
https://github.com/mpv-player/mpv.git
synced 2025-12-28 05:33:14 +00:00
vo_opengl: handle grayscale input better, add YA16 support
Simply clamp off the U/V components in the colormatrix, instead of doing something special in the shader. Also, since YA8/YA16 gave a plane_bits value of 16/32, and a colormatrix calculation overflowed with 32, add a component_bits field to the image format descriptor, which for YA8/YA16 returns 8/16 (the wrong value had no bad consequences otherwise).
This commit is contained in:
@@ -82,6 +82,7 @@ struct mp_imgfmt_desc {
|
||||
int8_t bytes[MP_MAX_PLANES]; // bytes per pixel (MP_IMGFLAG_BYTE_ALIGNED)
|
||||
int8_t bpp[MP_MAX_PLANES]; // bits per pixel
|
||||
int8_t plane_bits; // number of bits in use for plane 0
|
||||
int8_t component_bits; // number of bits per component (0 if uneven)
|
||||
// chroma shifts per plane (provided for convenience with planar formats)
|
||||
int8_t xs[MP_MAX_PLANES];
|
||||
int8_t ys[MP_MAX_PLANES];
|
||||
@@ -135,6 +136,7 @@ enum mp_imgfmt {
|
||||
|
||||
// Gray with alpha (packed)
|
||||
IMGFMT_YA8,
|
||||
IMGFMT_YA16,
|
||||
|
||||
// Packed YUV formats (components are byte-accessed)
|
||||
IMGFMT_YUYV, // Y0 U Y1 V
|
||||
|
||||
Reference in New Issue
Block a user