mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-03-04 01:41:18 -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);
|
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
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -307,3 +307,68 @@ bool pixel_format_has_alpha(uint32_t fmt) {
|
||||||
}
|
}
|
||||||
return true;
|
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