@@ -1 +1,2 @@
media-ctl
+media-bus-formats.h
@@ -4,6 +4,14 @@ libmediactl_la_SOURCES = libmediactl.c mediactl-priv.h
libmediactl_la_CFLAGS = -static $(LIBUDEV_CFLAGS)
libmediactl_la_LDFLAGS = -static $(LIBUDEV_LIBS)
+media-bus-formats.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-formats.h
+CLEANFILES = media-bus-formats.h
+
+nodist_libv4l2subdev_la_SOURCES = media-bus-formats.h
libv4l2subdev_la_SOURCES = libv4l2subdev.c
libv4l2subdev_la_LIBADD = libmediactl.la
libv4l2subdev_la_CFLAGS = -static
@@ -719,6 +719,7 @@ static struct {
const char *name;
enum v4l2_mbus_pixelcode code;
} mbus_formats[] = {
+#include "media-bus-formats.h"
{ "Y8", MEDIA_BUS_FMT_Y8_1X8},
{ "Y10", MEDIA_BUS_FMT_Y10_1X10 },
{ "Y12", MEDIA_BUS_FMT_Y12_1X12 },
Instead of manually adding each and every new media bus pixel code to libv4l2subdev, generate the list automatically. The pre-existing formats that do not match the list are not modified so that existing users are unaffected by this change, with the exception of converting codes to strings, which will use the new definitions. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> --- utils/media-ctl/.gitignore | 1 + utils/media-ctl/Makefile.am | 8 ++++++++ utils/media-ctl/libv4l2subdev.c | 1 + 3 files changed, 10 insertions(+)