mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 17:59:20 -04:00
multimedia/libv4l: Add upstream patch to make the v4l2-ctl utility more useful.
Submitted by: Trenton Schulz <trenton@norwegianrockcat.com> Approved by: pi (implicit)
This commit is contained in:
parent
55f69b2ce5
commit
3a28080660
2 changed files with 47 additions and 0 deletions
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
PORTNAME?= libv4l
|
PORTNAME?= libv4l
|
||||||
PORTVERSION= 1.20.0
|
PORTVERSION= 1.20.0
|
||||||
|
PORTREVISION= 1
|
||||||
DISTVERSIONPREFIX= v4l-utils-
|
DISTVERSIONPREFIX= v4l-utils-
|
||||||
CATEGORIES= multimedia
|
CATEGORIES= multimedia
|
||||||
|
|
||||||
|
|
46
multimedia/libv4l/files/patch-utils_common_media-info.cpp
Normal file
46
multimedia/libv4l/files/patch-utils_common_media-info.cpp
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue