From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: linux-media@vger.kernel.org
Cc: laurent.pinchart@ideasonboard.com, hverkuil@xs4all.nl
Subject: [v4l-utils PATCH 3/4] libv4l2subdev: Add a function to list library supported pixel codes
Date: Sun, 21 Feb 2016 23:29:46 +0200 [thread overview]
Message-ID: <1456090187-1191-4-git-send-email-sakari.ailus@linux.intel.com> (raw)
In-Reply-To: <1456090187-1191-1-git-send-email-sakari.ailus@linux.intel.com>
Also mark which format definitions are compat definitions for the
pre-existing codes. This way we don't end up listing the same formats
twice.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
utils/media-ctl/.gitignore | 1 +
utils/media-ctl/Makefile.am | 6 +++-
utils/media-ctl/libv4l2subdev.c | 72 ++++++++++++++++++++++++-----------------
utils/media-ctl/v4l2subdev.h | 11 +++++++
4 files changed, 59 insertions(+), 31 deletions(-)
diff --git a/utils/media-ctl/.gitignore b/utils/media-ctl/.gitignore
index 799ab33..5354fec 100644
--- a/utils/media-ctl/.gitignore
+++ b/utils/media-ctl/.gitignore
@@ -1,2 +1,3 @@
media-ctl
media-bus-format-names.h
+media-bus-format-codes.h
diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am
index 23ad90b..ee7dcc9 100644
--- a/utils/media-ctl/Makefile.am
+++ b/utils/media-ctl/Makefile.am
@@ -8,7 +8,11 @@ media-bus-format-names.h: ../../include/linux/media-bus-format.h
sed -e '/#define MEDIA_BUS_FMT/ ! d; s/.*FMT_//; /FIXED/ d; s/\t.*//; s/.*/{ \"&\", MEDIA_BUS_FMT_& },/;' \
< $< > $@
-BUILT_SOURCES = media-bus-format-names.h
+media-bus-format-codes.h: ../../include/linux/media-bus-format.h
+ sed -e '/#define MEDIA_BUS_FMT/ ! d; s/.*#define //; /FIXED/ d; s/\t.*//; s/.*/ &,/;' \
+ < $< > $@
+
+BUILT_SOURCES = media-bus-format-names.h media-bus-format-codes.h
CLEANFILES = $(BUILT_SOURCES)
nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES)
diff --git a/utils/media-ctl/libv4l2subdev.c b/utils/media-ctl/libv4l2subdev.c
index f3c0a9a..20d95b4 100644
--- a/utils/media-ctl/libv4l2subdev.c
+++ b/utils/media-ctl/libv4l2subdev.c
@@ -718,38 +718,43 @@ int v4l2_subdev_parse_setup_formats(struct media_device *media, const char *p)
static const struct {
const char *name;
enum v4l2_mbus_pixelcode code;
+ bool compat;
} mbus_formats[] = {
#include "media-bus-format-names.h"
- { "Y8", MEDIA_BUS_FMT_Y8_1X8},
- { "Y10", MEDIA_BUS_FMT_Y10_1X10 },
- { "Y12", MEDIA_BUS_FMT_Y12_1X12 },
- { "YUYV", MEDIA_BUS_FMT_YUYV8_1X16 },
- { "YUYV1_5X8", MEDIA_BUS_FMT_YUYV8_1_5X8 },
- { "YUYV2X8", MEDIA_BUS_FMT_YUYV8_2X8 },
- { "UYVY", MEDIA_BUS_FMT_UYVY8_1X16 },
- { "UYVY1_5X8", MEDIA_BUS_FMT_UYVY8_1_5X8 },
- { "UYVY2X8", MEDIA_BUS_FMT_UYVY8_2X8 },
- { "VUY24", MEDIA_BUS_FMT_VUY8_1X24 },
- { "SBGGR8", MEDIA_BUS_FMT_SBGGR8_1X8 },
- { "SGBRG8", MEDIA_BUS_FMT_SGBRG8_1X8 },
- { "SGRBG8", MEDIA_BUS_FMT_SGRBG8_1X8 },
- { "SRGGB8", MEDIA_BUS_FMT_SRGGB8_1X8 },
- { "SBGGR10", MEDIA_BUS_FMT_SBGGR10_1X10 },
- { "SGBRG10", MEDIA_BUS_FMT_SGBRG10_1X10 },
- { "SGRBG10", MEDIA_BUS_FMT_SGRBG10_1X10 },
- { "SRGGB10", MEDIA_BUS_FMT_SRGGB10_1X10 },
- { "SBGGR10_DPCM8", MEDIA_BUS_FMT_SBGGR10_DPCM8_1X8 },
- { "SGBRG10_DPCM8", MEDIA_BUS_FMT_SGBRG10_DPCM8_1X8 },
- { "SGRBG10_DPCM8", MEDIA_BUS_FMT_SGRBG10_DPCM8_1X8 },
- { "SRGGB10_DPCM8", MEDIA_BUS_FMT_SRGGB10_DPCM8_1X8 },
- { "SBGGR12", MEDIA_BUS_FMT_SBGGR12_1X12 },
- { "SGBRG12", MEDIA_BUS_FMT_SGBRG12_1X12 },
- { "SGRBG12", MEDIA_BUS_FMT_SGRBG12_1X12 },
- { "SRGGB12", MEDIA_BUS_FMT_SRGGB12_1X12 },
- { "AYUV32", MEDIA_BUS_FMT_AYUV8_1X32 },
- { "RBG24", MEDIA_BUS_FMT_RBG888_1X24 },
- { "RGB32", MEDIA_BUS_FMT_RGB888_1X32_PADHI },
- { "ARGB32", MEDIA_BUS_FMT_ARGB8888_1X32 },
+ { "Y8", MEDIA_BUS_FMT_Y8_1X8, true },
+ { "Y10", MEDIA_BUS_FMT_Y10_1X10, true },
+ { "Y12", MEDIA_BUS_FMT_Y12_1X12, true },
+ { "YUYV", MEDIA_BUS_FMT_YUYV8_1X16, true },
+ { "YUYV1_5X8", MEDIA_BUS_FMT_YUYV8_1_5X8, true },
+ { "YUYV2X8", MEDIA_BUS_FMT_YUYV8_2X8, true },
+ { "UYVY", MEDIA_BUS_FMT_UYVY8_1X16, true },
+ { "UYVY1_5X8", MEDIA_BUS_FMT_UYVY8_1_5X8, true },
+ { "UYVY2X8", MEDIA_BUS_FMT_UYVY8_2X8, true },
+ { "VUY24", MEDIA_BUS_FMT_VUY8_1X24, true },
+ { "SBGGR8", MEDIA_BUS_FMT_SBGGR8_1X8, true },
+ { "SGBRG8", MEDIA_BUS_FMT_SGBRG8_1X8, true },
+ { "SGRBG8", MEDIA_BUS_FMT_SGRBG8_1X8, true },
+ { "SRGGB8", MEDIA_BUS_FMT_SRGGB8_1X8, true },
+ { "SBGGR10", MEDIA_BUS_FMT_SBGGR10_1X10, true },
+ { "SGBRG10", MEDIA_BUS_FMT_SGBRG10_1X10, true },
+ { "SGRBG10", MEDIA_BUS_FMT_SGRBG10_1X10, true },
+ { "SRGGB10", MEDIA_BUS_FMT_SRGGB10_1X10, true },
+ { "SBGGR10_DPCM8", MEDIA_BUS_FMT_SBGGR10_DPCM8_1X8, true },
+ { "SGBRG10_DPCM8", MEDIA_BUS_FMT_SGBRG10_DPCM8_1X8, true },
+ { "SGRBG10_DPCM8", MEDIA_BUS_FMT_SGRBG10_DPCM8_1X8, true },
+ { "SRGGB10_DPCM8", MEDIA_BUS_FMT_SRGGB10_DPCM8_1X8, true },
+ { "SBGGR12", MEDIA_BUS_FMT_SBGGR12_1X12, true },
+ { "SGBRG12", MEDIA_BUS_FMT_SGBRG12_1X12, true },
+ { "SGRBG12", MEDIA_BUS_FMT_SGRBG12_1X12, true },
+ { "SRGGB12", MEDIA_BUS_FMT_SRGGB12_1X12, true },
+ { "AYUV32", MEDIA_BUS_FMT_AYUV8_1X32, true },
+ { "RBG24", MEDIA_BUS_FMT_RBG888_1X24, true },
+ { "RGB32", MEDIA_BUS_FMT_RGB888_1X32_PADHI, true },
+ { "ARGB32", MEDIA_BUS_FMT_ARGB8888_1X32, true },
+};
+
+static const enum v4l2_mbus_pixelcode mbus_codes[] = {
+#include "media-bus-format-codes.h"
};
const char *v4l2_subdev_pixelcode_to_string(enum v4l2_mbus_pixelcode code)
@@ -821,3 +826,10 @@ enum v4l2_field v4l2_subdev_string_to_field(const char *string,
return fields[i].field;
}
+
+const enum v4l2_mbus_pixelcode *v4l2_subdev_pixelcode_list(unsigned int *length)
+{
+ *length = ARRAY_SIZE(mbus_codes);
+
+ return mbus_codes;
+}
diff --git a/utils/media-ctl/v4l2subdev.h b/utils/media-ctl/v4l2subdev.h
index 104e420..97f46a8 100644
--- a/utils/media-ctl/v4l2subdev.h
+++ b/utils/media-ctl/v4l2subdev.h
@@ -279,4 +279,15 @@ const char *v4l2_subdev_field_to_string(enum v4l2_field field);
enum v4l2_field v4l2_subdev_string_to_field(const char *string,
unsigned int length);
+/**
+ * @brief Enumerate library supported media bus pixel codes.
+ * @param length - the number of the supported pixel codes
+ *
+ * Obtain pixel codes supported by libv4l2subdev.
+ *
+ * @return A pointer to the pixel code array
+ */
+const enum v4l2_mbus_pixelcode *v4l2_subdev_pixelcode_list(
+ unsigned int *length);
+
#endif
--
2.1.0.231.g7484e3b
next prev parent reply other threads:[~2016-02-21 21:32 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-21 21:29 [v4l-utils PATCH 0/4] List supported formats in libv4l2subdev Sakari Ailus
2016-02-21 21:29 ` [v4l-utils PATCH 1/4] v4l: libv4lsubdev: Make mbus_formats array const Sakari Ailus
2016-02-21 21:29 ` [v4l-utils PATCH 2/4] libv4l2subdev: Use generated format definitions in libv4l2subdev Sakari Ailus
2016-02-21 21:29 ` Sakari Ailus [this message]
2016-02-23 12:37 ` [v4l-utils PATCH 3/4] libv4l2subdev: Add a function to list library supported pixel codes Hans Verkuil
2016-02-23 15:58 ` Sakari Ailus
2016-02-21 21:29 ` [v4l-utils PATCH 4/4] media-ctl: List supported media bus formats Sakari Ailus
2016-02-23 12:18 ` Hans Verkuil
2016-02-23 16:11 ` Sakari Ailus
2016-02-23 16:15 ` Hans Verkuil
2016-02-23 20:15 ` Laurent Pinchart
2016-02-23 20:24 ` Sakari Ailus
2016-02-23 20:30 ` Laurent Pinchart
2016-02-24 8:35 ` Sakari Ailus
2016-02-24 15:38 ` Hans Verkuil
2016-02-24 15:41 ` Sakari Ailus
2016-02-24 15:44 ` Sakari Ailus
2016-02-23 12:35 ` Hans Verkuil
-- strict thread matches above, loose matches on Subject: below --
2015-11-09 13:25 [v4l-utils PATCH 0/4] List supported formats in libv4l2subdev Sakari Ailus
2015-11-09 13:25 ` [v4l-utils PATCH 3/4] libv4l2subdev: Add a function to list library supported pixel codes Sakari Ailus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1456090187-1191-4-git-send-email-sakari.ailus@linux.intel.com \
--to=sakari.ailus@linux.intel.com \
--cc=hverkuil@xs4all.nl \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.