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@)
This commit is contained in:
Koop Mast 2015-06-14 04:59:37 +00:00
parent 4ff6e86d0e
commit 636dab0705
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=389588
21 changed files with 664 additions and 248 deletions

View file

@ -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
WRKSRC= ${WRKDIR}/${DISTNAME}/lib
. 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
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>

View file

@ -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

View file

@ -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)

View file

@ -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"

View file

@ -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_$*)

View file

@ -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

View file

@ -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 */

View file

@ -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)
/**

View file

@ -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 */

View file

@ -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

View file

@ -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++) {

View file

@ -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

View file

@ -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");

View file

@ -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:
*/

View file

@ -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

View file

@ -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"

View file

@ -1,2 +0,0 @@
SHA256 (v4l-utils-0.8.8.tar.bz2) = 5fa4c6f4b6f5410de57271a03cc9a15f15195ef3fc05a8e42ecf507d6d70a87f
SIZE (v4l-utils-0.8.8.tar.bz2) = 420888

View file

@ -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

View file

@ -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"

View file

@ -1,2 +0,0 @@
SHA256 (v4l_compat-1.0.20120501.tar.gz) = 0bc375a36f450ad7f665996ca3d9efcffa63d9befcdf3214412f0a1e82d68b30
SIZE (v4l_compat-1.0.20120501.tar.gz) = 63578

View file

@ -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