From nobody Tue Jun 16 11:23:05 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gfl3F70vrz6hSh9 for ; Tue, 16 Jun 2026 11:23:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gfl3F3wXcz3MGF for ; Tue, 16 Jun 2026 11:23:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1781608985; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/APZduZ7kWul1N84e6kcuAqUa954vMQwWjPxlEM1T30=; b=gXCvcP43UyMHtpeoaobqeo2dkgX/VdBGU/7fiAsly50w6BJLffaHKN7rxy1v4iXPDSV0Dh jM9ipnajzqGnHPZ5b4rTg3Rhk43DgBubmv5Wvn5b814jNVkBZ15ays8h9LqWiQrOm4AZ9F 0NVtYgADZ1Z9pL3655pZJQdPr1T14aGwCAYPUJoLxTe7CSOU3Xz8xxqoqXVouF3BFadZLV Ges1BimkHkxhQyyi7uw0i6/uzbcDNVJgFgm0u/9A/rLf0aTEnsy1uksYPiDoc1D+ytN9cV xf5vG2wgrcOuKSkzIU2J+yW4t14Cd5QCniI/oL+spTeaf0LTWjNwZ6AOuF9MwA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1781608985; a=rsa-sha256; cv=none; b=isBfelZdST5HoU8/azBJOATZMEp+o5YnzkT3olNuEjv9fCfys9ip39tcuxO4CR/Fpzf1Yk tgM2m5ej39itmjLaIFJqPUte/+ej3V/bP6+uVzL9fdixNxfD1hcz30v7G6Li8yuzLX/ctl 3ecUfV2ao7BCnLB/OAL0KhCYQ+XOUhwzVfVUBPrh/dIJdfZFOpw4L50i6qzRRitOxmGHkB xC+JQbl9FlE39KYjLqRoKME3mS4EZSf9ZU/5U2KyUDAu/Htlxkfv2fryklmY2QVAlpQ58j qgU8mGA/43Q48arAVAwUWtNnbh8dC0zrg0QoEfb8XKn1MomlpgUV7pFieqnA8g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1781608985; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/APZduZ7kWul1N84e6kcuAqUa954vMQwWjPxlEM1T30=; b=fne4on5ZOu522mva99yTk1GiYUP1Xld2jOcrDaSSE/XYWMedXokjy3vASNH7heGzL0PRdo QTta4WnTA5aonAa4CryHC9tBr0w34Ri7HFj9UyADuirhAySOGxO3lV4+vEJnwm+Y2Qn63H bCnBeaJosvsmzpyGb9RvdROdcwgdAhNkHfDxwhkDYG6eGETBGYUXlYzpdR8pAcpE0PKB4W zQtRoD6c2k6l6hRvxWkMiAXYo1hfbS4iV+MMnmgfhIt8AMI/jeADnzmDP/AMRq5pW3Yh3B L0zV+8+hBhii56EQT6Z5B0ndTJGif/Smk/kkxR26XA1aVR89L+vwbIunknL1qA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gfl3F2lSBz8Cn for ; Tue, 16 Jun 2026 11:23:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e898 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 16 Jun 2026 11:23:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Baptiste Daroussin Subject: git: 8bc06ffbbd80 - main - uvideo: add missing formats to be in par with webcamd's uvcvideo List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8bc06ffbbd80533eda0784d2a6f5a1476f9d550c Auto-Submitted: auto-generated Date: Tue, 16 Jun 2026 11:23:05 +0000 Message-Id: <6a313219.1e898.26ae607@gitrepo.freebsd.org> The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=8bc06ffbbd80533eda0784d2a6f5a1476f9d550c commit 8bc06ffbbd80533eda0784d2a6f5a1476f9d550c Author: Baptiste Daroussin AuthorDate: 2026-05-18 20:17:34 +0000 Commit: Baptiste Daroussin CommitDate: 2026-06-16 11:21:03 +0000 uvideo: add missing formats to be in par with webcamd's uvcvideo --- sys/dev/usb/video/uvideo.c | 19 +++++++++++++++++++ sys/dev/usb/video/uvideo.h | 24 ++++++++++++++++++++++++ sys/dev/usb/video/uvideo_v4l2.h | 6 ++++++ 3 files changed, 49 insertions(+) diff --git a/sys/dev/usb/video/uvideo.c b/sys/dev/usb/video/uvideo.c index 52998fbc9b40..b35561ff6a24 100644 --- a/sys/dev/usb/video/uvideo.c +++ b/sys/dev/usb/video/uvideo.c @@ -493,12 +493,18 @@ static const struct { uint32_t pixelformat; } uvideo_map_fmts[] = { { UVIDEO_FORMAT_GUID_YUY2, V4L2_PIX_FMT_YUYV }, + { UVIDEO_FORMAT_GUID_NV12, V4L2_PIX_FMT_NV12 }, + { UVIDEO_FORMAT_GUID_NV21, V4L2_PIX_FMT_NV21 }, { UVIDEO_FORMAT_GUID_YV12, V4L2_PIX_FMT_YVU420 }, { UVIDEO_FORMAT_GUID_I420, V4L2_PIX_FMT_YUV420 }, + { UVIDEO_FORMAT_GUID_M420, V4L2_PIX_FMT_M420 }, + { UVIDEO_FORMAT_GUID_UYVY, V4L2_PIX_FMT_UYVY }, { UVIDEO_FORMAT_GUID_Y800, V4L2_PIX_FMT_GREY }, { UVIDEO_FORMAT_GUID_Y8, V4L2_PIX_FMT_GREY }, { UVIDEO_FORMAT_GUID_D3DFMT_L8, V4L2_PIX_FMT_GREY }, { UVIDEO_FORMAT_GUID_KSMEDIA_L8_IR, V4L2_PIX_FMT_GREY }, + { UVIDEO_FORMAT_GUID_Y12, V4L2_PIX_FMT_Y12 }, + { UVIDEO_FORMAT_GUID_Y16, V4L2_PIX_FMT_Y16 }, { UVIDEO_FORMAT_GUID_BY8, V4L2_PIX_FMT_SBGGR8 }, { UVIDEO_FORMAT_GUID_BA81, V4L2_PIX_FMT_SBGGR8 }, { UVIDEO_FORMAT_GUID_GBRG, V4L2_PIX_FMT_SGBRG8 }, @@ -2939,9 +2945,16 @@ static const struct { } uvideo_fmt_names[] = { { V4L2_PIX_FMT_MJPEG, "Motion-JPEG", V4L2_FMT_FLAG_COMPRESSED }, { V4L2_PIX_FMT_YUYV, "YUYV 4:2:2", 0 }, + { V4L2_PIX_FMT_UYVY, "UYVY 4:2:2", 0 }, + { V4L2_PIX_FMT_NV12, "Y/UV 4:2:0", 0 }, + { V4L2_PIX_FMT_NV21, "Y/VU 4:2:0", 0 }, { V4L2_PIX_FMT_YVU420, "Planar YVU 4:2:0", 0 }, { V4L2_PIX_FMT_YUV420, "Planar YUV 4:2:0", 0 }, + { V4L2_PIX_FMT_M420, "M420 YUV 4:2:0", 0 }, { V4L2_PIX_FMT_GREY, "8-bit Greyscale", 0 }, + { V4L2_PIX_FMT_Y10, "10-bit Greyscale", 0 }, + { V4L2_PIX_FMT_Y12, "12-bit Greyscale", 0 }, + { V4L2_PIX_FMT_Y16, "16-bit Greyscale", 0 }, { V4L2_PIX_FMT_RGB565, "16-bit RGB 5-6-5", 0 }, { V4L2_PIX_FMT_BGR24, "24-bit BGR 8-8-8", 0 }, { V4L2_PIX_FMT_XBGR32, "32-bit BGRX 8-8-8-8", 0 }, @@ -2951,6 +2964,12 @@ static const struct { { V4L2_PIX_FMT_SGBRG8, "8-bit Bayer GBGB/RGRG", 0 }, { V4L2_PIX_FMT_SGRBG8, "8-bit Bayer GRGR/BGBG", 0 }, { V4L2_PIX_FMT_SRGGB8, "8-bit Bayer RGRG/GBGB", 0 }, + { V4L2_PIX_FMT_SBGGR16, "16-bit Bayer BGBG/GRGR", 0 }, + { V4L2_PIX_FMT_SGBRG16, "16-bit Bayer GBGB/RGRG", 0 }, + { V4L2_PIX_FMT_SGRBG16, "16-bit Bayer GRGR/BGBG", 0 }, + { V4L2_PIX_FMT_SRGGB16, "16-bit Bayer RGRG/GBGB", 0 }, + { V4L2_PIX_FMT_SRGGB10P, "10-bit Bayer RGRG/GBGB Packed", 0 }, + { V4L2_PIX_FMT_Z16, "16-bit Depth", 0 }, { 0, NULL, 0 } }; diff --git a/sys/dev/usb/video/uvideo.h b/sys/dev/usb/video/uvideo.h index 00e5118a65ae..fc811c5d65fa 100644 --- a/sys/dev/usb/video/uvideo.h +++ b/sys/dev/usb/video/uvideo.h @@ -312,6 +312,14 @@ struct usb_video_probe_commit { 'Y', 'U', 'Y', '2', 0x00, 0x00, 0x10, 0x00, \ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } +#define UVIDEO_FORMAT_GUID_NV12 { \ + 'N', 'V', '1', '2', 0x00, 0x00, 0x10, 0x00, \ + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } + +#define UVIDEO_FORMAT_GUID_NV21 { \ + 'N', 'V', '2', '1', 0x00, 0x00, 0x10, 0x00, \ + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } + #define UVIDEO_FORMAT_GUID_YV12 { \ 'Y', 'V', '1', '2', 0x00, 0x00, 0x10, 0x00, \ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } @@ -320,6 +328,14 @@ struct usb_video_probe_commit { 'I', '4', '2', '0', 0x00, 0x00, 0x10, 0x00, \ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } +#define UVIDEO_FORMAT_GUID_M420 { \ + 'M', '4', '2', '0', 0x00, 0x00, 0x10, 0x00, \ + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } + +#define UVIDEO_FORMAT_GUID_UYVY { \ + 'U', 'Y', 'V', 'Y', 0x00, 0x00, 0x10, 0x00, \ + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } + #define UVIDEO_FORMAT_GUID_Y800 { \ 'Y', '8', '0', '0', 0x00, 0x00, 0x10, 0x00, \ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } @@ -336,6 +352,14 @@ struct usb_video_probe_commit { 0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, \ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } +#define UVIDEO_FORMAT_GUID_Y12 { \ + 'Y', '1', '2', ' ', 0x00, 0x00, 0x10, 0x00, \ + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } + +#define UVIDEO_FORMAT_GUID_Y16 { \ + 'Y', '1', '6', ' ', 0x00, 0x00, 0x10, 0x00, \ + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } + #define UVIDEO_FORMAT_GUID_BY8 { \ 'B', 'Y', '8', ' ', 0x00, 0x00, 0x10, 0x00, \ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 } diff --git a/sys/dev/usb/video/uvideo_v4l2.h b/sys/dev/usb/video/uvideo_v4l2.h index 6192ada9fbb6..7e0aa2eda097 100644 --- a/sys/dev/usb/video/uvideo_v4l2.h +++ b/sys/dev/usb/video/uvideo_v4l2.h @@ -364,6 +364,10 @@ struct v4l2_frmivalenum { /* Luminance+Chrominance formats */ #define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V') +#define V4L2_PIX_FMT_UYVY v4l2_fourcc('U', 'Y', 'V', 'Y') +#define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') +#define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1') +#define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') #define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') #define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') @@ -375,6 +379,8 @@ struct v4l2_frmivalenum { /* Grey formats */ #define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') #define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') +#define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') +#define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* RGB formats */ #define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P')