libplacebo
libplacebo copied to clipboard
XYUV and Y410 formats unsupported for YUV444 VAAPI frame mapping
I'm running into an issue with pl_map_avframe_ex()
failing when trying to map a AV_PIX_FMT_VAAPI
frame that is backed by a VA surface with a YUV444 format (either 8-bit or 10-bit) for rendering with Vulkan. The failure originates here due to libplacebo having no mapping for either of the FourCC values.
The failing AVPixelFormat
values are AV_PIX_FMT_VUYX
for 8-bit 4:4:4 and AV_PIX_FMT_XV30LE
for 10-bit 4:4:4. They map to the DRM formats of DRM_FORMAT_XYUV8888
and DRM_FORMAT_Y410
and FourCC values of XYUV
and Y410
. These formats are a bit unusual compared to normal semi/fully planar YUV formats because they are fully packed formats with only a single plane.
Hopefully it's relatively simple to add support for these formats. I'm happy to test any WIP patches if you lack the hardware to test yourself.
System details:
- Intel Core i7 1280P (ADL)
- Mesa 24.1.4