mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-04 22:48:54 +00:00
v4l2object: add support for ABGR, xBGR, RGBA, and RGBx formats
Map them to the new V4L2_PIX_FMT_{BGRA32,BGRX32,RGBA32,RGBX32} pixel formats.
This commit is contained in:
parent
06a084d70c
commit
2b1658fca2
1 changed files with 40 additions and 0 deletions
|
@ -94,6 +94,10 @@ static const GstV4L2FormatDesc gst_v4l2_formats[] = {
|
|||
{V4L2_PIX_FMT_RGB24, TRUE, GST_V4L2_RAW},
|
||||
{V4L2_PIX_FMT_ABGR32, TRUE, GST_V4L2_RAW},
|
||||
{V4L2_PIX_FMT_XBGR32, TRUE, GST_V4L2_RAW},
|
||||
{V4L2_PIX_FMT_BGRA32, TRUE, GST_V4L2_RAW},
|
||||
{V4L2_PIX_FMT_BGRX32, TRUE, GST_V4L2_RAW},
|
||||
{V4L2_PIX_FMT_RGBA32, TRUE, GST_V4L2_RAW},
|
||||
{V4L2_PIX_FMT_RGBX32, TRUE, GST_V4L2_RAW},
|
||||
{V4L2_PIX_FMT_ARGB32, TRUE, GST_V4L2_RAW},
|
||||
{V4L2_PIX_FMT_XRGB32, TRUE, GST_V4L2_RAW},
|
||||
|
||||
|
@ -1037,6 +1041,10 @@ gst_v4l2_object_format_get_rank (const struct v4l2_fmtdesc *fmt)
|
|||
case V4L2_PIX_FMT_BGR32:
|
||||
case V4L2_PIX_FMT_ABGR32:
|
||||
case V4L2_PIX_FMT_XBGR32:
|
||||
case V4L2_PIX_FMT_BGRA32:
|
||||
case V4L2_PIX_FMT_BGRX32:
|
||||
case V4L2_PIX_FMT_RGBA32:
|
||||
case V4L2_PIX_FMT_RGBX32:
|
||||
case V4L2_PIX_FMT_ARGB32:
|
||||
case V4L2_PIX_FMT_XRGB32:
|
||||
rank = RGB_BASE_RANK;
|
||||
|
@ -1301,13 +1309,25 @@ gst_v4l2_object_v4l2fourcc_to_video_format (guint32 fourcc)
|
|||
case V4L2_PIX_FMT_RGB32:
|
||||
format = GST_VIDEO_FORMAT_xRGB;
|
||||
break;
|
||||
case V4L2_PIX_FMT_RGBX32:
|
||||
format = GST_VIDEO_FORMAT_RGBx;
|
||||
break;
|
||||
case V4L2_PIX_FMT_XBGR32:
|
||||
case V4L2_PIX_FMT_BGR32:
|
||||
format = GST_VIDEO_FORMAT_BGRx;
|
||||
break;
|
||||
case V4L2_PIX_FMT_BGRX32:
|
||||
format = GST_VIDEO_FORMAT_xBGR;
|
||||
break;
|
||||
case V4L2_PIX_FMT_ABGR32:
|
||||
format = GST_VIDEO_FORMAT_BGRA;
|
||||
break;
|
||||
case V4L2_PIX_FMT_BGRA32:
|
||||
format = GST_VIDEO_FORMAT_ABGR;
|
||||
break;
|
||||
case V4L2_PIX_FMT_RGBA32:
|
||||
format = GST_VIDEO_FORMAT_RGB;
|
||||
break;
|
||||
case V4L2_PIX_FMT_ARGB32:
|
||||
format = GST_VIDEO_FORMAT_ARGB;
|
||||
break;
|
||||
|
@ -1384,8 +1404,12 @@ gst_v4l2_object_v4l2fourcc_is_rgb (guint32 fourcc)
|
|||
case V4L2_PIX_FMT_BGR24:
|
||||
case V4L2_PIX_FMT_XRGB32:
|
||||
case V4L2_PIX_FMT_RGB32:
|
||||
case V4L2_PIX_FMT_RGBA32:
|
||||
case V4L2_PIX_FMT_RGBX32:
|
||||
case V4L2_PIX_FMT_XBGR32:
|
||||
case V4L2_PIX_FMT_BGR32:
|
||||
case V4L2_PIX_FMT_BGRA32:
|
||||
case V4L2_PIX_FMT_BGRX32:
|
||||
case V4L2_PIX_FMT_ABGR32:
|
||||
case V4L2_PIX_FMT_ARGB32:
|
||||
case V4L2_PIX_FMT_SBGGR8:
|
||||
|
@ -1472,7 +1496,11 @@ gst_v4l2_object_v4l2fourcc_to_bare_struct (guint32 fourcc)
|
|||
case V4L2_PIX_FMT_RGB32:
|
||||
case V4L2_PIX_FMT_XRGB32:
|
||||
case V4L2_PIX_FMT_ARGB32:
|
||||
case V4L2_PIX_FMT_RGBX32:
|
||||
case V4L2_PIX_FMT_RGBA32:
|
||||
case V4L2_PIX_FMT_BGR32:
|
||||
case V4L2_PIX_FMT_BGRX32:
|
||||
case V4L2_PIX_FMT_BGRA32:
|
||||
case V4L2_PIX_FMT_XBGR32:
|
||||
case V4L2_PIX_FMT_ABGR32:
|
||||
case V4L2_PIX_FMT_NV12: /* 12 Y/CbCr 4:2:0 */
|
||||
|
@ -1766,18 +1794,30 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps,
|
|||
fourcc = V4L2_PIX_FMT_RGB32;
|
||||
fourcc_nc = V4L2_PIX_FMT_XRGB32;
|
||||
break;
|
||||
case GST_VIDEO_FORMAT_RGBx:
|
||||
fourcc = V4L2_PIX_FMT_RGBX32;
|
||||
break;
|
||||
case GST_VIDEO_FORMAT_ARGB:
|
||||
fourcc = V4L2_PIX_FMT_RGB32;
|
||||
fourcc_nc = V4L2_PIX_FMT_ARGB32;
|
||||
break;
|
||||
case GST_VIDEO_FORMAT_RGBA:
|
||||
fourcc = V4L2_PIX_FMT_RGBA32;
|
||||
break;
|
||||
case GST_VIDEO_FORMAT_BGRx:
|
||||
fourcc = V4L2_PIX_FMT_BGR32;
|
||||
fourcc_nc = V4L2_PIX_FMT_XBGR32;
|
||||
break;
|
||||
case GST_VIDEO_FORMAT_xBGR:
|
||||
fourcc = V4L2_PIX_FMT_BGRX32;
|
||||
break;
|
||||
case GST_VIDEO_FORMAT_BGRA:
|
||||
fourcc = V4L2_PIX_FMT_BGR32;
|
||||
fourcc_nc = V4L2_PIX_FMT_ABGR32;
|
||||
break;
|
||||
case GST_VIDEO_FORMAT_ABGR:
|
||||
fourcc = V4L2_PIX_FMT_BGRA32;
|
||||
break;
|
||||
case GST_VIDEO_FORMAT_GRAY8:
|
||||
fourcc = V4L2_PIX_FMT_GREY;
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue