mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-02-05 04:06:11 -05:00
render/pixel-format: add function to determine YCbCr from drm fourcc
This commit is contained in:
parent
82d5ffb09e
commit
7ca85d7a21
2 changed files with 70 additions and 0 deletions
|
|
@ -63,4 +63,9 @@ enum wl_shm_format convert_drm_format_to_wl_shm(uint32_t fmt);
|
|||
*/
|
||||
bool pixel_format_has_alpha(uint32_t fmt);
|
||||
|
||||
/**
|
||||
* Return true if the DRM FourCC fmt belongs to a YCbCr colorspace family, false otherwise.
|
||||
*/
|
||||
bool pixel_format_is_ycbcr(uint32_t fmt);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -307,3 +307,68 @@ bool pixel_format_has_alpha(uint32_t fmt) {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool pixel_format_is_ycbcr(uint32_t format) {
|
||||
switch(format) {
|
||||
case DRM_FORMAT_AYUV:
|
||||
case DRM_FORMAT_NV12:
|
||||
case DRM_FORMAT_NV15:
|
||||
case DRM_FORMAT_NV16:
|
||||
case DRM_FORMAT_NV20:
|
||||
case DRM_FORMAT_NV21:
|
||||
case DRM_FORMAT_NV24:
|
||||
case DRM_FORMAT_NV30:
|
||||
case DRM_FORMAT_NV42:
|
||||
case DRM_FORMAT_NV61:
|
||||
case DRM_FORMAT_P010:
|
||||
case DRM_FORMAT_P012:
|
||||
case DRM_FORMAT_P016:
|
||||
case DRM_FORMAT_P030:
|
||||
case DRM_FORMAT_P210:
|
||||
case DRM_FORMAT_Q401:
|
||||
case DRM_FORMAT_Q410:
|
||||
case DRM_FORMAT_S010:
|
||||
case DRM_FORMAT_S012:
|
||||
case DRM_FORMAT_S016:
|
||||
case DRM_FORMAT_S210:
|
||||
case DRM_FORMAT_S212:
|
||||
case DRM_FORMAT_S216:
|
||||
case DRM_FORMAT_S410:
|
||||
case DRM_FORMAT_S412:
|
||||
case DRM_FORMAT_S416:
|
||||
case DRM_FORMAT_UYVY:
|
||||
case DRM_FORMAT_VUY101010:
|
||||
case DRM_FORMAT_VUY888:
|
||||
case DRM_FORMAT_VYUY:
|
||||
case DRM_FORMAT_X0L0:
|
||||
case DRM_FORMAT_X0L2:
|
||||
case DRM_FORMAT_XVYU12_16161616:
|
||||
case DRM_FORMAT_XVYU16161616:
|
||||
case DRM_FORMAT_XVYU2101010:
|
||||
case DRM_FORMAT_XYUV8888:
|
||||
case DRM_FORMAT_Y0L0:
|
||||
case DRM_FORMAT_Y0L2:
|
||||
case DRM_FORMAT_Y210:
|
||||
case DRM_FORMAT_Y212:
|
||||
case DRM_FORMAT_Y216:
|
||||
case DRM_FORMAT_Y410:
|
||||
case DRM_FORMAT_Y412:
|
||||
case DRM_FORMAT_Y416:
|
||||
case DRM_FORMAT_YUV410:
|
||||
case DRM_FORMAT_YUV411:
|
||||
case DRM_FORMAT_YUV420:
|
||||
case DRM_FORMAT_YUV420_10BIT:
|
||||
case DRM_FORMAT_YUV420_8BIT:
|
||||
case DRM_FORMAT_YUV422:
|
||||
case DRM_FORMAT_YUV444:
|
||||
case DRM_FORMAT_YUYV:
|
||||
case DRM_FORMAT_YVU410:
|
||||
case DRM_FORMAT_YVU411:
|
||||
case DRM_FORMAT_YVU420:
|
||||
case DRM_FORMAT_YVU422:
|
||||
case DRM_FORMAT_YVU444:
|
||||
case DRM_FORMAT_YVYU:
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue