Merge pull request #1028 from vigneshvg/cl_yuv422_565
Support YUV422->RGB565 conversion with libyuv
diff --git a/src/reformat_libyuv.c b/src/reformat_libyuv.c
index ed22c52..37d8f12 100644
--- a/src/reformat_libyuv.c
+++ b/src/reformat_libyuv.c
@@ -416,7 +416,24 @@
} else if (rgb->format == AVIF_RGB_FORMAT_RGB_565) {
// AVIF_RGB_FORMAT_BGR *ToRGB565Matrix matrixYUV
- if (image->yuvFormat == AVIF_PIXEL_FORMAT_YUV420) {
+ if (image->yuvFormat == AVIF_PIXEL_FORMAT_YUV422) {
+#if LIBYUV_VERSION >= 1838
+ if (I422ToRGB565Matrix(image->yuvPlanes[AVIF_CHAN_Y],
+ image->yuvRowBytes[AVIF_CHAN_Y],
+ image->yuvPlanes[AVIF_CHAN_U],
+ image->yuvRowBytes[AVIF_CHAN_U],
+ image->yuvPlanes[AVIF_CHAN_V],
+ image->yuvRowBytes[AVIF_CHAN_V],
+ rgb->pixels,
+ rgb->rowBytes,
+ matrixYUV,
+ image->width,
+ image->height) != 0) {
+ return AVIF_RESULT_REFORMAT_FAILED;
+ }
+ return AVIF_RESULT_OK;
+#endif
+ } else if (image->yuvFormat == AVIF_PIXEL_FORMAT_YUV420) {
if (I420ToRGB565Matrix(image->yuvPlanes[AVIF_CHAN_Y],
image->yuvRowBytes[AVIF_CHAN_Y],
image->yuvPlanes[AVIF_CHAN_U],