libplacebo icon indicating copy to clipboard operation
libplacebo copied to clipboard

XYUV and Y410 formats unsupported for YUV444 VAAPI frame mapping

Open cgutman opened this issue 6 months ago • 0 comments

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

cgutman avatar Aug 03 '24 04:08 cgutman