diff options
author | 2014-10-18 08:01:34 +0000 | |
---|---|---|
committer | 2014-10-18 08:01:34 +0000 | |
commit | 9c924229fab972fd0ec107bc8e02a33e25c08840 (patch) | |
tree | 0dd418c1bea7aa5d59f43fd6381ace18cc771896 | |
parent | enable the sinclude/-include feature support I wrote long ago. (diff) | |
download | wireguard-openbsd-9c924229fab972fd0ec107bc8e02a33e25c08840.tar.xz wireguard-openbsd-9c924229fab972fd0ec107bc8e02a33e25c08840.zip |
Add VIDIOC_G_INPUT ioctl, some ports need it (at least ffmpeg)
ok ratchov@, sthen@, mpi@
-rw-r--r-- | share/man/man4/video.4 | 6 | ||||
-rw-r--r-- | sys/dev/usb/uvideo.c | 13 | ||||
-rw-r--r-- | sys/dev/video.c | 7 | ||||
-rw-r--r-- | sys/dev/video_if.h | 3 |
4 files changed, 24 insertions, 5 deletions
diff --git a/share/man/man4/video.4 b/share/man/man4/video.4 index 5635a96ad9f..ba89756044f 100644 --- a/share/man/man4/video.4 +++ b/share/man/man4/video.4 @@ -1,4 +1,4 @@ -.\" $OpenBSD: video.4,v 1.11 2014/06/28 06:27:31 matthew Exp $ +.\" $OpenBSD: video.4,v 1.12 2014/10/18 08:01:34 armani Exp $ .\" .\" Copyright (c) 2008 Marcus Glocker <mglocker@openbsd.org> .\" @@ -14,7 +14,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: June 28 2014 $ +.Dd $Mdocdate: October 18 2014 $ .Dt VIDEO 4 .Os .Sh NAME @@ -102,6 +102,8 @@ struct v4l2_input { u_int32_t reserved[32]; }; .Ed +.It Dv VIDIOC_G_INPUT Fa "int *" +Get the current video input. .It Dv VIDIOC_S_INPUT Fa "int *" Select the current video input. .It Dv VIDIOC_REQBUFS Fa "struct v4l2_requestbuffers *" diff --git a/sys/dev/usb/uvideo.c b/sys/dev/usb/uvideo.c index 492cd0c1f81..faab4e15cc2 100644 --- a/sys/dev/usb/uvideo.c +++ b/sys/dev/usb/uvideo.c @@ -1,4 +1,4 @@ -/* $OpenBSD: uvideo.c,v 1.175 2014/07/12 18:48:53 tedu Exp $ */ +/* $OpenBSD: uvideo.c,v 1.176 2014/10/18 08:01:34 armani Exp $ */ /* * Copyright (c) 2008 Robert Nagy <robert@openbsd.org> @@ -179,6 +179,7 @@ int uvideo_s_parm(void *, struct v4l2_streamparm *); int uvideo_g_parm(void *, struct v4l2_streamparm *); int uvideo_enum_input(void *, struct v4l2_input *); int uvideo_s_input(void *, int); +int uvideo_g_input(void *, int *); int uvideo_reqbufs(void *, struct v4l2_requestbuffers *); int uvideo_querybuf(void *, struct v4l2_buffer *); int uvideo_qbuf(void *, struct v4l2_buffer *); @@ -228,6 +229,7 @@ struct video_hw_if uvideo_hw_if = { uvideo_g_parm, /* VIDIOC_G_PARM */ uvideo_enum_input, /* VIDIOC_ENUMINPUT */ uvideo_s_input, /* VIDIOC_S_INPUT */ + uvideo_g_input, /* VIDIOC_G_INPUT */ uvideo_reqbufs, /* VIDIOC_REQBUFS */ uvideo_querybuf, /* VIDIOC_QUERYBUF */ uvideo_qbuf, /* VIDIOC_QBUF */ @@ -3074,6 +3076,15 @@ uvideo_s_input(void *v, int input) } int +uvideo_g_input(void *v, int *input) +{ + /* XXX we just support one input for now */ + *input = 0; + + return (0); +} + +int uvideo_reqbufs(void *v, struct v4l2_requestbuffers *rb) { struct uvideo_softc *sc = v; diff --git a/sys/dev/video.c b/sys/dev/video.c index 8e3a291f186..11dc2b0e6bf 100644 --- a/sys/dev/video.c +++ b/sys/dev/video.c @@ -1,4 +1,4 @@ -/* $OpenBSD: video.c,v 1.32 2014/09/14 14:17:24 jsg Exp $ */ +/* $OpenBSD: video.c,v 1.33 2014/10/18 08:01:34 armani Exp $ */ /* * Copyright (c) 2008 Robert Nagy <robert@openbsd.org> @@ -249,6 +249,11 @@ videoioctl(dev_t dev, u_long cmd, caddr_t data, int flags, struct proc *p) error = (sc->hw_if->s_input)(sc->hw_hdl, (int)*data); break; + case VIDIOC_G_INPUT: + if (sc->hw_if->g_input) + error = (sc->hw_if->g_input)(sc->hw_hdl, + (int *)data); + break; case VIDIOC_REQBUFS: if (sc->hw_if->reqbufs) error = (sc->hw_if->reqbufs)(sc->hw_hdl, diff --git a/sys/dev/video_if.h b/sys/dev/video_if.h index f8bf2480974..3f0cbd20352 100644 --- a/sys/dev/video_if.h +++ b/sys/dev/video_if.h @@ -1,4 +1,4 @@ -/* $OpenBSD: video_if.h,v 1.17 2011/03/26 08:13:05 jakemsr Exp $ */ +/* $OpenBSD: video_if.h,v 1.18 2014/10/18 08:01:34 armani Exp $ */ /* * Copyright (c) 2008 Robert Nagy <robert@openbsd.org> * Copyright (c) 2008 Marcus Glocker <mglocker@openbsd.org> @@ -44,6 +44,7 @@ struct video_hw_if { int (*g_parm)(void *, struct v4l2_streamparm *); int (*enum_input)(void *, struct v4l2_input *); int (*s_input)(void *, int); + int (*g_input)(void *, int *); int (*reqbufs)(void *, struct v4l2_requestbuffers *); int (*querybuf)(void *, struct v4l2_buffer *); int (*qbuf)(void *, struct v4l2_buffer *); |