mirror of
https://github.com/mpv-player/mpv
synced 2025-01-03 05:22:23 +00:00
aa6ba6372c
According to DOCS/OUTDATED-tech/colorspaces.txt, the following formats are supposed to be palettized: IMGFMT_BGR8 IMGFMT_RGB8, IMGFMT_BGR4_CHAR IMGFMT_RGB4_CHAR IMGFMT_BGR4 IMGFMT_RGB4 Of these, only BGR8 and RGB8 are actually treated as palettized in some way. ffmpeg has only one palettized format (AV_PIX_FMT_PAL8), and IMGFMT_BGR8 was inconsistently mapped to packed non-palettized RGB formats too (AV_PIX_FMT_BGR8). Moreover, vf_scale.c contained messy hacks to generate a palette when AV_PIX_FMT_BGR8 is output. (libswscale does not support AV_PIX_FMT_PAL8 output in the first place.) Get rid of all of this, and introduce IMGFMT_PAL8, which directly maps to AV_PIX_FMT_PAL8. Remove the palette creation code from vf_scale.c. IMGFMT_BGR8 maps to AV_PIX_FMT_RGB8 (don't ask me why it's swapped), without any palette use. Enabling it in vo_x11 or using it as vf_scale input seems to give correct results. |
||
---|---|---|
.. | ||
aspect.c | ||
aspect.h | ||
bitmap_packer.c | ||
bitmap_packer.h | ||
cocoa_common.h | ||
cocoa_common.m | ||
d3d_shader_yuv_2ch.h | ||
d3d_shader_yuv.h | ||
d3d_shader_yuv.hlsl | ||
filter_kernels.c | ||
filter_kernels.h | ||
geometry.c | ||
geometry.h | ||
gl_common.c | ||
gl_common.h | ||
gl_header_fixes.h | ||
gl_osd.c | ||
gl_osd.h | ||
osx_common.h | ||
osx_common.m | ||
pnm_loader.c | ||
pnm_loader.h | ||
vo_caca.c | ||
vo_corevideo.h | ||
vo_corevideo.m | ||
vo_direct3d.c | ||
vo_image.c | ||
vo_lavc.c | ||
vo_null.c | ||
vo_opengl_old.c | ||
vo_opengl_shaders.glsl | ||
vo_opengl.c | ||
vo_sdl.c | ||
vo_vdpau.c | ||
vo_x11.c | ||
vo_xv.c | ||
vo.c | ||
vo.h | ||
w32_common.c | ||
w32_common.h | ||
x11_common.c | ||
x11_common.h |