video: add V4L2_PIX_FMT_RGB565X pixel format support

Add big-endian RGB565 (RGB565X) pixel format throughout the V4L2
video pipeline:
- IMGDATA_PIX_FMT_RGB565X in imgdata.h
- IMGSENSOR_PIX_FMT_RGB565X in imgsensor.h
- Format conversion and buffer size handling in v4l2_cap.c

This is needed by 8-bit DVP camera sensors that output RGB565 in
big-endian byte order (high byte first on the data bus).

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
This commit is contained in:
wangjianyu3
2026-03-16 11:48:42 +08:00
committed by Alan C. Assis
parent 3305badbd7
commit a07a6a00f4
3 changed files with 12 additions and 0 deletions
+10
View File
@@ -655,6 +655,10 @@ static void convert_to_imgdatafmt(FAR video_format_t *video,
data->pixelformat = IMGDATA_PIX_FMT_RGB565;
break;
case V4L2_PIX_FMT_RGB565X:
data->pixelformat = IMGDATA_PIX_FMT_RGB565X;
break;
case V4L2_PIX_FMT_JPEG:
data->pixelformat = IMGDATA_PIX_FMT_JPEG;
break;
@@ -694,6 +698,10 @@ static void convert_to_imgsensorfmt(FAR video_format_t *video,
sensor->pixelformat = IMGSENSOR_PIX_FMT_RGB565;
break;
case V4L2_PIX_FMT_RGB565X:
sensor->pixelformat = IMGSENSOR_PIX_FMT_RGB565X;
break;
case V4L2_PIX_FMT_JPEG:
sensor->pixelformat = IMGSENSOR_PIX_FMT_JPEG;
break;
@@ -1338,6 +1346,7 @@ static size_t get_bufsize(FAR video_format_t *vf)
case V4L2_PIX_FMT_YUYV:
case V4L2_PIX_FMT_UYVY:
case V4L2_PIX_FMT_RGB565:
case V4L2_PIX_FMT_RGB565X:
case V4L2_PIX_FMT_JPEG:
default:
return ret * 2;
@@ -2599,6 +2608,7 @@ static int capture_try_fmt(FAR struct file *filep,
case V4L2_PIX_FMT_YUYV:
case V4L2_PIX_FMT_UYVY:
case V4L2_PIX_FMT_RGB565:
case V4L2_PIX_FMT_RGB565X:
case V4L2_PIX_FMT_JPEG:
case V4L2_PIX_FMT_JPEG_WITH_SUBIMG:
nr_fmt = 1;
+1
View File
@@ -48,6 +48,7 @@
#define IMGDATA_PIX_FMT_YUYV (6)
#define IMGDATA_PIX_FMT_YUV420P (7)
#define IMGDATA_PIX_FMT_NV12 (8)
#define IMGDATA_PIX_FMT_RGB565X (9)
/* Method access helper macros */
+1
View File
@@ -124,6 +124,7 @@
#define IMGSENSOR_PIX_FMT_YUYV (6)
#define IMGSENSOR_PIX_FMT_YUV420P (7)
#define IMGSENSOR_PIX_FMT_NV12 (8)
#define IMGSENSOR_PIX_FMT_RGB565X (9)
/* Method access helper macros */