| Message ID | 20260708115552.2277504-1-r-donadkar@ti.com |
|---|---|
| State | Under Review |
| Delegated to: | Ryan Eatmon |
| Headers | show |
| Series | [v2] yavta: Add patches form embedded metadata capture | expand |
meta-arago / na / 20260708115552.2277504-1-r-donadkar
PRC Results: PASS
=========================================================
check-yocto-patches: PASS
=========================================================
Patches
----------------------------------------
WARN - [PATCH v2] yavta: Add patches form embedded metadata capture
WARN: Missing branches specifier [master/scarthgap/XXXXX]. (META-2)
patch:84
Subject: [PATCH v2] yavta: Add patches form embedded metadata capture
WARN: Revised patch missing a comment. (REVISION-1)
patch
For details on the above errors/warnings visit: https://lists.yoctoproject.org/g/meta-ti/wiki/40887
=========================================================
apply-yocto-patch: PASS
=========================================================
master
=====================
Summary:
- Patch Series: [PATCH v2] yavta: Add patches form embedded metadata capture
- Submitter: From: Rishikesh Donadkar <r-donadkar@ti.com>
+From: Sakari Ailus <sakari.ailus@linux.intel.com>
+From: Sakari Ailus <sakari.ailus@linux.intel.com>
+From: Sakari Ailus <sakari.ailus@linux.intel.com>
+From: Rishikesh Donadkar <r-donadkar@ti.com>
- Date: Date: Wed, 8 Jul 2026 17:25:52 +0530
+Date: Thu, 24 Aug 2023 10:57:07 +0300
+Date: Fri, 9 May 2025 18:43:38 +0300
+Date: Thu, 24 Aug 2023 11:08:56 +0300
+Date: Tue, 7 Jul 2026 13:28:41 +0530
- Num Patches: 1
- Mailing List (public inbox) Commit SHA: f6873eaab9ebf1e6ffaff08ffcbd8a825bc0ae5d
Applied to:
- Repository: lcpd-prc-meta-arago
- Base Branch: master-wip
- Commit Author: Andrew Davis <afd@ti.com>
- Commit Subject: linux-firmware: Move this to meta-ti-bsp
- Commit SHA: 5665f4b52096b5229aa20d8bb9ce1defce94563f
Patches
----------------------------------------
All patches applied
=========================================================
check-yocto-repo: PASS
=========================================================
master
=====================
PASS
=========================================================
yocto-check-layers: PASS
=========================================================
master - PASS
=====================
All checks passed
On 08/07/26 17:25, Rishikesh Donadkar wrote: > Add patches on top of yavta to capture metadata from sensors > like IMX219. > > This patches are not added in upstream yavta yet because > embedded data support is not yet functional in the mainline > Linux kernel > > Signed-off-by: Rishikesh Donadkar <r-donadkar@ti.com> Reviewed-by: Devarsh Thakkar <devarsht@ti.com> Regards Devarsh > --- > .../v4l2apps/yavta-arago.inc | 10 +++ > .../yavta/0001-Update-kernel-headers.patch | 89 +++++++++++++++++++ > ...et-and-get-metadata-width-and-height.patch | 52 +++++++++++ > ...support-for-generic-metadata-formats.patch | 42 +++++++++ > .../yavta/0004-Add-metadata-layout-ctrl.patch | 31 +++++++ > .../v4l2apps/yavta_%.bbappend | 4 + > 6 files changed, 228 insertions(+) > create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/yavta-arago.inc > create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0001-Update-kernel-headers.patch > create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0002-Set-and-get-metadata-width-and-height.patch > create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0003-Add-support-for-generic-metadata-formats.patch > create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0004-Add-metadata-layout-ctrl.patch > create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/yavta_%.bbappend > > diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/yavta-arago.inc b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta-arago.inc > new file mode 100644 > index 00000000..ca04b36d > --- /dev/null > +++ b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta-arago.inc > @@ -0,0 +1,10 @@ > +FILESEXTRAPATHS:prepend := "${THISDIR}/yavta:" > + > +SRC_URI:append = " \ > + file://0001-Update-kernel-headers.patch \ > + file://0002-Set-and-get-metadata-width-and-height.patch \ > + file://0003-Add-support-for-generic-metadata-formats.patch \ > + file://0004-Add-metadata-layout-ctrl.patch \ > +" > + > +PR:append = ".arago0" > diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0001-Update-kernel-headers.patch b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0001-Update-kernel-headers.patch > new file mode 100644 > index 00000000..6e798577 > --- /dev/null > +++ b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0001-Update-kernel-headers.patch > @@ -0,0 +1,89 @@ > +From c4dd8eb96b5d6f6e791fc66752a97b362cd885f2 Mon Sep 17 00:00:00 2001 > +From: Sakari Ailus <sakari.ailus@linux.intel.com> > +Date: Thu, 24 Aug 2023 10:57:07 +0300 > +Subject: [PATCH 1/4] Update kernel headers > + > +Update kernel headers to v6.5 media tree + metadata patches. > + > +Upstream-Status: Pending > +Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > +Signed-off-by: Rishikesh Donadkar <r-donadkar@ti.com> > +--- > + include/linux/v4l2-controls.h | 1 - > + include/linux/videodev2.h | 23 ++++++++++++++++++++++- > + 2 files changed, 22 insertions(+), 2 deletions(-) > + > +diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h > +index 8a33537..150fa87 100644 > +--- a/include/linux/v4l2-controls.h > ++++ b/include/linux/v4l2-controls.h > +@@ -1208,7 +1208,6 @@ enum v4l2_jpeg_chroma_subsampling { > + #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8) > + #define V4L2_CID_NOTIFY_GAINS (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9) > + > +- > + /* Image processing controls */ > + > + #define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900) > +diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h > +index 397a99e..bb2d05b 100644 > +--- a/include/linux/videodev2.h > ++++ b/include/linux/videodev2.h > +@@ -812,6 +812,18 @@ struct v4l2_pix_format { > + #define V4L2_META_FMT_RK_ISP1_PARAMS v4l2_fourcc('R', 'K', '1', 'P') /* Rockchip ISP1 3A Parameters */ > + #define V4L2_META_FMT_RK_ISP1_STAT_3A v4l2_fourcc('R', 'K', '1', 'S') /* Rockchip ISP1 3A Statistics */ > + > ++/* > ++ * Line-based metadata formats. Remember to update v4l_fill_fmtdesc() when > ++ * adding new ones! > ++ */ > ++#define V4L2_META_FMT_GENERIC_8 v4l2_fourcc('M', 'E', 'T', '8') /* Generic 8-bit metadata */ > ++#define V4L2_META_FMT_GENERIC_CSI2_10 v4l2_fourcc('M', 'E', 'C', 'A') /* 10-bit CSI-2 packed 8-bit metadata */ > ++#define V4L2_META_FMT_GENERIC_CSI2_12 v4l2_fourcc('M', 'E', 'C', 'C') /* 12-bit CSI-2 packed 8-bit metadata */ > ++#define V4L2_META_FMT_GENERIC_CSI2_14 v4l2_fourcc('M', 'E', 'C', 'E') /* 14-bit CSI-2 packed 8-bit metadata */ > ++#define V4L2_META_FMT_GENERIC_CSI2_16 v4l2_fourcc('M', 'E', 'C', 'G') /* 16-bit CSI-2 packed 8-bit metadata */ > ++#define V4L2_META_FMT_GENERIC_CSI2_20 v4l2_fourcc('M', 'E', 'C', 'K') /* 20-bit CSI-2 packed 8-bit metadata */ > ++#define V4L2_META_FMT_GENERIC_CSI2_24 v4l2_fourcc('M', 'E', 'C', 'O') /* 24-bit CSI-2 packed 8-bit metadata */ > ++ > + /* priv field value to indicates that subsequent fields are valid. */ > + #define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe > + > +@@ -842,6 +854,7 @@ struct v4l2_fmtdesc { > + #define V4L2_FMT_FLAG_CSC_YCBCR_ENC 0x0080 > + #define V4L2_FMT_FLAG_CSC_HSV_ENC V4L2_FMT_FLAG_CSC_YCBCR_ENC > + #define V4L2_FMT_FLAG_CSC_QUANTIZATION 0x0100 > ++#define V4L2_FMT_FLAG_META_LINE_BASED 0x0200 > + > + /* Frame Size and frame rate enumeration */ > + /* > +@@ -1005,7 +1018,6 @@ struct v4l2_requestbuffers { > + * pointing to this plane > + * @fd: when memory is V4L2_MEMORY_DMABUF, a userspace file > + * descriptor associated with this plane > +- * @m: union of @mem_offset, @userptr and @fd > + * @data_offset: offset in the plane to the start of data; usually 0, > + * unless there is a header in front of the data > + * @reserved: drivers and applications must zero this array > +@@ -2359,10 +2371,19 @@ struct v4l2_sdr_format { > + * struct v4l2_meta_format - metadata format definition > + * @dataformat: little endian four character code (fourcc) > + * @buffersize: maximum size in bytes required for data > ++ * @width: number of data units of data per line (valid for line > ++ * based formats only, see format documentation) > ++ * @height: number of lines of data per buffer (valid for line based > ++ * formats only) > ++ * @bytesperline: offset between the beginnings of two adjacent lines in > ++ * bytes (valid for line based formats only) > + */ > + struct v4l2_meta_format { > + __u32 dataformat; > + __u32 buffersize; > ++ __u32 width; > ++ __u32 height; > ++ __u32 bytesperline; > + } __attribute__ ((packed)); > + > + /** > +-- > +2.34.1 > + > diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0002-Set-and-get-metadata-width-and-height.patch b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0002-Set-and-get-metadata-width-and-height.patch > new file mode 100644 > index 00000000..e08ff913 > --- /dev/null > +++ b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0002-Set-and-get-metadata-width-and-height.patch > @@ -0,0 +1,52 @@ > +From 94ea50843fa80fd91f8aa3ef3618310a53f40dc6 Mon Sep 17 00:00:00 2001 > +From: Sakari Ailus <sakari.ailus@linux.intel.com> > +Date: Fri, 9 May 2025 18:43:38 +0300 > +Subject: [PATCH 2/4] Set and get metadata width and height > + > +Support getting and setting the width and height fields of the metadata > +formats. This is required to capture line-based metadata e.g. from camera > +sensors. > + > +Upstream-Status: Pending > +Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > +Signed-off-by: Rishikesh Donadkar <r-donadkar@ti.com> > +--- > + yavta.c | 13 ++++++++----- > + 1 file changed, 8 insertions(+), 5 deletions(-) > + > +diff --git a/yavta.c b/yavta.c > +index ba94bfa..25b95e7 100644 > +--- a/yavta.c > ++++ b/yavta.c > +@@ -889,13 +889,14 @@ static int video_get_format(struct device *dev) > + fmt.fmt.pix_mp.plane_fmt[i].sizeimage); > + } > + } else if (video_is_meta(dev)) { > +- dev->width = 0; > +- dev->height = 0; > ++ dev->width = fmt.fmt.meta.width; > ++ dev->height = fmt.fmt.meta.height; > + dev->num_planes = 1; > + > +- printf("Meta-data format: %s (%08x) buffer size %u\n", > +- v4l2_format_name(fmt.fmt.meta.dataformat), fmt.fmt.meta.dataformat, > +- fmt.fmt.meta.buffersize); > ++ printf("Meta-data format: %s (%08x) %ux%u buffer size %u\n", > ++ v4l2_format_name(fmt.fmt.meta.dataformat), > ++ fmt.fmt.meta.dataformat, fmt.fmt.meta.width, > ++ fmt.fmt.meta.height, fmt.fmt.meta.buffersize); > + } else { > + dev->width = fmt.fmt.pix.width; > + dev->height = fmt.fmt.pix.height; > +@@ -951,6 +952,8 @@ static int video_set_format(struct device *dev, unsigned int w, unsigned int h, > + } else if (video_is_meta(dev)) { > + fmt.fmt.meta.dataformat = format; > + fmt.fmt.meta.buffersize = buffer_size; > ++ fmt.fmt.meta.width = w; > ++ fmt.fmt.meta.height = h; > + } else { > + fmt.fmt.pix.width = w; > + fmt.fmt.pix.height = h; > +-- > +2.34.1 > + > diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0003-Add-support-for-generic-metadata-formats.patch b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0003-Add-support-for-generic-metadata-formats.patch > new file mode 100644 > index 00000000..3728e5b5 > --- /dev/null > +++ b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0003-Add-support-for-generic-metadata-formats.patch > @@ -0,0 +1,42 @@ > +From a4f5a948d05827d95ff2f73a997fd3cdba46d2bf Mon Sep 17 00:00:00 2001 > +From: Sakari Ailus <sakari.ailus@linux.intel.com> > +Date: Thu, 24 Aug 2023 11:08:56 +0300 > +Subject: [PATCH 3/4] Add support for generic metadata formats > + > +Upstream-Status: Pending > +Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > +Signed-off-by: Rishikesh Donadkar <r-donadkar@ti.com> > +--- > + yavta.c | 9 +++++++++ > + 1 file changed, 9 insertions(+) > + > +diff --git a/yavta.c b/yavta.c > +index 25b95e7..6a494da 100644 > +--- a/yavta.c > ++++ b/yavta.c > +@@ -340,6 +340,7 @@ static const struct v4l2_format_info { > + unsigned int fourcc; > + unsigned char n_planes; > + } pixel_formats[] = { > ++ /* Pixel data formats */ > + { "RGB332", V4L2_PIX_FMT_RGB332, 1 }, > + { "RGB444", V4L2_PIX_FMT_RGB444, 1 }, > + { "ARGB444", V4L2_PIX_FMT_ARGB444, 1 }, > +@@ -424,6 +425,14 @@ static const struct v4l2_format_info { > + { "DV", V4L2_PIX_FMT_DV, 1 }, > + { "MJPEG", V4L2_PIX_FMT_MJPEG, 1 }, > + { "MPEG", V4L2_PIX_FMT_MPEG, 1 }, > ++ /* Metadata formats */ > ++ { "GENERIC_8", V4L2_META_FMT_GENERIC_8, 1 }, > ++ { "GENERIC_CSI2_10", V4L2_META_FMT_GENERIC_CSI2_10, 1 }, > ++ { "GENERIC_CSI2_12", V4L2_META_FMT_GENERIC_CSI2_12, 1 }, > ++ { "GENERIC_CSI2_14", V4L2_META_FMT_GENERIC_CSI2_14, 1 }, > ++ { "GENERIC_CSI2_16", V4L2_META_FMT_GENERIC_CSI2_16, 1 }, > ++ { "GENERIC_CSI2_20", V4L2_META_FMT_GENERIC_CSI2_20, 1 }, > ++ { "GENERIC_CSI2_24", V4L2_META_FMT_GENERIC_CSI2_24, 1 }, > + }; > + > + static void list_formats(void) > +-- > +2.34.1 > + > diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0004-Add-metadata-layout-ctrl.patch b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0004-Add-metadata-layout-ctrl.patch > new file mode 100644 > index 00000000..cf0a4bf9 > --- /dev/null > +++ b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0004-Add-metadata-layout-ctrl.patch > @@ -0,0 +1,31 @@ > +From 7d5fc4a3b0982fdc894c946d16fc7152d7da8b30 Mon Sep 17 00:00:00 2001 > +From: Rishikesh Donadkar <r-donadkar@ti.com> > +Date: Tue, 7 Jul 2026 13:28:41 +0530 > +Subject: [PATCH 4/4] Add metadata layout ctrl > + > +Add V4L2_CID_METADATA_LAYOUT ctrl > + > +Upstream-Status: Pending > +Signed-off-by: Rishikesh Donadkar <r-donadkar@ti.com> > +--- > + include/linux/v4l2-controls.h | 4 ++++ > + 1 file changed, 4 insertions(+) > + > +diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h > +index 150fa87..32291d3 100644 > +--- a/include/linux/v4l2-controls.h > ++++ b/include/linux/v4l2-controls.h > +@@ -1208,6 +1208,10 @@ enum v4l2_jpeg_chroma_subsampling { > + #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8) > + #define V4L2_CID_NOTIFY_GAINS (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9) > + > ++#define V4L2_CID_METADATA_LAYOUT (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 12) > ++#define V4L2_METADATA_LAYOUT_CCS 1U > ++ > ++ > + /* Image processing controls */ > + > + #define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900) > +-- > +2.34.1 > + > diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/yavta_%.bbappend b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta_%.bbappend > new file mode 100644 > index 00000000..602fd07f > --- /dev/null > +++ b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta_%.bbappend > @@ -0,0 +1,4 @@ > +YAVTA_ARAGO = "" > +YAVTA_ARAGO:arago = "yavta-arago.inc" > + > +require ${YAVTA_ARAGO}
diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/yavta-arago.inc b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta-arago.inc new file mode 100644 index 00000000..ca04b36d --- /dev/null +++ b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta-arago.inc @@ -0,0 +1,10 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/yavta:" + +SRC_URI:append = " \ + file://0001-Update-kernel-headers.patch \ + file://0002-Set-and-get-metadata-width-and-height.patch \ + file://0003-Add-support-for-generic-metadata-formats.patch \ + file://0004-Add-metadata-layout-ctrl.patch \ +" + +PR:append = ".arago0" diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0001-Update-kernel-headers.patch b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0001-Update-kernel-headers.patch new file mode 100644 index 00000000..6e798577 --- /dev/null +++ b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0001-Update-kernel-headers.patch @@ -0,0 +1,89 @@ +From c4dd8eb96b5d6f6e791fc66752a97b362cd885f2 Mon Sep 17 00:00:00 2001 +From: Sakari Ailus <sakari.ailus@linux.intel.com> +Date: Thu, 24 Aug 2023 10:57:07 +0300 +Subject: [PATCH 1/4] Update kernel headers + +Update kernel headers to v6.5 media tree + metadata patches. + +Upstream-Status: Pending +Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> +Signed-off-by: Rishikesh Donadkar <r-donadkar@ti.com> +--- + include/linux/v4l2-controls.h | 1 - + include/linux/videodev2.h | 23 ++++++++++++++++++++++- + 2 files changed, 22 insertions(+), 2 deletions(-) + +diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h +index 8a33537..150fa87 100644 +--- a/include/linux/v4l2-controls.h ++++ b/include/linux/v4l2-controls.h +@@ -1208,7 +1208,6 @@ enum v4l2_jpeg_chroma_subsampling { + #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8) + #define V4L2_CID_NOTIFY_GAINS (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9) + +- + /* Image processing controls */ + + #define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900) +diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h +index 397a99e..bb2d05b 100644 +--- a/include/linux/videodev2.h ++++ b/include/linux/videodev2.h +@@ -812,6 +812,18 @@ struct v4l2_pix_format { + #define V4L2_META_FMT_RK_ISP1_PARAMS v4l2_fourcc('R', 'K', '1', 'P') /* Rockchip ISP1 3A Parameters */ + #define V4L2_META_FMT_RK_ISP1_STAT_3A v4l2_fourcc('R', 'K', '1', 'S') /* Rockchip ISP1 3A Statistics */ + ++/* ++ * Line-based metadata formats. Remember to update v4l_fill_fmtdesc() when ++ * adding new ones! ++ */ ++#define V4L2_META_FMT_GENERIC_8 v4l2_fourcc('M', 'E', 'T', '8') /* Generic 8-bit metadata */ ++#define V4L2_META_FMT_GENERIC_CSI2_10 v4l2_fourcc('M', 'E', 'C', 'A') /* 10-bit CSI-2 packed 8-bit metadata */ ++#define V4L2_META_FMT_GENERIC_CSI2_12 v4l2_fourcc('M', 'E', 'C', 'C') /* 12-bit CSI-2 packed 8-bit metadata */ ++#define V4L2_META_FMT_GENERIC_CSI2_14 v4l2_fourcc('M', 'E', 'C', 'E') /* 14-bit CSI-2 packed 8-bit metadata */ ++#define V4L2_META_FMT_GENERIC_CSI2_16 v4l2_fourcc('M', 'E', 'C', 'G') /* 16-bit CSI-2 packed 8-bit metadata */ ++#define V4L2_META_FMT_GENERIC_CSI2_20 v4l2_fourcc('M', 'E', 'C', 'K') /* 20-bit CSI-2 packed 8-bit metadata */ ++#define V4L2_META_FMT_GENERIC_CSI2_24 v4l2_fourcc('M', 'E', 'C', 'O') /* 24-bit CSI-2 packed 8-bit metadata */ ++ + /* priv field value to indicates that subsequent fields are valid. */ + #define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe + +@@ -842,6 +854,7 @@ struct v4l2_fmtdesc { + #define V4L2_FMT_FLAG_CSC_YCBCR_ENC 0x0080 + #define V4L2_FMT_FLAG_CSC_HSV_ENC V4L2_FMT_FLAG_CSC_YCBCR_ENC + #define V4L2_FMT_FLAG_CSC_QUANTIZATION 0x0100 ++#define V4L2_FMT_FLAG_META_LINE_BASED 0x0200 + + /* Frame Size and frame rate enumeration */ + /* +@@ -1005,7 +1018,6 @@ struct v4l2_requestbuffers { + * pointing to this plane + * @fd: when memory is V4L2_MEMORY_DMABUF, a userspace file + * descriptor associated with this plane +- * @m: union of @mem_offset, @userptr and @fd + * @data_offset: offset in the plane to the start of data; usually 0, + * unless there is a header in front of the data + * @reserved: drivers and applications must zero this array +@@ -2359,10 +2371,19 @@ struct v4l2_sdr_format { + * struct v4l2_meta_format - metadata format definition + * @dataformat: little endian four character code (fourcc) + * @buffersize: maximum size in bytes required for data ++ * @width: number of data units of data per line (valid for line ++ * based formats only, see format documentation) ++ * @height: number of lines of data per buffer (valid for line based ++ * formats only) ++ * @bytesperline: offset between the beginnings of two adjacent lines in ++ * bytes (valid for line based formats only) + */ + struct v4l2_meta_format { + __u32 dataformat; + __u32 buffersize; ++ __u32 width; ++ __u32 height; ++ __u32 bytesperline; + } __attribute__ ((packed)); + + /** +-- +2.34.1 + diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0002-Set-and-get-metadata-width-and-height.patch b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0002-Set-and-get-metadata-width-and-height.patch new file mode 100644 index 00000000..e08ff913 --- /dev/null +++ b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0002-Set-and-get-metadata-width-and-height.patch @@ -0,0 +1,52 @@ +From 94ea50843fa80fd91f8aa3ef3618310a53f40dc6 Mon Sep 17 00:00:00 2001 +From: Sakari Ailus <sakari.ailus@linux.intel.com> +Date: Fri, 9 May 2025 18:43:38 +0300 +Subject: [PATCH 2/4] Set and get metadata width and height + +Support getting and setting the width and height fields of the metadata +formats. This is required to capture line-based metadata e.g. from camera +sensors. + +Upstream-Status: Pending +Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> +Signed-off-by: Rishikesh Donadkar <r-donadkar@ti.com> +--- + yavta.c | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/yavta.c b/yavta.c +index ba94bfa..25b95e7 100644 +--- a/yavta.c ++++ b/yavta.c +@@ -889,13 +889,14 @@ static int video_get_format(struct device *dev) + fmt.fmt.pix_mp.plane_fmt[i].sizeimage); + } + } else if (video_is_meta(dev)) { +- dev->width = 0; +- dev->height = 0; ++ dev->width = fmt.fmt.meta.width; ++ dev->height = fmt.fmt.meta.height; + dev->num_planes = 1; + +- printf("Meta-data format: %s (%08x) buffer size %u\n", +- v4l2_format_name(fmt.fmt.meta.dataformat), fmt.fmt.meta.dataformat, +- fmt.fmt.meta.buffersize); ++ printf("Meta-data format: %s (%08x) %ux%u buffer size %u\n", ++ v4l2_format_name(fmt.fmt.meta.dataformat), ++ fmt.fmt.meta.dataformat, fmt.fmt.meta.width, ++ fmt.fmt.meta.height, fmt.fmt.meta.buffersize); + } else { + dev->width = fmt.fmt.pix.width; + dev->height = fmt.fmt.pix.height; +@@ -951,6 +952,8 @@ static int video_set_format(struct device *dev, unsigned int w, unsigned int h, + } else if (video_is_meta(dev)) { + fmt.fmt.meta.dataformat = format; + fmt.fmt.meta.buffersize = buffer_size; ++ fmt.fmt.meta.width = w; ++ fmt.fmt.meta.height = h; + } else { + fmt.fmt.pix.width = w; + fmt.fmt.pix.height = h; +-- +2.34.1 + diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0003-Add-support-for-generic-metadata-formats.patch b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0003-Add-support-for-generic-metadata-formats.patch new file mode 100644 index 00000000..3728e5b5 --- /dev/null +++ b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0003-Add-support-for-generic-metadata-formats.patch @@ -0,0 +1,42 @@ +From a4f5a948d05827d95ff2f73a997fd3cdba46d2bf Mon Sep 17 00:00:00 2001 +From: Sakari Ailus <sakari.ailus@linux.intel.com> +Date: Thu, 24 Aug 2023 11:08:56 +0300 +Subject: [PATCH 3/4] Add support for generic metadata formats + +Upstream-Status: Pending +Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> +Signed-off-by: Rishikesh Donadkar <r-donadkar@ti.com> +--- + yavta.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/yavta.c b/yavta.c +index 25b95e7..6a494da 100644 +--- a/yavta.c ++++ b/yavta.c +@@ -340,6 +340,7 @@ static const struct v4l2_format_info { + unsigned int fourcc; + unsigned char n_planes; + } pixel_formats[] = { ++ /* Pixel data formats */ + { "RGB332", V4L2_PIX_FMT_RGB332, 1 }, + { "RGB444", V4L2_PIX_FMT_RGB444, 1 }, + { "ARGB444", V4L2_PIX_FMT_ARGB444, 1 }, +@@ -424,6 +425,14 @@ static const struct v4l2_format_info { + { "DV", V4L2_PIX_FMT_DV, 1 }, + { "MJPEG", V4L2_PIX_FMT_MJPEG, 1 }, + { "MPEG", V4L2_PIX_FMT_MPEG, 1 }, ++ /* Metadata formats */ ++ { "GENERIC_8", V4L2_META_FMT_GENERIC_8, 1 }, ++ { "GENERIC_CSI2_10", V4L2_META_FMT_GENERIC_CSI2_10, 1 }, ++ { "GENERIC_CSI2_12", V4L2_META_FMT_GENERIC_CSI2_12, 1 }, ++ { "GENERIC_CSI2_14", V4L2_META_FMT_GENERIC_CSI2_14, 1 }, ++ { "GENERIC_CSI2_16", V4L2_META_FMT_GENERIC_CSI2_16, 1 }, ++ { "GENERIC_CSI2_20", V4L2_META_FMT_GENERIC_CSI2_20, 1 }, ++ { "GENERIC_CSI2_24", V4L2_META_FMT_GENERIC_CSI2_24, 1 }, + }; + + static void list_formats(void) +-- +2.34.1 + diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0004-Add-metadata-layout-ctrl.patch b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0004-Add-metadata-layout-ctrl.patch new file mode 100644 index 00000000..cf0a4bf9 --- /dev/null +++ b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0004-Add-metadata-layout-ctrl.patch @@ -0,0 +1,31 @@ +From 7d5fc4a3b0982fdc894c946d16fc7152d7da8b30 Mon Sep 17 00:00:00 2001 +From: Rishikesh Donadkar <r-donadkar@ti.com> +Date: Tue, 7 Jul 2026 13:28:41 +0530 +Subject: [PATCH 4/4] Add metadata layout ctrl + +Add V4L2_CID_METADATA_LAYOUT ctrl + +Upstream-Status: Pending +Signed-off-by: Rishikesh Donadkar <r-donadkar@ti.com> +--- + include/linux/v4l2-controls.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/include/linux/v4l2-controls.h b/include/linux/v4l2-controls.h +index 150fa87..32291d3 100644 +--- a/include/linux/v4l2-controls.h ++++ b/include/linux/v4l2-controls.h +@@ -1208,6 +1208,10 @@ enum v4l2_jpeg_chroma_subsampling { + #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8) + #define V4L2_CID_NOTIFY_GAINS (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9) + ++#define V4L2_CID_METADATA_LAYOUT (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 12) ++#define V4L2_METADATA_LAYOUT_CCS 1U ++ ++ + /* Image processing controls */ + + #define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900) +-- +2.34.1 + diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/yavta_%.bbappend b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta_%.bbappend new file mode 100644 index 00000000..602fd07f --- /dev/null +++ b/meta-arago-extras/recipes-multimedia/v4l2apps/yavta_%.bbappend @@ -0,0 +1,4 @@ +YAVTA_ARAGO = "" +YAVTA_ARAGO:arago = "yavta-arago.inc" + +require ${YAVTA_ARAGO}
Add patches on top of yavta to capture metadata from sensors like IMX219. This patches are not added in upstream yavta yet because embedded data support is not yet functional in the mainline Linux kernel Signed-off-by: Rishikesh Donadkar <r-donadkar@ti.com> --- .../v4l2apps/yavta-arago.inc | 10 +++ .../yavta/0001-Update-kernel-headers.patch | 89 +++++++++++++++++++ ...et-and-get-metadata-width-and-height.patch | 52 +++++++++++ ...support-for-generic-metadata-formats.patch | 42 +++++++++ .../yavta/0004-Add-metadata-layout-ctrl.patch | 31 +++++++ .../v4l2apps/yavta_%.bbappend | 4 + 6 files changed, 228 insertions(+) create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/yavta-arago.inc create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0001-Update-kernel-headers.patch create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0002-Set-and-get-metadata-width-and-height.patch create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0003-Add-support-for-generic-metadata-formats.patch create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/yavta/0004-Add-metadata-layout-ctrl.patch create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/yavta_%.bbappend