Add 'q' option to just display the device properties and quit.
Tested and ok czarkoff
This commit is contained in:
parent
9df5e43bd2
commit
75f41efb37
@ -1,4 +1,4 @@
|
|||||||
.\" $OpenBSD: video.1,v 1.12 2016/05/31 06:47:12 mglocker Exp $
|
.\" $OpenBSD: video.1,v 1.13 2016/06/04 07:44:32 mglocker Exp $
|
||||||
.\"
|
.\"
|
||||||
.\" Copyright (c) 2010 Jacob Meuser <jakemsr@openbsd.org>
|
.\" Copyright (c) 2010 Jacob Meuser <jakemsr@openbsd.org>
|
||||||
.\"
|
.\"
|
||||||
@ -15,7 +15,7 @@
|
|||||||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
.\"
|
.\"
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: May 31 2016 $
|
.Dd $Mdocdate: June 4 2016 $
|
||||||
.Dt VIDEO 1
|
.Dt VIDEO 1
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -25,7 +25,7 @@
|
|||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.Nm
|
.Nm
|
||||||
.Bk -words
|
.Bk -words
|
||||||
.Op Fl \&gRv
|
.Op Fl \&gqRv
|
||||||
.Op Fl a Ar adaptor
|
.Op Fl a Ar adaptor
|
||||||
.Op Fl e Ar encoding
|
.Op Fl e Ar encoding
|
||||||
.Op Fl f Ar file
|
.Op Fl f Ar file
|
||||||
@ -133,6 +133,9 @@ If
|
|||||||
is
|
is
|
||||||
.Ql - ,
|
.Ql - ,
|
||||||
frames will be written to standard output.
|
frames will be written to standard output.
|
||||||
|
.It Fl q
|
||||||
|
Query for encodings, frame sizes/rates, and controls.
|
||||||
|
Display them and quit.
|
||||||
.It Fl R
|
.It Fl R
|
||||||
Disable frame rate adjustment.
|
Disable frame rate adjustment.
|
||||||
.It Fl r Ar rate
|
.It Fl r Ar rate
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: video.c,v 1.16 2016/06/02 08:53:32 tb Exp $ */
|
/* $OpenBSD: video.c,v 1.17 2016/06/04 07:44:32 mglocker Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2010 Jacob Meuser <jakemsr@openbsd.org>
|
* Copyright (c) 2010 Jacob Meuser <jakemsr@openbsd.org>
|
||||||
*
|
*
|
||||||
@ -169,6 +169,7 @@ struct video {
|
|||||||
#define M_OUT_XV 0x2
|
#define M_OUT_XV 0x2
|
||||||
#define M_IN_FILE 0x4
|
#define M_IN_FILE 0x4
|
||||||
#define M_OUT_FILE 0x8
|
#define M_OUT_FILE 0x8
|
||||||
|
#define M_QUERY 0x10
|
||||||
int mode;
|
int mode;
|
||||||
int verbose;
|
int verbose;
|
||||||
};
|
};
|
||||||
@ -186,6 +187,7 @@ int dev_get_sizes(struct video *);
|
|||||||
int dev_get_rates(struct video *);
|
int dev_get_rates(struct video *);
|
||||||
int dev_get_ctrls(struct video *);
|
int dev_get_ctrls(struct video *);
|
||||||
void dev_dump_info(struct video *);
|
void dev_dump_info(struct video *);
|
||||||
|
void dev_dump_query(struct video *);
|
||||||
int dev_init(struct video *);
|
int dev_init(struct video *);
|
||||||
void dev_set_ctrl(struct video *, int, int);
|
void dev_set_ctrl(struct video *, int, int);
|
||||||
void dev_reset_ctrls(struct video *);
|
void dev_reset_ctrls(struct video *);
|
||||||
@ -213,7 +215,7 @@ extern char *__progname;
|
|||||||
void
|
void
|
||||||
usage(void)
|
usage(void)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "usage: %s [-gRv] "
|
fprintf(stderr, "usage: %s [-gqRv] "
|
||||||
"[-a adaptor] [-e encoding] [-f file] [-i input] [-O output]\n"
|
"[-a adaptor] [-e encoding] [-f file] [-i input] [-O output]\n"
|
||||||
" %*s [-o output] [-r rate] [-s size]\n", __progname,
|
" %*s [-o output] [-r rate] [-s size]\n", __progname,
|
||||||
(int)strlen(__progname), "");
|
(int)strlen(__progname), "");
|
||||||
@ -1024,6 +1026,24 @@ dev_dump_info(struct video *vid)
|
|||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
dev_dump_query(struct video *vid)
|
||||||
|
{
|
||||||
|
if (!dev_check_caps(vid))
|
||||||
|
return;
|
||||||
|
if (!dev_get_encs(vid))
|
||||||
|
return;
|
||||||
|
if (!choose_enc(vid))
|
||||||
|
return;
|
||||||
|
if (!dev_get_sizes(vid))
|
||||||
|
return;
|
||||||
|
if (!dev_get_rates(vid))
|
||||||
|
return;
|
||||||
|
if (!dev_get_ctrls(vid))
|
||||||
|
return;
|
||||||
|
dev_dump_info(vid);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
dev_init(struct video *vid)
|
dev_init(struct video *vid)
|
||||||
{
|
{
|
||||||
@ -1757,7 +1777,7 @@ main(int argc, char *argv[])
|
|||||||
vid.mmap_on = 1; /* mmap method is default */
|
vid.mmap_on = 1; /* mmap method is default */
|
||||||
wout = 1;
|
wout = 1;
|
||||||
|
|
||||||
while ((ch = getopt(argc, argv, "gvRa:e:f:i:O:o:r:s:")) != -1) {
|
while ((ch = getopt(argc, argv, "gqRva:e:f:i:O:o:r:s:")) != -1) {
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case 'a':
|
case 'a':
|
||||||
x->cur_adap = strtonum(optarg, 0, 4, &errstr);
|
x->cur_adap = strtonum(optarg, 0, 4, &errstr);
|
||||||
@ -1802,6 +1822,10 @@ main(int argc, char *argv[])
|
|||||||
optarg);
|
optarg);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'q':
|
||||||
|
vid.mode |= M_QUERY;
|
||||||
|
vid.mode &= ~M_OUT_XV;
|
||||||
|
break;
|
||||||
case 'R':
|
case 'R':
|
||||||
vid.nofps = 1;
|
vid.nofps = 1;
|
||||||
break;
|
break;
|
||||||
@ -1832,6 +1856,11 @@ main(int argc, char *argv[])
|
|||||||
argc -= optind;
|
argc -= optind;
|
||||||
argv += optind;
|
argv += optind;
|
||||||
|
|
||||||
|
if (vid.mode & M_QUERY) {
|
||||||
|
dev_dump_query(&vid);
|
||||||
|
cleanup(&vid, 0);
|
||||||
|
}
|
||||||
|
|
||||||
if (vid.fps == 0)
|
if (vid.fps == 0)
|
||||||
vid.nofps = 1;
|
vid.nofps = 1;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user