+++ /dev/null
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=v4l-utils
-PKG_VERSION:=1.28.0
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=https://www.linuxtv.org/downloads/v4l-utils
-PKG_HASH:=fcb1ac1f22c1673e932b1779384f61cd6b7dd76e0e500bfb57e7a598588980b4
-
-
-PKG_BUILD_FLAGS:=no-mips16
-
-PKG_BUILD_DEPENDS:=!USE_GLIBC:argp-standalone
-PKG_CONFIG_DEPENDS:= \
- CONFIG_BUILD_NLS \
- CONFIG_PACKAGE_v4l-utils
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/meson.mk
-include $(INCLUDE_DIR)/nls.mk
-
-define Package/libv4l/Default
- TITLE:=Video 4 Linux
- URL:=https://www.linuxtv.org/
-endef
-
-define Package/libv4l/Default/description
- libv4l is a collection of libraries which adds a thin abstraction layer on
- top of video4linux2 devices. The purpose of this (thin) layer is to make it
- easy for application writers to support a wide variety of devices without
- having to write separate code for different devices in the same class. libv4l
- consists of 3 different libraries: libv4lconvert, libv4l1 and libv4l2.
-
- libv4l1 offers the (deprecated) v4l1 API on top of v4l2 devices, independent
- of the drivers for those devices supporting v4l1 compatibility (which many
- v4l2 drivers do not).
-
- libv4l2 offers the v4l2 API on top of v4l2 devices, while adding for the
- application transparent libv4lconvert conversion where necessary.
-endef
-
-define Package/libv4l
- $(call Package/libv4l/Default)
- SECTION:=libs
- CATEGORY:=Libraries
- TITLE+= wrapper libraries
- DEPENDS:=$(ICONV_DEPENDS)
- LICENSE:=LGPL-2.1-or-later
- LICENSE_FILES:=COPYING.libv4l
-endef
-
-define Package/libv4l/description
- $(call Package/libv4l/Default/description)
-endef
-
-define Package/v4l-utils
- $(call Package/libv4l/Default)
- SECTION:=utils
- CATEGORY:=Utilities
- TITLE+= utilities
- DEPENDS:=+libudev +libv4l +libstdcpp $(ICONV_DEPENDS) $(INTL_DEPENDS)
- LICENSE:=GPL-2.0-or-later
- LICENSE_FILES:=COPYING
-endef
-
-define Package/v4l-utils/description
- $(call Package/libv4l/Default/description)
- This package contains the video4linux utilities.
-endef
-
-MESON_ARGS += \
- -Db_lto=true \
- -Ddefault_library=both \
- -Dbpf=disabled \
- -Dgconv=disabled \
- -Djpeg=disabled \
- -Dlibdvbv5=disabled \
- -Dqv4l2=disabled \
- -Dqvidcap=disabled \
- -Dv4l-utils=$(if $(CONFIG_PACKAGE_v4l-utils),true,false) \
- -Ddoxygen-doc=disabled
-
-TARGET_LDFLAGS += -Wl,--gc-sections
-
-define Build/InstallDev
- $(INSTALL_DIR) $(1)/usr/include
- $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libv4l{1,2,convert,2rds}.{a,so*} $(1)/usr/lib/
- $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libv4l{1,2,convert,2rds}.pc $(1)/usr/lib/pkgconfig/
-endef
-
-define Package/libv4l/install
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libv4l{1,2,convert,2rds}.so.* $(1)/usr/lib/
- $(INSTALL_DIR) $(1)/usr/lib/libv4l
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libv4l/v4l{1compat,2convert}.so $(1)/usr/lib/libv4l/
-endef
-
-define Package/v4l-utils/install
- $(INSTALL_DIR) $(1)/etc
- $(CP) $(PKG_INSTALL_DIR)/etc/rc_maps.cfg $(1)/etc/
- $(CP) $(PKG_INSTALL_DIR)/etc/rc_keymaps $(1)/etc/
- $(INSTALL_DIR) $(1)/usr/bin
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/{rds,media,cx18,ivtv}-ctl $(1)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/decode_tm6000 $(1)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/ir-{ctl,keytable} $(1)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/v4l2-{compliance,ctl,sysfs-path} $(1)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/cec-{compliance,ctl,follower} $(1)/usr/bin/
-endef
-
-$(eval $(call BuildPackage,libv4l))
-$(eval $(call BuildPackage,v4l-utils))
+++ /dev/null
---- a/lib/libdvbv5/meson.build
-+++ b/lib/libdvbv5/meson.build
-@@ -124,6 +124,7 @@ install_headers(libdvbv5_api, subdir: 'l
-
- libdvbv5_deps = [
- dep_iconv,
-+ dep_intl,
- dep_libm,
- dep_librt,
- dep_libudev,
---- a/meson.build
-+++ b/meson.build
-@@ -202,6 +202,8 @@ size_t iconv (iconv_t cd, char * *inbuf,
- endif
- endif
-
-+dep_intl = dependency('intl')
-+
- have_gconv = cc.has_header('gconv.h', required : get_option('gconv'))
-
- # Detect system gconv directory
---- a/utils/dvb/meson.build
-+++ b/utils/dvb/meson.build
-@@ -1,5 +1,6 @@
- dvb_common_deps = [
- dep_argp,
-+ dep_intl,
- dep_libdvbv5,
- dep_libudev,
- dep_threads,
---- a/utils/ir-ctl/meson.build
-+++ b/utils/ir-ctl/meson.build
-@@ -12,6 +12,7 @@ ir_ctl_sources = files(
-
- ir_ctl_deps = [
- dep_argp,
-+ dep_intl,
- ]
-
- ir_ctl = executable('ir-ctl',
---- a/utils/keytable/meson.build
-+++ b/utils/keytable/meson.build
-@@ -11,6 +11,7 @@ ir_keytable_sources = files(
-
- ir_keytable_deps = [
- dep_argp,
-+ dep_intl,
- ]
-
- ir_keytable_system_dir = udevdir
+++ /dev/null
---- a/utils/v4l2-tracer/retrace.cpp
-+++ b/utils/v4l2-tracer/retrace.cpp
-@@ -10,10 +10,7 @@ extern struct retrace_context ctx_retrac
- void retrace_mmap(json_object *mmap_obj, bool is_mmap64)
- {
- json_object *mmap_args_obj;
-- if (is_mmap64)
-- json_object_object_get_ex(mmap_obj, "mmap64", &mmap_args_obj);
-- else
-- json_object_object_get_ex(mmap_obj, "mmap", &mmap_args_obj);
-+ json_object_object_get_ex(mmap_obj, "mmap", &mmap_args_obj);
-
- json_object *len_obj;
- json_object_object_get_ex(mmap_args_obj, "len", &len_obj);
-@@ -46,10 +43,7 @@ void retrace_mmap(json_object *mmap_obj,
- return;
-
- void *buf_address_retrace_pointer = nullptr;
-- if (is_mmap64)
-- buf_address_retrace_pointer = mmap64(0, len, prot, flags, fd_retrace, off);
-- else
-- buf_address_retrace_pointer = mmap(0, len, prot, flags, fd_retrace, off);
-+ buf_address_retrace_pointer = mmap(0, len, prot, flags, fd_retrace, off);
-
- if (buf_address_retrace_pointer == MAP_FAILED) {
- if (is_mmap64)
-@@ -116,10 +110,7 @@ void retrace_open(json_object *jobj, boo
- int fd_trace = json_object_get_int(fd_trace_obj);
-
- json_object *open_args_obj;
-- if (is_open64)
-- json_object_object_get_ex(jobj, "open64", &open_args_obj);
-- else
-- json_object_object_get_ex(jobj, "open", &open_args_obj);
-+ json_object_object_get_ex(jobj, "open", &open_args_obj);
-
- json_object *path_obj;
- std::string path_trace;
-@@ -148,10 +139,7 @@ void retrace_open(json_object *jobj, boo
- mode = s2number(json_object_get_string(mode_obj));
-
- int fd_retrace = 0;
-- if (is_open64)
-- fd_retrace = open64(path_retrace.c_str(), oflag, mode);
-- else
-- fd_retrace = open(path_retrace.c_str(), oflag, mode);
-+ fd_retrace = open(path_retrace.c_str(), oflag, mode);
-
- if (fd_retrace <= 0) {
- line_info("\n\tCan't open: %s", path_retrace.c_str());
--- /dev/null
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=v4l-utils
+PKG_VERSION:=1.30.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://www.linuxtv.org/downloads/v4l-utils
+PKG_HASH:=c1cf549c2ec3cf39eb5ec7bf15731349e61b26a21b5e963922db422333bae197
+
+
+PKG_BUILD_FLAGS:=no-mips16
+
+PKG_BUILD_DEPENDS:=!USE_GLIBC:argp-standalone
+PKG_CONFIG_DEPENDS:= \
+ CONFIG_BUILD_NLS \
+ CONFIG_PACKAGE_v4l-utils
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/meson.mk
+include $(INCLUDE_DIR)/nls.mk
+
+define Package/libv4l/Default
+ TITLE:=Video 4 Linux
+ URL:=https://www.linuxtv.org/
+endef
+
+define Package/libv4l/Default/description
+ libv4l is a collection of libraries which adds a thin abstraction layer on
+ top of video4linux2 devices. The purpose of this (thin) layer is to make it
+ easy for application writers to support a wide variety of devices without
+ having to write separate code for different devices in the same class. libv4l
+ consists of 3 different libraries: libv4lconvert, libv4l1 and libv4l2.
+
+ libv4l1 offers the (deprecated) v4l1 API on top of v4l2 devices, independent
+ of the drivers for those devices supporting v4l1 compatibility (which many
+ v4l2 drivers do not).
+
+ libv4l2 offers the v4l2 API on top of v4l2 devices, while adding for the
+ application transparent libv4lconvert conversion where necessary.
+endef
+
+define Package/libv4l
+ $(call Package/libv4l/Default)
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE+= wrapper libraries
+ DEPENDS:=$(ICONV_DEPENDS)
+ LICENSE:=LGPL-2.1-or-later
+ LICENSE_FILES:=COPYING.libv4l
+endef
+
+define Package/libv4l/description
+ $(call Package/libv4l/Default/description)
+endef
+
+define Package/v4l-utils
+ $(call Package/libv4l/Default)
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE+= utilities
+ DEPENDS:=+libudev +libv4l +libstdcpp $(ICONV_DEPENDS) $(INTL_DEPENDS)
+ LICENSE:=GPL-2.0-or-later
+ LICENSE_FILES:=COPYING
+endef
+
+define Package/v4l-utils/description
+ $(call Package/libv4l/Default/description)
+ This package contains the video4linux utilities.
+endef
+
+define Package/edid-decode
+ $(call Package/libv4l/Default)
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE:=EDID decode
+ DEPENDS:=+libstdcpp
+endef
+
+define Package/edid-decode/description
+ Display EDID decoder application
+endef
+
+MESON_ARGS += \
+ -Db_lto=false \
+ -Ddefault_library=both \
+ -Dbpf=disabled \
+ -Dgconv=disabled \
+ -Djpeg=disabled \
+ -Dlibdvbv5=disabled \
+ -Dqv4l2=disabled \
+ -Dqvidcap=disabled \
+ -Dv4l-utils=$(if $(CONFIG_PACKAGE_v4l-utils)$(CONFIG_PACKAGE_edid-decode),true,false) \
+ -Ddoxygen-doc=disabled
+
+TARGET_LDFLAGS += -Wl,--gc-sections
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libv4l{1,2,convert,2rds}.{a,so*} $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libv4l{1,2,convert,2rds}.pc $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/libv4l/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libv4l{1,2,convert,2rds}.so.* $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/usr/lib/libv4l
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libv4l/v4l{1compat,2convert}.so $(1)/usr/lib/libv4l/
+endef
+
+define Package/v4l-utils/install
+ $(INSTALL_DIR) $(1)/etc
+ $(CP) $(PKG_INSTALL_DIR)/etc/rc_maps.cfg $(1)/etc/
+ $(CP) $(PKG_INSTALL_DIR)/etc/rc_keymaps $(1)/etc/
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/{rds,media,cx18,ivtv}-ctl $(1)/usr/bin/
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/decode_tm6000 $(1)/usr/bin/
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/ir-{ctl,keytable} $(1)/usr/bin/
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/v4l2-{compliance,ctl,sysfs-path} $(1)/usr/bin/
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/cec-{compliance,ctl,follower} $(1)/usr/bin/
+endef
+
+define Package/edid-decode/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/edid-decode $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,libv4l))
+$(eval $(call BuildPackage,v4l-utils))
+$(eval $(call BuildPackage,edid-decode))
--- /dev/null
+--- a/utils/v4l2-tracer/retrace.cpp
++++ b/utils/v4l2-tracer/retrace.cpp
+@@ -10,10 +10,7 @@ extern struct retrace_context ctx_retrac
+ void retrace_mmap(json_object *mmap_obj, bool is_mmap64)
+ {
+ json_object *mmap_args_obj;
+- if (is_mmap64)
+- json_object_object_get_ex(mmap_obj, "mmap64", &mmap_args_obj);
+- else
+- json_object_object_get_ex(mmap_obj, "mmap", &mmap_args_obj);
++ json_object_object_get_ex(mmap_obj, "mmap", &mmap_args_obj);
+
+ json_object *len_obj;
+ json_object_object_get_ex(mmap_args_obj, "len", &len_obj);
+@@ -46,10 +43,7 @@ void retrace_mmap(json_object *mmap_obj,
+ return;
+
+ void *buf_address_retrace_pointer = nullptr;
+- if (is_mmap64)
+- buf_address_retrace_pointer = mmap64(0, len, prot, flags, fd_retrace, off);
+- else
+- buf_address_retrace_pointer = mmap(0, len, prot, flags, fd_retrace, off);
++ buf_address_retrace_pointer = mmap(0, len, prot, flags, fd_retrace, off);
+
+ if (buf_address_retrace_pointer == MAP_FAILED) {
+ if (is_mmap64)
+@@ -116,10 +110,7 @@ void retrace_open(json_object *jobj, boo
+ int fd_trace = json_object_get_int(fd_trace_obj);
+
+ json_object *open_args_obj;
+- if (is_open64)
+- json_object_object_get_ex(jobj, "open64", &open_args_obj);
+- else
+- json_object_object_get_ex(jobj, "open", &open_args_obj);
++ json_object_object_get_ex(jobj, "open", &open_args_obj);
+
+ json_object *path_obj;
+ std::string path_trace;
+@@ -148,10 +139,7 @@ void retrace_open(json_object *jobj, boo
+ mode = s2number(json_object_get_string(mode_obj));
+
+ int fd_retrace = 0;
+- if (is_open64)
+- fd_retrace = open64(path_retrace.c_str(), oflag, mode);
+- else
+- fd_retrace = open(path_retrace.c_str(), oflag, mode);
++ fd_retrace = open(path_retrace.c_str(), oflag, mode);
+
+ if (fd_retrace <= 0) {
+ line_info("\n\tCan't open: %s", path_retrace.c_str());