aboutsummaryrefslogtreecommitdiffstats
path: root/multimedia
diff options
context:
space:
mode:
authorkwm <kwm@FreeBSD.org>2015-06-14 12:59:37 +0800
committerkwm <kwm@FreeBSD.org>2015-06-14 12:59:37 +0800
commit94807bcca6ff64d24fa64e9d4e34a1f12b0c8501 (patch)
treee28f69d965fffbb0ca82d5ddafa17b411ba2eeed /multimedia
parente23811d80c423dbda8b8ebcaaa8a0a84aecbe8d4 (diff)
downloadfreebsd-ports-gnome-94807bcca6ff64d24fa64e9d4e34a1f12b0c8501.tar.gz
freebsd-ports-gnome-94807bcca6ff64d24fa64e9d4e34a1f12b0c8501.tar.zst
freebsd-ports-gnome-94807bcca6ff64d24fa64e9d4e34a1f12b0c8501.zip
Update libv4l and friends to 1.6.3.
Turn v4l-util and v4l_compat into slave ports. "Steal" the dvb headers from linux 3.16.7 and roll them into a tarball. Assign maintainership to multimedia@ Differential Revision: https://reviews.freebsd.org/D1482 Approved by: nox@, hslasky@, kwm@ (multimedia@)
Diffstat (limited to 'multimedia')
-rw-r--r--multimedia/libv4l/Makefile79
-rw-r--r--multimedia/libv4l/distinfo6
-rw-r--r--multimedia/libv4l/files/extra-linux_dvb_ca.h (renamed from multimedia/v4l_compat/files/patch-dvb-ca.h)6
-rw-r--r--multimedia/libv4l/files/extra-linux_dvb_osd.h11
-rw-r--r--multimedia/libv4l/files/patch-Make.rules26
-rw-r--r--multimedia/libv4l/files/patch-configure11
-rw-r--r--multimedia/libv4l/files/patch-include_libv4l1-videodev.h18
-rw-r--r--multimedia/libv4l/files/patch-include_linux_dvb_frontend.h17
-rw-r--r--multimedia/libv4l/files/patch-include_linux_dvb_video.h11
-rw-r--r--multimedia/libv4l/files/patch-lib_Makefile.in13
-rw-r--r--multimedia/libv4l/files/patch-lib_libv4lconvert_control_libv4lcontrol.c (renamed from multimedia/libv4l/files/patch-libv4lconvert_control_libv4lcontrol.c)21
-rw-r--r--multimedia/libv4l/files/patch-utils_Makefile.in11
-rw-r--r--multimedia/libv4l/files/patch-utils_v4l2-ctl_v4l2-ctl.cpp54
-rw-r--r--multimedia/libv4l/files/videodev.h340
-rw-r--r--multimedia/libv4l/pkg-plist64
-rw-r--r--multimedia/v4l-utils/Makefile38
-rw-r--r--multimedia/v4l-utils/distinfo2
-rw-r--r--multimedia/v4l-utils/pkg-plist124
-rw-r--r--multimedia/v4l_compat/Makefile46
-rw-r--r--multimedia/v4l_compat/distinfo2
-rw-r--r--multimedia/v4l_compat/pkg-plist12
21 files changed, 664 insertions, 248 deletions
diff --git a/multimedia/libv4l/Makefile b/multimedia/libv4l/Makefile
index f2b73c661743..9b14fa02c618 100644
--- a/multimedia/libv4l/Makefile
+++ b/multimedia/libv4l/Makefile
@@ -1,32 +1,73 @@
# Created by: Andrew Thompson <thompsa@FreeBSD.org>
# $FreeBSD$
+# Check v4l_compat and v4l-utils slave ports
-PORTNAME= libv4l
-PORTVERSION= 0.8.8
-PORTREVISION= 2
+PORTNAME?= libv4l
+PORTVERSION= 1.6.3
+PORTREVISION?= 0
CATEGORIES= multimedia
-MASTER_SITES= http://linuxtv.org/downloads/v4l-utils/
-DISTNAME= v4l-utils-${PORTVERSION}
+MASTER_SITES= http://linuxtv.org/downloads/v4l-utils/:master \
+ LOCAL/kwm:local
+DISTFILES+= v4l-utils-${PORTVERSION}.tar.bz2:master \
+ linux-3.16.7-dvb-headers.tar.xz:local
-MAINTAINER= hselasky@FreeBSD.org
-COMMENT= Video4Linux library
+MAINTAINER= multimedia@FreeBSD.org
+COMMENT?= Video4Linux library
-BUILD_DEPENDS= v4l_compat>=1.0.20120501:${PORTSDIR}/multimedia/v4l_compat
-LIB_DEPENDS= libjpeg.so:${PORTSDIR}/graphics/jpeg
+LICENSE= GPLv2 LGPL21
+LICENSE_COMB= dual
-MAKE_ARGS= CFLAGS="${CFLAGS} -I${LOCALBASE}/include" \
- LDFLAGS="-L${LOCALBASE}/lib" LIBDIR="${PREFIX}/lib"
-USES= gmake tar:bzip2
+LIBV4L_SLAVE?= no
+
+USES= tar:bzip2
+WRKSRC= ${WRKDIR}/v4l-utils-${PORTVERSION}
+
+.if ${LIBV4L_SLAVE} != compat
+BUILD_DEPENDS+= v4l_compat>=${PORTVERSION}:${PORTSDIR}/multimedia/v4l_compat
+LIB_DEPENDS+= libjpeg.so:${PORTSDIR}/graphics/jpeg \
+ libargp.so:${PORTSDIR}/devel/argp-standalone
+
+GNU_CONFIGURE= yes
+CPPFLAGS+= -I${LOCALBASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib
+USES+= gmake libtool pathfix pkgconfig
USE_LDCONFIG= yes
+CONFIGURE_ARGS= --enable-libdvbv5 \
+ --disable-qv4l2 \
+ --without-libudev
+INSTALL_TARGET= install-strip
+
+. if ${LIBV4L_SLAVE} == utils
+BUILD_DEPENDS+= libv4l>=${PORTVERSION}:${PORTSDIR}/multimedia/libv4l
+LIB_DEPENDS+= libv4l2.so:${PORTSDIR}/multimedia/libv4l
+# Disabling building libv4l in the utils slave is too much hackery
+# Lets wait for subpackages
+CONFIGURE_ARGS+=--enable-v4l-utils
+. else
+CONFIGURE_ARGS+=--disable-v4l-utils --enable-libv4l
+. endif
+.endif
-WRKSRC= ${WRKDIR}/${DISTNAME}/lib
+HEADER_PATCHES= extra-linux_dvb_ca.h \
+ extra-linux_dvb_osd.h \
+ patch-include_linux_dvb_frontend.h \
+ patch-include_linux_dvb_video.h
post-patch:
- @${REINPLACE_CMD} -e 's|$$(LIBDIR)/pkgconfig|${PREFIX}/libdata/pkgconfig|g' \
- -e 's|-lrt||g' \
- ${WRKSRC}/libv4l1/Makefile \
- ${WRKSRC}/libv4l2/Makefile \
- ${WRKSRC}/libv4lconvert/Makefile
- @${RM} ${WRKSRC}/../include/linux/videodev2.h
+ @${REINPLACE_CMD} -e 's|$$libdir/pkgconfig|${PREFIX}/libdata/pkgconfig|g' \
+ ${WRKSRC}/configure
+# fix weird types, except a few headers which have compat code for these types.
+ @${FIND} ${WRKDIR} -type f \( -iname "*.h" ! -iname "input.h" ! -iname "videodev2.h" \) | \
+ ${XARGS} -n 10 ${REINPLACE_CMD} \
+ -e 's|linux/types.h|sys/types.h|g; s|__user||g; \
+ s|__u8|uint8_t|g; s|__s8|int8_t|g; \
+ s|__u16|uint16_t|g; s|__s16|int16_t|g; \
+ s|__u32|uint32_t|g; s|__s32|int32_t|g; \
+ s|__u64|uint64_t|g; s|__s64|int64_t|g'
+.if ${LIBV4L_SLAVE} == compat
+.for patch in ${HEADER_PATCHES}
+ @cd ${WRKDIR}/linux && ${PATCH} -p2 < ${FILESDIR}/${patch}
+.endfor
+.endif
.include <bsd.port.mk>
diff --git a/multimedia/libv4l/distinfo b/multimedia/libv4l/distinfo
index 987c1e3abebd..69a66754e59b 100644
--- a/multimedia/libv4l/distinfo
+++ b/multimedia/libv4l/distinfo
@@ -1,2 +1,4 @@
-SHA256 (v4l-utils-0.8.8.tar.bz2) = 5fa4c6f4b6f5410de57271a03cc9a15f15195ef3fc05a8e42ecf507d6d70a87f
-SIZE (v4l-utils-0.8.8.tar.bz2) = 420888
+SHA256 (v4l-utils-1.6.3.tar.bz2) = 164abf5c1befcd27e8e6ef824a82d4015bdfb5d99ae82daa00e77d895ff9864c
+SIZE (v4l-utils-1.6.3.tar.bz2) = 1151081
+SHA256 (linux-3.16.7-dvb-headers.tar.xz) = 0ee217b243d52b8104e6b61bbf009bf84155573317720f41930af0a9ef50cdaa
+SIZE (linux-3.16.7-dvb-headers.tar.xz) = 11712
diff --git a/multimedia/v4l_compat/files/patch-dvb-ca.h b/multimedia/libv4l/files/extra-linux_dvb_ca.h
index bc42f2e9cdca..d1352f6ed8f7 100644
--- a/multimedia/v4l_compat/files/patch-dvb-ca.h
+++ b/multimedia/libv4l/files/extra-linux_dvb_ca.h
@@ -1,6 +1,6 @@
---- dvb/ca.h.orig
-+++ dvb/ca.h
-@@ -80,9 +80,17 @@ typedef struct ca_pid {
+--- ../linux/dvb/ca.h.orig 2014-12-01 10:58:18.000000000 +0100
++++ ../linux/dvb/ca.h 2015-01-23 22:41:21.761540460 +0100
+@@ -80,9 +80,17 @@
#define CA_RESET _IO('o', 128)
#define CA_GET_CAP _IOR('o', 129, ca_caps_t)
diff --git a/multimedia/libv4l/files/extra-linux_dvb_osd.h b/multimedia/libv4l/files/extra-linux_dvb_osd.h
new file mode 100644
index 000000000000..55d9806c0c39
--- /dev/null
+++ b/multimedia/libv4l/files/extra-linux_dvb_osd.h
@@ -0,0 +1,11 @@
+--- ../linux/dvb/osd.h.bak 2014-12-01 10:58:18.000000000 +0100
++++ ../linux/dvb/osd.h 2015-01-24 00:12:54.252160592 +0100
+@@ -24,7 +24,7 @@
+ #ifndef _DVBOSD_H_
+ #define _DVBOSD_H_
+
+-#include <linux/compiler.h>
++#include <sys/types.h>
+
+ typedef enum {
+ // All functions return -2 on "not open"
diff --git a/multimedia/libv4l/files/patch-Make.rules b/multimedia/libv4l/files/patch-Make.rules
deleted file mode 100644
index 23ed35a13bef..000000000000
--- a/multimedia/libv4l/files/patch-Make.rules
+++ /dev/null
@@ -1,26 +0,0 @@
---- ../Make.rules.orig 2010-08-26 17:19:37.000000000 +0200
-+++ ../Make.rules 2010-11-04 20:26:22.000000000 +0100
-@@ -7,8 +7,8 @@ CFLAGS += -Wall -Wpointer-arith
- CXXFLAGS := $(CFLAGS)
- CFLAGS += -Wstrict-prototypes -Wmissing-prototypes
-
--PREFIX = /usr/local
--LIBDIR = $(PREFIX)/lib
-+PREFIX ?= /usr/local
-+LIBDIR ?= $(PREFIX)/lib
- # subdir below LIBDIR in which to install the libv4lx libc wrappers
- LIBSUBDIR = libv4l
-
-@@ -22,10 +22,10 @@ LIB_RELEASE = 0
- # And last various rules
-
- %.o: %.c
-- $(CC) -Wp,-MMD,"$*.d",-MQ,"$@",-MP -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
-+ $(CC) -MMD -MF "$*.d" -MQ "$@" -MP -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
-
- %.o: %.cpp
-- $(CXX) -Wp,-MMD,"$*.d",-MQ,"$@",-MP -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $<
-+ $(CXX) -MMD -MF "$*.d" -MQ "$@" -MP -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $<
-
- %.so:
- $(CC) -shared $(LDFLAGS) -Wl,-soname,$@.$(LIB_RELEASE) -o $@.$(LIB_RELEASE) $^ $(LIBS_$*)
diff --git a/multimedia/libv4l/files/patch-configure b/multimedia/libv4l/files/patch-configure
new file mode 100644
index 000000000000..88cb70f21836
--- /dev/null
+++ b/multimedia/libv4l/files/patch-configure
@@ -0,0 +1,11 @@
+--- configure.orig 2015-01-25 19:42:02.248041140 +0100
++++ configure 2015-01-25 19:42:14.503036421 +0100
+@@ -19876,7 +19876,7 @@
+ WITH_LIBV4L_FALSE=
+ fi
+
+- if test x$enable_v4l_utils != xno -a x$linux_os = xyes; then
++ if test x$enable_v4l_utils != xno; then
+ WITH_V4LUTILS_TRUE=
+ WITH_V4LUTILS_FALSE='#'
+ else
diff --git a/multimedia/libv4l/files/patch-include_libv4l1-videodev.h b/multimedia/libv4l/files/patch-include_libv4l1-videodev.h
deleted file mode 100644
index c63ef5c1e4ce..000000000000
--- a/multimedia/libv4l/files/patch-include_libv4l1-videodev.h
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -ru v4l-utils-0.8.4.orig/lib/include/libv4l1-videodev.h v4l-utils-0.8.4/lib/include/libv4l1-videodev.h
---- include/libv4l1-videodev.h 2011-06-27 09:52:38.000000000 +0200
-+++ include/libv4l1-videodev.h 2011-06-27 09:55:51.000000000 +0200
-@@ -2,7 +2,14 @@
- #ifndef __LINUX_VIDEODEV_H
- #define __LINUX_VIDEODEV_H
-
-+#ifdef linux
- #include <linux/ioctl.h>
-+#endif
-+
-+#ifdef __FreeBSD__
-+#include <sys/ioctl.h>
-+#endif
-+
- #include <stdint.h>
-
- #define VID_TYPE_CAPTURE 1 /* Can capture */
diff --git a/multimedia/libv4l/files/patch-include_linux_dvb_frontend.h b/multimedia/libv4l/files/patch-include_linux_dvb_frontend.h
new file mode 100644
index 000000000000..bb9b61dfe278
--- /dev/null
+++ b/multimedia/libv4l/files/patch-include_linux_dvb_frontend.h
@@ -0,0 +1,17 @@
+--- include/linux/dvb/frontend.h.orig 2015-01-10 15:04:07.446370686 +0100
++++ include/linux/dvb/frontend.h 2015-01-10 15:05:20.367365809 +0100
+@@ -549,7 +549,13 @@
+ };
+
+ #define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties)
+-#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties)
++/*
++ * This is broken on linux as well but they workaround it in the driver.
++ * Since this is impossible to do on FreeBSD fix the header instead.
++ * Detailed and discussion :
++ * http://lists.freebsd.org/pipermail/freebsd-multimedia/2010-April/010958.html
++ */
++#define FE_GET_PROPERTY _IOW('o', 83, struct dtv_properties)
+
+
+ /**
diff --git a/multimedia/libv4l/files/patch-include_linux_dvb_video.h b/multimedia/libv4l/files/patch-include_linux_dvb_video.h
new file mode 100644
index 000000000000..eb05f38fb57f
--- /dev/null
+++ b/multimedia/libv4l/files/patch-include_linux_dvb_video.h
@@ -0,0 +1,11 @@
+--- include/linux/dvb/video.h.orig 2015-01-10 15:05:58.438363362 +0100
++++ include/linux/dvb/video.h 2015-01-10 15:06:25.350361374 +0100
+@@ -133,7 +133,7 @@
+ #define VIDEO_EVENT_FRAME_RATE_CHANGED 2
+ #define VIDEO_EVENT_DECODER_STOPPED 3
+ #define VIDEO_EVENT_VSYNC 4
+- __kernel_time_t timestamp;
++ struct timespec timestamp;
+ union {
+ video_size_t size;
+ unsigned int frame_rate; /* in frames per 1000sec */
diff --git a/multimedia/libv4l/files/patch-lib_Makefile.in b/multimedia/libv4l/files/patch-lib_Makefile.in
new file mode 100644
index 000000000000..e70776250578
--- /dev/null
+++ b/multimedia/libv4l/files/patch-lib_Makefile.in
@@ -0,0 +1,13 @@
+--- lib/Makefile.in.orig 2015-01-12 10:51:50.193906738 +0100
++++ lib/Makefile.in 2015-01-12 10:52:04.848018891 +0100
+@@ -77,8 +77,8 @@
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-@LINUX_OS_TRUE@am__append_1 = \
+-@LINUX_OS_TRUE@ libdvbv5
++am__append_1 = \
++ libdvbv5
+
+ subdir = lib
+ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
diff --git a/multimedia/libv4l/files/patch-libv4lconvert_control_libv4lcontrol.c b/multimedia/libv4l/files/patch-lib_libv4lconvert_control_libv4lcontrol.c
index 35eeec85f6b8..ada1fc0ce46b 100644
--- a/multimedia/libv4l/files/patch-libv4lconvert_control_libv4lcontrol.c
+++ b/multimedia/libv4l/files/patch-lib_libv4lconvert_control_libv4lcontrol.c
@@ -1,6 +1,6 @@
---- libv4lconvert/control/libv4lcontrol.c.orig 2012-05-02 21:17:37.000000000 +0200
-+++ libv4lconvert/control/libv4lcontrol.c 2012-05-06 08:52:42.000000000 +0200
-@@ -345,6 +345,16 @@
+--- lib/libv4lconvert/control/libv4lcontrol.c.orig 2014-07-26 21:33:00.000000000 +0200
++++ lib/libv4lconvert/control/libv4lcontrol.c 2015-01-11 09:40:05.521158993 +0100
+@@ -361,6 +361,16 @@
unsigned short *vendor_id, unsigned short *product_id,
int *speed)
{
@@ -17,7 +17,7 @@
FILE *f;
int i, minor;
struct stat st;
-@@ -434,6 +444,7 @@
+@@ -457,6 +467,7 @@
return 0; /* Should never happen */
return 1;
@@ -25,16 +25,3 @@
}
/*
-@@ -456,7 +456,12 @@
- while (isspace(*start)) start++;
- n = strlen(start);
- while (n > 0 && isspace(start[n-1])) --n;
-+#ifndef __FreeBSD__
- trimmed_dmi = strndupa(start, n);
-+#else
-+ trimmed_dmi = (char *)alloca(n + 1);
-+ strlcpy(trimmed_dmi, start, n + 1);
-+#endif
-
- /* find trimmed value */
- for (entry_ptr = table_entries; *entry_ptr; entry_ptr++) {
diff --git a/multimedia/libv4l/files/patch-utils_Makefile.in b/multimedia/libv4l/files/patch-utils_Makefile.in
new file mode 100644
index 000000000000..01ff4e13714c
--- /dev/null
+++ b/multimedia/libv4l/files/patch-utils_Makefile.in
@@ -0,0 +1,11 @@
+--- utils/Makefile.in.orig 2015-01-25 19:52:31.619994565 +0100
++++ utils/Makefile.in 2015-01-25 19:53:34.975249497 +0100
+@@ -374,7 +374,7 @@
+ top_srcdir = @top_srcdir@
+ udevrulesdir = @udevrulesdir@
+ SUBDIRS = dvb libv4l2util libmedia_dev decode_tm6000 keytable \
+- media-ctl v4l2-compliance v4l2-ctl v4l2-dbg v4l2-sysfs-path \
++ v4l2-compliance v4l2-dbg v4l2-sysfs-path \
+ rds-ctl $(am__append_1) $(am__append_2) $(am__append_3)
+ all: all-recursive
+
diff --git a/multimedia/libv4l/files/patch-utils_v4l2-ctl_v4l2-ctl.cpp b/multimedia/libv4l/files/patch-utils_v4l2-ctl_v4l2-ctl.cpp
new file mode 100644
index 000000000000..6db9c5db638e
--- /dev/null
+++ b/multimedia/libv4l/files/patch-utils_v4l2-ctl_v4l2-ctl.cpp
@@ -0,0 +1,54 @@
+--- utils/v4l2-ctl/v4l2-ctl.cpp.orig 2015-06-14 00:23:03.316457000 -0400
++++ utils/v4l2-ctl/v4l2-ctl.cpp 2015-06-14 00:28:46.421843000 -0400
+@@ -614,9 +614,50 @@ static std::string cap2s(unsigned cap)
+ return s;
+ }
+
++#if __FreeBSD_version < 1000000
++/* from FreeBSD src/lib/libc/string/strchrnul.c: */
++
++char *strchrnul(const char *p, int ch);
++
++char *
++strchrnul(const char *p, int ch)
++{
++ char c;
++
++ c = ch;
++ for (;; ++p) {
++ if (*p == c || *p == '\0')
++ return ((char *)p);
++ }
++ /* NOTREACHED */
++}
++#endif
++
++int
++my_getsubopt(char **optionp, char *const *tokens, char **valuep)
++{
++ char *endp, *vstart;
++ int cnt;
++
++ if (**optionp == '\0')
++ return -1;
++
++ /* Find end of next token. */
++ endp = strchrnul (*optionp, ',');
++
++ /* The current suboption does not match any option. */
++ *valuep = *optionp;
++
++ if (*endp != '\0')
++ *endp++ = '\0';
++ *optionp = endp;
++
++ return -1;
++}
++
+ int parse_subopt(char **subs, const char * const *subopts, char **value)
+ {
+- int opt = getsubopt(subs, (char * const *)subopts, value);
++ int opt = my_getsubopt(subs, (char * const *)subopts, value);
+
+ if (opt == -1) {
+ fprintf(stderr, "Invalid suboptions specified\n");
diff --git a/multimedia/libv4l/files/videodev.h b/multimedia/libv4l/files/videodev.h
new file mode 100644
index 000000000000..c26f07da98fa
--- /dev/null
+++ b/multimedia/libv4l/files/videodev.h
@@ -0,0 +1,340 @@
+/*
+ * Video for Linux version 1 - OBSOLETE
+ *
+ * Header file for v4l1 drivers and applications, for
+ * Linux kernels 2.2.x or 2.4.x.
+ *
+ * Provides header for legacy drivers and applications
+ *
+ * See http://linuxtv.org for more info
+ *
+ */
+#ifndef __LINUX_VIDEODEV_H
+#define __LINUX_VIDEODEV_H
+
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <linux/videodev2.h>
+
+#if defined(__MIN_V4L1) && defined (__KERNEL__)
+
+/*
+ * Used by those V4L2 core functions that need a minimum V4L1 support,
+ * in order to allow V4L1 Compatibilty code compilation.
+ */
+
+struct video_mbuf
+{
+ int size; /* Total memory to map */
+ int frames; /* Frames */
+ int offsets[VIDEO_MAX_FRAME];
+};
+
+#define VIDIOCGMBUF _IOR('v',20, struct video_mbuf) /* Memory map buffer info */
+
+#else
+#if defined(CONFIG_VIDEO_V4L1_COMPAT) || !defined (__KERNEL__)
+
+#define VID_TYPE_CAPTURE 1 /* Can capture */
+#define VID_TYPE_TUNER 2 /* Can tune */
+#define VID_TYPE_TELETEXT 4 /* Does teletext */
+#define VID_TYPE_OVERLAY 8 /* Overlay onto frame buffer */
+#define VID_TYPE_CHROMAKEY 16 /* Overlay by chromakey */
+#define VID_TYPE_CLIPPING 32 /* Can clip */
+#define VID_TYPE_FRAMERAM 64 /* Uses the frame buffer memory */
+#define VID_TYPE_SCALES 128 /* Scalable */
+#define VID_TYPE_MONOCHROME 256 /* Monochrome only */
+#define VID_TYPE_SUBCAPTURE 512 /* Can capture subareas of the image */
+#define VID_TYPE_MPEG_DECODER 1024 /* Can decode MPEG streams */
+#define VID_TYPE_MPEG_ENCODER 2048 /* Can encode MPEG streams */
+#define VID_TYPE_MJPEG_DECODER 4096 /* Can decode MJPEG streams */
+#define VID_TYPE_MJPEG_ENCODER 8192 /* Can encode MJPEG streams */
+
+struct video_capability
+{
+ char name[32];
+ int type;
+ int channels; /* Num channels */
+ int audios; /* Num audio devices */
+ int maxwidth; /* Supported width */
+ int maxheight; /* And height */
+ int minwidth; /* Supported width */
+ int minheight; /* And height */
+};
+
+
+struct video_channel
+{
+ int channel;
+ char name[32];
+ int tuners;
+ uint32_t flags;
+#define VIDEO_VC_TUNER 1 /* Channel has a tuner */
+#define VIDEO_VC_AUDIO 2 /* Channel has audio */
+ uint16_t type;
+#define VIDEO_TYPE_TV 1
+#define VIDEO_TYPE_CAMERA 2
+ uint16_t norm; /* Norm set by channel */
+};
+
+struct video_tuner
+{
+ int tuner;
+ char name[32];
+ unsigned long rangelow, rangehigh; /* Tuner range */
+ uint32_t flags;
+#define VIDEO_TUNER_PAL 1
+#define VIDEO_TUNER_NTSC 2
+#define VIDEO_TUNER_SECAM 4
+#define VIDEO_TUNER_LOW 8 /* Uses KHz not MHz */
+#define VIDEO_TUNER_NORM 16 /* Tuner can set norm */
+#define VIDEO_TUNER_STEREO_ON 128 /* Tuner is seeing stereo */
+#define VIDEO_TUNER_RDS_ON 256 /* Tuner is seeing an RDS datastream */
+#define VIDEO_TUNER_MBS_ON 512 /* Tuner is seeing an MBS datastream */
+ uint16_t mode; /* PAL/NTSC/SECAM/OTHER */
+#define VIDEO_MODE_PAL 0
+#define VIDEO_MODE_NTSC 1
+#define VIDEO_MODE_SECAM 2
+#define VIDEO_MODE_AUTO 3
+ uint16_t signal; /* Signal strength 16bit scale */
+};
+
+struct video_picture
+{
+ uint16_t brightness;
+ uint16_t hue;
+ uint16_t colour;
+ uint16_t contrast;
+ uint16_t whiteness; /* Black and white only */
+ uint16_t depth; /* Capture depth */
+ uint16_t palette; /* Palette in use */
+#define VIDEO_PALETTE_GREY 1 /* Linear greyscale */
+#define VIDEO_PALETTE_HI240 2 /* High 240 cube (BT848) */
+#define VIDEO_PALETTE_RGB565 3 /* 565 16 bit RGB */
+#define VIDEO_PALETTE_RGB24 4 /* 24bit RGB */
+#define VIDEO_PALETTE_RGB32 5 /* 32bit RGB */
+#define VIDEO_PALETTE_RGB555 6 /* 555 15bit RGB */
+#define VIDEO_PALETTE_YUV422 7 /* YUV422 capture */
+#define VIDEO_PALETTE_YUYV 8
+#define VIDEO_PALETTE_UYVY 9 /* The great thing about standards is ... */
+#define VIDEO_PALETTE_YUV420 10
+#define VIDEO_PALETTE_YUV411 11 /* YUV411 capture */
+#define VIDEO_PALETTE_RAW 12 /* RAW capture (BT848) */
+#define VIDEO_PALETTE_YUV422P 13 /* YUV 4:2:2 Planar */
+#define VIDEO_PALETTE_YUV411P 14 /* YUV 4:1:1 Planar */
+#define VIDEO_PALETTE_YUV420P 15 /* YUV 4:2:0 Planar */
+#define VIDEO_PALETTE_YUV410P 16 /* YUV 4:1:0 Planar */
+#define VIDEO_PALETTE_PLANAR 13 /* start of planar entries */
+#define VIDEO_PALETTE_COMPONENT 7 /* start of component entries */
+};
+
+struct video_audio
+{
+ int audio; /* Audio channel */
+ uint16_t volume; /* If settable */
+ uint16_t bass, treble;
+ uint32_t flags;
+#define VIDEO_AUDIO_MUTE 1
+#define VIDEO_AUDIO_MUTABLE 2
+#define VIDEO_AUDIO_VOLUME 4
+#define VIDEO_AUDIO_BASS 8
+#define VIDEO_AUDIO_TREBLE 16
+#define VIDEO_AUDIO_BALANCE 32
+ char name[16];
+#define VIDEO_SOUND_MONO 1
+#define VIDEO_SOUND_STEREO 2
+#define VIDEO_SOUND_LANG1 4
+#define VIDEO_SOUND_LANG2 8
+ uint16_t mode;
+ uint16_t balance; /* Stereo balance */
+ uint16_t step; /* Step actual volume uses */
+};
+
+struct video_clip
+{
+ int32_t x,y;
+ int32_t width, height;
+ struct video_clip *next; /* For user use/driver use only */
+};
+
+struct video_window
+{
+ uint32_t x,y; /* Position of window */
+ uint32_t width,height; /* Its size */
+ uint32_t chromakey;
+ uint32_t flags;
+ struct video_clip *clips; /* Set only */
+ int clipcount;
+#define VIDEO_WINDOW_INTERLACE 1
+#define VIDEO_WINDOW_CHROMAKEY 16 /* Overlay by chromakey */
+#define VIDEO_CLIP_BITMAP -1
+/* bitmap is 1024x625, a '1' bit represents a clipped pixel */
+#define VIDEO_CLIPMAP_SIZE (128 * 625)
+};
+
+struct video_capture
+{
+ uint32_t x,y; /* Offsets into image */
+ uint32_t width, height; /* Area to capture */
+ uint16_t decimation; /* Decimation divider */
+ uint16_t flags; /* Flags for capture */
+#define VIDEO_CAPTURE_ODD 0 /* Temporal */
+#define VIDEO_CAPTURE_EVEN 1
+};
+
+struct video_buffer
+{
+ void *base;
+ int height,width;
+ int depth;
+ int bytesperline;
+};
+
+struct video_mmap
+{
+ unsigned int frame; /* Frame (0 - n) for double buffer */
+ int height,width;
+ unsigned int format; /* should be VIDEO_PALETTE_* */
+};
+
+struct video_key
+{
+ uint8_t key[8];
+ uint32_t flags;
+};
+
+struct video_mbuf
+{
+ int size; /* Total memory to map */
+ int frames; /* Frames */
+ int offsets[VIDEO_MAX_FRAME];
+};
+
+#define VIDEO_NO_UNIT (-1)
+
+struct video_unit
+{
+ int video; /* Video minor */
+ int vbi; /* VBI minor */
+ int radio; /* Radio minor */
+ int audio; /* Audio minor */
+ int teletext; /* Teletext minor */
+};
+
+struct vbi_format {
+ uint32_t sampling_rate; /* in Hz */
+ uint32_t samples_per_line;
+ uint32_t sample_format; /* VIDEO_PALETTE_RAW only (1 byte) */
+ int32_t start[2]; /* starting line for each frame */
+ uint32_t count[2]; /* count of lines for each frame */
+ uint32_t flags;
+#define VBI_UNSYNC 1 /* can distingues between top/bottom field */
+#define VBI_INTERLACED 2 /* lines are interlaced */
+};
+
+/* video_info is biased towards hardware mpeg encode/decode */
+/* but it could apply generically to any hardware compressor/decompressor */
+struct video_info
+{
+ uint32_t frame_count; /* frames output since decode/encode began */
+ uint32_t h_size; /* current unscaled horizontal size */
+ uint32_t v_size; /* current unscaled veritcal size */
+ uint32_t smpte_timecode; /* current SMPTE timecode (for current GOP) */
+ uint32_t picture_type; /* current picture type */
+ uint32_t temporal_reference; /* current temporal reference */
+ uint8_t user_data[256]; /* user data last found in compressed stream */
+ /* user_data[0] contains user data flags, user_data[1] has count */
+};
+
+/* generic structure for setting playback modes */
+struct video_play_mode
+{
+ int mode;
+ int p1;
+ int p2;
+};
+
+/* for loading microcode / fpga programming */
+struct video_code
+{
+ char loadwhat[16]; /* name or tag of file being passed */
+ int datasize;
+ uint8_t *data;
+};
+
+#define VIDIOCGCAP _IOR('v',1,struct video_capability) /* Get capabilities */
+#define VIDIOCGCHAN _IOWR('v',2,struct video_channel) /* Get channel info (sources) */
+#define VIDIOCSCHAN _IOW('v',3,struct video_channel) /* Set channel */
+#define VIDIOCGTUNER _IOWR('v',4,struct video_tuner) /* Get tuner abilities */
+#define VIDIOCSTUNER _IOW('v',5,struct video_tuner) /* Tune the tuner for the current channel */
+#define VIDIOCGPICT _IOR('v',6,struct video_picture) /* Get picture properties */
+#define VIDIOCSPICT _IOW('v',7,struct video_picture) /* Set picture properties */
+#define VIDIOCCAPTURE _IOW('v',8,int) /* Start, end capture */
+#define VIDIOCGWIN _IOR('v',9, struct video_window) /* Get the video overlay window */
+#define VIDIOCSWIN _IOW('v',10, struct video_window) /* Set the video overlay window - passes clip list for hardware smarts , chromakey etc */
+#define VIDIOCGFBUF _IOR('v',11, struct video_buffer) /* Get frame buffer */
+#define VIDIOCSFBUF _IOW('v',12, struct video_buffer) /* Set frame buffer - root only */
+#define VIDIOCKEY _IOR('v',13, struct video_key) /* Video key event - to dev 255 is to all - cuts capture on all DMA windows with this key (0xFFFFFFFF == all) */
+#define VIDIOCGFREQ _IOR('v',14, unsigned long) /* Set tuner */
+#define VIDIOCSFREQ _IOW('v',15, unsigned long) /* Set tuner */
+#define VIDIOCGAUDIO _IOR('v',16, struct video_audio) /* Get audio info */
+#define VIDIOCSAUDIO _IOW('v',17, struct video_audio) /* Audio source, mute etc */
+#define VIDIOCSYNC _IOW('v',18, int) /* Sync with mmap grabbing */
+#define VIDIOCMCAPTURE _IOW('v',19, struct video_mmap) /* Grab frames */
+#define VIDIOCGMBUF _IOR('v',20, struct video_mbuf) /* Memory map buffer info */
+#define VIDIOCGUNIT _IOR('v',21, struct video_unit) /* Get attached units */
+#define VIDIOCGCAPTURE _IOR('v',22, struct video_capture) /* Get subcapture */
+#define VIDIOCSCAPTURE _IOW('v',23, struct video_capture) /* Set subcapture */
+#define VIDIOCSPLAYMODE _IOW('v',24, struct video_play_mode) /* Set output video mode/feature */
+#define VIDIOCSWRITEMODE _IOW('v',25, int) /* Set write mode */
+#define VIDIOCGPLAYINFO _IOR('v',26, struct video_info) /* Get current playback info from hardware */
+#define VIDIOCSMICROCODE _IOW('v',27, struct video_code) /* Load microcode into hardware */
+#define VIDIOCGVBIFMT _IOR('v',28, struct vbi_format) /* Get VBI information */
+#define VIDIOCSVBIFMT _IOW('v',29, struct vbi_format) /* Set VBI information */
+
+
+#define BASE_VIDIOCPRIVATE 192 /* 192-255 are private */
+
+/* VIDIOCSWRITEMODE */
+#define VID_WRITE_MPEG_AUD 0
+#define VID_WRITE_MPEG_VID 1
+#define VID_WRITE_OSD 2
+#define VID_WRITE_TTX 3
+#define VID_WRITE_CC 4
+#define VID_WRITE_MJPEG 5
+
+/* VIDIOCSPLAYMODE */
+#define VID_PLAY_VID_OUT_MODE 0
+ /* p1: = VIDEO_MODE_PAL, VIDEO_MODE_NTSC, etc ... */
+#define VID_PLAY_GENLOCK 1
+ /* p1: 0 = OFF, 1 = ON */
+ /* p2: GENLOCK FINE DELAY value */
+#define VID_PLAY_NORMAL 2
+#define VID_PLAY_PAUSE 3
+#define VID_PLAY_SINGLE_FRAME 4
+#define VID_PLAY_FAST_FORWARD 5
+#define VID_PLAY_SLOW_MOTION 6
+#define VID_PLAY_IMMEDIATE_NORMAL 7
+#define VID_PLAY_SWITCH_CHANNELS 8
+#define VID_PLAY_FREEZE_FRAME 9
+#define VID_PLAY_STILL_MODE 10
+#define VID_PLAY_MASTER_MODE 11
+ /* p1: see below */
+#define VID_PLAY_MASTER_NONE 1
+#define VID_PLAY_MASTER_VIDEO 2
+#define VID_PLAY_MASTER_AUDIO 3
+#define VID_PLAY_ACTIVE_SCANLINES 12
+ /* p1 = first active; p2 = last active */
+#define VID_PLAY_RESET 13
+#define VID_PLAY_END_MARK 14
+
+#endif /* CONFIG_VIDEO_V4L1_COMPAT */
+#endif /* __MIN_V4L1 */
+
+#endif /* __LINUX_VIDEODEV_H */
+
+/*
+ * Local variables:
+ * c-basic-offset: 8
+ * End:
+ */
diff --git a/multimedia/libv4l/pkg-plist b/multimedia/libv4l/pkg-plist
index feece3f6d54b..9d621d6c0155 100644
--- a/multimedia/libv4l/pkg-plist
+++ b/multimedia/libv4l/pkg-plist
@@ -1,17 +1,81 @@
+include/libdvbv5/atsc_eit.h
+include/libdvbv5/atsc_header.h
+include/libdvbv5/cat.h
+include/libdvbv5/crc32.h
+include/libdvbv5/desc_atsc_service_location.h
+include/libdvbv5/desc_ca.h
+include/libdvbv5/desc_ca_identifier.h
+include/libdvbv5/desc_cable_delivery.h
+include/libdvbv5/desc_event_extended.h
+include/libdvbv5/desc_event_short.h
+include/libdvbv5/desc_extension.h
+include/libdvbv5/desc_frequency_list.h
+include/libdvbv5/desc_hierarchy.h
+include/libdvbv5/desc_isdbt_delivery.h
+include/libdvbv5/desc_language.h
+include/libdvbv5/desc_logical_channel.h
+include/libdvbv5/desc_network_name.h
+include/libdvbv5/desc_partial_reception.h
+include/libdvbv5/desc_sat.h
+include/libdvbv5/desc_service.h
+include/libdvbv5/desc_t2_delivery.h
+include/libdvbv5/desc_terrestrial_delivery.h
+include/libdvbv5/desc_ts_info.h
+include/libdvbv5/descriptors.h
+include/libdvbv5/dvb-demux.h
+include/libdvbv5/dvb-fe.h
+include/libdvbv5/dvb-file.h
+include/libdvbv5/dvb-frontend.h
+include/libdvbv5/dvb-log.h
+include/libdvbv5/dvb-sat.h
+include/libdvbv5/dvb-scan.h
+include/libdvbv5/dvb-v5-std.h
+include/libdvbv5/eit.h
+include/libdvbv5/header.h
+include/libdvbv5/mgt.h
+include/libdvbv5/mpeg_es.h
+include/libdvbv5/mpeg_pes.h
+include/libdvbv5/mpeg_ts.h
+include/libdvbv5/nit.h
+include/libdvbv5/pat.h
+include/libdvbv5/pmt.h
+include/libdvbv5/sdt.h
+include/libdvbv5/vct.h
+include/libv4l-plugin.h
include/libv4l1-videodev.h
include/libv4l1.h
include/libv4l2.h
+include/libv4l2rds.h
include/libv4lconvert.h
+lib/libdvbv5.a
+lib/libdvbv5.so
+lib/libdvbv5.so.0
+lib/libdvbv5.so.0.0.0
lib/libv4l/ov511-decomp
lib/libv4l/ov518-decomp
+lib/libv4l/plugins/libv4l-mplane.so
lib/libv4l/v4l1compat.so
lib/libv4l/v4l2convert.so
+lib/libv4l1.a
lib/libv4l1.so
lib/libv4l1.so.0
+lib/libv4l1.so.0.0.0
+lib/libv4l2.a
lib/libv4l2.so
lib/libv4l2.so.0
+lib/libv4l2.so.0.0.0
+lib/libv4l2rds.a
+lib/libv4l2rds.so
+lib/libv4l2rds.so.0
+lib/libv4l2rds.so.0.0.0
+lib/libv4lconvert.a
lib/libv4lconvert.so
lib/libv4lconvert.so.0
+lib/libv4lconvert.so.0.0.0
+lib/v4l1compat.so
+lib/v4l2convert.so
+libdata/pkgconfig/libdvbv5.pc
libdata/pkgconfig/libv4l1.pc
libdata/pkgconfig/libv4l2.pc
+libdata/pkgconfig/libv4l2rds.pc
libdata/pkgconfig/libv4lconvert.pc
diff --git a/multimedia/v4l-utils/Makefile b/multimedia/v4l-utils/Makefile
index f547ad293fed..a2d897b4db80 100644
--- a/multimedia/v4l-utils/Makefile
+++ b/multimedia/v4l-utils/Makefile
@@ -1,36 +1,20 @@
# Created by: Juergen Lock <nox@FreeBSD.org>
# $FreeBSD$
-PORTNAME= v4l-utils
-PORTVERSION= 0.8.8
-PORTREVISION= 1
-CATEGORIES= multimedia
-MASTER_SITES= http://linuxtv.org/downloads/v4l-utils/
+PORTNAME?= v4l-utils
+PORTREVISION= 0
-MAINTAINER= nox@FreeBSD.org
COMMENT= Video4Linux utilities
-BUILD_DEPENDS= v4l_compat>=1.0.20120501:${PORTSDIR}/multimedia/v4l_compat \
- libv4l>=0.8.8:${PORTSDIR}/multimedia/libv4l
-LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l \
- libargp.so:${PORTSDIR}/devel/argp-standalone
+MASTERDIR= ${.CURDIR}/../../multimedia/libv4l
+DESCR= ${.CURDIR}/pkg-descr
+PLIST= ${.CURDIR}/pkg-plist
+LIBV4L_SLAVE= utils
-MAKE_ARGS= CFLAGS="${CFLAGS} -I${LOCALBASE}/include -DPREFIX=\\\"${PREFIX}\\\"" \
- LIBDIR="${PREFIX}/lib" LDFLAGS="-L${LOCALBASE}/lib -largp"
-USES= gmake tar:bzip2
-USE_LDCONFIG= yes
+INSTALL_WRKSRC= ${WRKSRC}/utils
-WRKSRC= ${WRKDIR}/${DISTNAME}/utils
+# no need for udev rules
+post-install:
+ @${RM} -rf ${STAGEDIR}/lib/udev
-post-patch:
- @${RM} ${WRKSRC}/../include/linux/videodev2.h
- @${REINPLACE_CMD} -e 's|#include <sys/klog.h>||g' \
- -e 's|#include <features.h>||g' \
- -e 's|#include <linux/types.h>||g' \
- ${WRKSRC}/v4l2-compliance/v4l2-compliance.cpp \
- ${WRKSRC}/v4l2-compliance/v4l2-test-debug.cpp \
- ${WRKSRC}/v4l2-ctl/cx18-ctl.c \
- ${WRKSRC}/v4l2-ctl/ivtv-ctl.c \
- ${WRKSRC}/../include/linux/ivtv.h
-
-.include <bsd.port.mk>
+.include "${MASTERDIR}/Makefile"
diff --git a/multimedia/v4l-utils/distinfo b/multimedia/v4l-utils/distinfo
deleted file mode 100644
index 987c1e3abebd..000000000000
--- a/multimedia/v4l-utils/distinfo
+++ /dev/null
@@ -1,2 +0,0 @@
-SHA256 (v4l-utils-0.8.8.tar.bz2) = 5fa4c6f4b6f5410de57271a03cc9a15f15195ef3fc05a8e42ecf507d6d70a87f
-SIZE (v4l-utils-0.8.8.tar.bz2) = 420888
diff --git a/multimedia/v4l-utils/pkg-plist b/multimedia/v4l-utils/pkg-plist
index 4dca720cc7ef..5b484a32d571 100644
--- a/multimedia/v4l-utils/pkg-plist
+++ b/multimedia/v4l-utils/pkg-plist
@@ -1,117 +1,17 @@
-bin/cx18-ctl
bin/decode_tm6000
+bin/dvb-fe-tool
+bin/dvb-format-convert
+bin/dvbv5-scan
+bin/dvbv5-zap
bin/ir-keytable
-bin/ivtv-ctl
+bin/rds-ctl
bin/v4l2-compliance
-bin/v4l2-ctl
-etc/rc_keymaps/a800
-etc/rc_keymaps/adstech_dvb_t_pci
-etc/rc_keymaps/af9005
-etc/rc_keymaps/alink_dtu_m
-etc/rc_keymaps/anysee
-etc/rc_keymaps/apac_viewcomp
-etc/rc_keymaps/asus_pc39
-etc/rc_keymaps/ati_tv_wonder_hd_600
-etc/rc_keymaps/avermedia
-etc/rc_keymaps/avermedia_a16d
-etc/rc_keymaps/avermedia_cardbus
-etc/rc_keymaps/avermedia_dvbt
-etc/rc_keymaps/avermedia_m135a
-etc/rc_keymaps/avermedia_m733a_rm_k6
-etc/rc_keymaps/avermedia_rm_ks
-etc/rc_keymaps/avertv_303
-etc/rc_keymaps/azurewave_ad_tu700
-etc/rc_keymaps/behold
-etc/rc_keymaps/behold_columbus
-etc/rc_keymaps/budget_ci_old
-etc/rc_keymaps/cinergy
-etc/rc_keymaps/cinergy_1400
-etc/rc_keymaps/cinergyt2
-etc/rc_keymaps/d680_dmb
-etc/rc_keymaps/dib0700_nec
-etc/rc_keymaps/dib0700_rc5
-etc/rc_keymaps/dibusb
-etc/rc_keymaps/digitalnow_tinytwin
-etc/rc_keymaps/digittrade
-etc/rc_keymaps/digitv
-etc/rc_keymaps/dm1105_nec
-etc/rc_keymaps/dntv_live_dvb_t
-etc/rc_keymaps/dntv_live_dvbt_pro
-etc/rc_keymaps/dtt200u
-etc/rc_keymaps/dvico_mce
-etc/rc_keymaps/dvico_portable
-etc/rc_keymaps/dw210x
-etc/rc_keymaps/em_terratec
-etc/rc_keymaps/encore_enltv
-etc/rc_keymaps/encore_enltv2
-etc/rc_keymaps/encore_enltv_fm53
-etc/rc_keymaps/evga_indtube
-etc/rc_keymaps/eztv
-etc/rc_keymaps/flydvb
-etc/rc_keymaps/flyvideo
-etc/rc_keymaps/fusionhdtv_mce
-etc/rc_keymaps/gadmei_rm008z
-etc/rc_keymaps/genius_tvgo_a11mce
-etc/rc_keymaps/gotview7135
-etc/rc_keymaps/haupp
-etc/rc_keymaps/hauppauge
-etc/rc_keymaps/imon_mce
-etc/rc_keymaps/imon_pad
-etc/rc_keymaps/iodata_bctv7e
-etc/rc_keymaps/kaiomy
-etc/rc_keymaps/kworld_315u
-etc/rc_keymaps/kworld_plus_tv_analog
-etc/rc_keymaps/leadtek_y04g0051
-etc/rc_keymaps/lme2510
-etc/rc_keymaps/manli
-etc/rc_keymaps/megasky
-etc/rc_keymaps/msi_digivox_ii
-etc/rc_keymaps/msi_digivox_iii
-etc/rc_keymaps/msi_tvanywhere
-etc/rc_keymaps/msi_tvanywhere_plus
-etc/rc_keymaps/nebula
-etc/rc_keymaps/nec_terratec_cinergy_xs
-etc/rc_keymaps/norwood
-etc/rc_keymaps/npgtech
-etc/rc_keymaps/opera1
-etc/rc_keymaps/pctv_sedna
-etc/rc_keymaps/pinnacle310e
-etc/rc_keymaps/pinnacle_color
-etc/rc_keymaps/pinnacle_grey
-etc/rc_keymaps/pinnacle_pctv_hd
-etc/rc_keymaps/pixelview
-etc/rc_keymaps/pixelview_002t
-etc/rc_keymaps/pixelview_mk12
-etc/rc_keymaps/pixelview_new
-etc/rc_keymaps/powercolor_real_angel
-etc/rc_keymaps/proteus_2309
-etc/rc_keymaps/purpletv
-etc/rc_keymaps/pv951
-etc/rc_keymaps/rc6_mce
-etc/rc_keymaps/real_audio_220_32_keys
-etc/rc_keymaps/streamzap
-etc/rc_keymaps/su3000
-etc/rc_keymaps/tbs
-etc/rc_keymaps/tbs_nec
-etc/rc_keymaps/technisat_usb2
-etc/rc_keymaps/terratec_cinergy_xs
-etc/rc_keymaps/terratec_slim
-etc/rc_keymaps/terratec_slim_2
-etc/rc_keymaps/tevii
-etc/rc_keymaps/tevii_nec
-etc/rc_keymaps/tivo
-etc/rc_keymaps/total_media_in_hand
-etc/rc_keymaps/trekstor
-etc/rc_keymaps/tt_1500
-etc/rc_keymaps/tvwalkertwin
-etc/rc_keymaps/twinhan_vp1027_dvbs
-etc/rc_keymaps/videomate_m1f
-etc/rc_keymaps/videomate_s350
-etc/rc_keymaps/videomate_tv_pvr
-etc/rc_keymaps/vp702x
-etc/rc_keymaps/vp7045
-etc/rc_keymaps/winfast
-etc/rc_keymaps/winfast_usbii_deluxe
+@comment bin/v4l2-sysfs-path
etc/rc_maps.cfg
-sbin/v4l2-dbg
+man/man1/dvb-fe-tool.1.gz
+man/man1/dvb-format-convert.1.gz
+man/man1/dvbv5-scan.1.gz
+man/man1/dvbv5-zap.1.gz
man/man1/ir-keytable.1.gz
+sbin/v4l2-dbg
+@dir etc/rc_keymaps
diff --git a/multimedia/v4l_compat/Makefile b/multimedia/v4l_compat/Makefile
index defd3a3cc36f..1d98d2c024ee 100644
--- a/multimedia/v4l_compat/Makefile
+++ b/multimedia/v4l_compat/Makefile
@@ -1,26 +1,42 @@
# $FreeBSD$
PORTNAME= v4l_compat
-PORTVERSION= 1.0.${DUMMYDATE}
-PORTREVISION= 1
-CATEGORIES= multimedia
-MASTER_SITES= LOCAL/kwm
+PORTREVISION= 0
-MAINTAINER= multimedia@FreeBSD.org
COMMENT= Video4Linux IOCTL header files
-LICENSE= GPLv2
-
-DUMMYDATE= 20120501
-
NO_BUILD= yes
NO_ARCH= yes
-BASE_HEADERS= input.h uinput.h videodev.h videodev2.h
-DVB_HEADERS= audio.h ca.h dmx.h frontend.h net.h osd.h version.h video.h
+
+MASTERDIR= ${.CURDIR}/../../multimedia/libv4l
+EXTRADIR= ${WRKSRC}/../linux
+DESCR= ${.CURDIR}/pkg-descr
+PLIST= ${.CURDIR}/pkg-plist
+LIBV4L_SLAVE= compat
+
+BASE_HEADERS= input.h uinput.h ivtv.h v4l2-controls.h \
+ v4l2-common.h videodev2.h
+DVB_HEADERS= audio.h dmx.h frontend.h video.h
+EXTRA_HEADERS= ca.h osd.h version.h
do-install:
- ${MKDIR} ${STAGEDIR}${PREFIX}/include/linux/dvb
- cd ${WRKSRC}; ${INSTALL_DATA} ${BASE_HEADERS} ${STAGEDIR}${PREFIX}/include/linux/
- cd ${WRKSRC}/dvb; ${INSTALL_DATA} ${DVB_HEADERS} ${STAGEDIR}${PREFIX}/include/linux/dvb/
+ @${MKDIR} ${STAGEDIR}${PREFIX}/include/linux/dvb/
+.for i in ${BASE_HEADERS}
+ ${INSTALL_DATA} ${WRKSRC}/contrib/freebsd/include/linux/${i} \
+ ${STAGEDIR}${PREFIX}/include/linux/
+.endfor
+.for i in ${DVB_HEADERS}
+ ${INSTALL_DATA} ${WRKSRC}/include/linux/dvb/${i} \
+ ${STAGEDIR}${PREFIX}/include/linux/dvb
+.endfor
+# V4L1 is dead in linux, however webcamd still supports it.
+ ${INSTALL_DATA} ${FILESDIR}/videodev.h \
+ ${STAGEDIR}${PREFIX}/include/linux/
+# Extra dvb headers supplied taken from the linux kernel distfile.
+# vdr and the gst dvb plugin need them at least
+.for i in ${EXTRA_HEADERS}
+ ${INSTALL_DATA} ${EXTRADIR}/dvb/${i} \
+ ${STAGEDIR}${PREFIX}/include/linux/dvb/
+.endfor
-.include <bsd.port.mk>
+.include "${MASTERDIR}/Makefile"
diff --git a/multimedia/v4l_compat/distinfo b/multimedia/v4l_compat/distinfo
deleted file mode 100644
index dff720a6f766..000000000000
--- a/multimedia/v4l_compat/distinfo
+++ /dev/null
@@ -1,2 +0,0 @@
-SHA256 (v4l_compat-1.0.20120501.tar.gz) = 0bc375a36f450ad7f665996ca3d9efcffa63d9befcdf3214412f0a1e82d68b30
-SIZE (v4l_compat-1.0.20120501.tar.gz) = 63578
diff --git a/multimedia/v4l_compat/pkg-plist b/multimedia/v4l_compat/pkg-plist
index a04fd2869d18..3296ca9c5e1f 100644
--- a/multimedia/v4l_compat/pkg-plist
+++ b/multimedia/v4l_compat/pkg-plist
@@ -1,12 +1,14 @@
-include/linux/input.h
-include/linux/uinput.h
-include/linux/videodev.h
-include/linux/videodev2.h
include/linux/dvb/audio.h
include/linux/dvb/ca.h
include/linux/dvb/dmx.h
include/linux/dvb/frontend.h
-include/linux/dvb/net.h
include/linux/dvb/osd.h
include/linux/dvb/version.h
include/linux/dvb/video.h
+include/linux/input.h
+include/linux/ivtv.h
+include/linux/uinput.h
+include/linux/v4l2-common.h
+include/linux/v4l2-controls.h
+include/linux/videodev.h
+include/linux/videodev2.h