Date: Wed, 21 Apr 2021 15:54:01 GMT From: Hans Petter Selasky <hselasky@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 3a28080660e5 - main - multimedia/libv4l: Add upstream patch to make the v4l2-ctl utility more useful. Message-ID: <202104211554.13LFs1oo057237@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by hselasky: URL: https://cgit.FreeBSD.org/ports/commit/?id=3a28080660e54a820fd7eedfae8ec768945d223c commit 3a28080660e54a820fd7eedfae8ec768945d223c Author: Hans Petter Selasky <hselasky@FreeBSD.org> AuthorDate: 2021-04-21 15:49:00 +0000 Commit: Hans Petter Selasky <hselasky@FreeBSD.org> CommitDate: 2021-04-21 15:51:47 +0000 multimedia/libv4l: Add upstream patch to make the v4l2-ctl utility more useful. Submitted by: Trenton Schulz <trenton@norwegianrockcat.com> Approved by: pi (implicit) --- multimedia/libv4l/Makefile | 1 + .../libv4l/files/patch-utils_common_media-info.cpp | 46 ++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/multimedia/libv4l/Makefile b/multimedia/libv4l/Makefile index f89b670b9516..e24c4033c92c 100644 --- a/multimedia/libv4l/Makefile +++ b/multimedia/libv4l/Makefile @@ -3,6 +3,7 @@ PORTNAME?= libv4l PORTVERSION= 1.20.0 +PORTREVISION= 1 DISTVERSIONPREFIX= v4l-utils- CATEGORIES= multimedia diff --git a/multimedia/libv4l/files/patch-utils_common_media-info.cpp b/multimedia/libv4l/files/patch-utils_common_media-info.cpp new file mode 100644 index 000000000000..f4c3dc6a306d --- /dev/null +++ b/multimedia/libv4l/files/patch-utils_common_media-info.cpp @@ -0,0 +1,46 @@ +--- utils/common/media-info.cpp.orig 2020-05-21 11:22:05 UTC ++++ utils/common/media-info.cpp +@@ -24,6 +24,10 @@ + #include <iostream> + #include <fstream> + #include <media-info.h> ++#ifndef __linux__ ++#include <linux/videodev2.h> ++#include <fcntl.h> ++#endif + + static std::string num2s(unsigned num, bool is_hex = true) + { +@@ -61,7 +65,7 @@ media_type mi_media_detect_type(const char *device) + + if (stat(device, &sb) == -1) + return MEDIA_TYPE_CANT_STAT; +- ++#ifdef __linux__ + std::string uevent_path("/sys/dev/char/"); + + uevent_path += num2s(major(sb.st_rdev), false) + ":" + +@@ -97,6 +101,23 @@ media_type mi_media_detect_type(const char *device) + } + + uevent_file.close(); ++#else // Not Linux ++ int fd = open(device, O_RDONLY); ++ if (fd >= 0) { ++ struct v4l2_capability caps; ++ int error = ioctl(fd, VIDIOC_QUERYCAP, &caps); ++ close(fd); ++ if (error == 0) { ++ if (caps.device_caps & V4L2_CAP_VIDEO_CAPTURE) { ++ return MEDIA_TYPE_VIDEO; ++ } else if (caps.device_caps & V4L2_CAP_VBI_CAPTURE) { ++ return MEDIA_TYPE_VBI; ++ } else if (caps.device_caps & V4L2_CAP_RADIO) { ++ return MEDIA_TYPE_RADIO; ++ } ++ } ++ } ++#endif + return MEDIA_TYPE_UNKNOWN; + } +
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202104211554.13LFs1oo057237>