Commit Graph

29 Commits

Author SHA1 Message Date
mglocker
1d6efe8e23 Tested a Logitech Webcam C930e which has 17 frame sizes but video(1) only
supports 16 today.  Bump the array to 32 which makes 1920x1080 work on this
device as well.

OK deraadt
2019-11-06 05:46:51 +00:00
rapha
3634da3d70 Add support for yv12 encoding to video(1).
Frame data is converted to yv12 if Xv(3) does not support yuy2 and uyvy.

OK mpi@, landry@
2019-02-25 12:34:35 +00:00
landry
ac84202cf8 Pledge video(1):
* video -q needs 'stdio rpath wpath video' (needs O_RDWR on the device)
* video -i needs 'stdio rpath' (rpath for X11 error/locale access)
* other modes (ie display frames via X11, or output frames to file with
 -o/-O) need 'stdio rpath video' since we open output file/video device
before calling pledge(2).

with help from semarie@, nits from matthieu@
ok deraadt@
2019-01-22 20:02:40 +00:00
landry
b0c17c65a4 Rename err to errs to avoid shadowing potential err() usage, and fix two
typos while here.

ok semarie@ matthieu@
2019-01-04 17:45:00 +00:00
cheloha
26b9521ab8 Don't use optarg as format string.
ok millert@
2018-04-09 18:16:44 +00:00
cheloha
c37ef19e61 Measure statistics against UPTIME clock.
So that your statistics remain correct if the system wall clock is
changed during playback.

Use CLOCK_UPTIME instead of CLOCK_MONOTONIC so that statistics remain
correct across suspend/resume.

Testing by tobias@, sthen@,
and Benjamin Baier <programmer AT netzbasis DOT de>.

ok sthen@
2018-04-09 15:48:14 +00:00
czarkoff
516257834c Preserve aspect ratio of camera image in Xv output.
OK jca@
2016-11-26 11:49:15 +00:00
czarkoff
7b0a63b485 Fix X11 property retrieval code
Just stop when reaching the end of property list instead of reading
forever past its end.

Issue was introduced in my previous commit and reported by deraadt@
2016-11-08 13:22:55 +00:00
czarkoff
b679f961ab add NetWM-compliant fullscreen support
OK jung@
2016-10-21 09:48:48 +00:00
jca
cdd4bf21cb Make video -i work ootb.
video(1) uses mmap and ioctls by default, those ioctls only work on
video(4) devices.  If -i is passed, use read(2) instead of the mmap(2)
routines, instead of requiring the user to pass also pass the -g flag.
2016-09-16 20:29:03 +00:00
mglocker
13dfb063f0 Comparing maximum frame buffer size after VIDIOC_DQBUF ioctl against
'buf.bytesused' instead of 'buf.length' makes more sense.

From Patrick Keshish
2016-06-06 19:31:22 +00:00
mglocker
58b259de1a To match the encoding type, compare against 'pixelformat' instead of
'description' which could contain any value.  Fixes VIDIOC_ENUM_FMT ioctl
for utvfu(4).

Spotted by Patrick Keshish.

ok mpi
2016-06-06 11:55:38 +00:00
mglocker
75f41efb37 Add 'q' option to just display the device properties and quit.
Tested and ok czarkoff
2016-06-04 07:44:32 +00:00
tb
9df5e43bd2 mmap(2) failure is indicated by MAP_FAILED, not NULL.
ok mglocker
2016-06-02 08:53:32 +00:00
mglocker
9d46737716 Just try to unmap a buffer when something has been mapped before.
ok semarie tb
2016-06-02 07:47:25 +00:00
tb
7d6f19381b Guard against using tp_start uninitialized in case no frame was
grabbed in verbose mode.

ok mglocker
2016-05-31 08:45:14 +00:00
mglocker
b1a7299baa Add mmap(2) support for frame grabbing and make it default over read(2).
The introduced '-g' option still allows to fallback to read(2).

With input from tb, jmc, and Patrick Keshishian.

ok tb
2016-05-31 06:47:12 +00:00
brad
fef33097b9 Now that gcc2 is gone revert the removal of anonymous unions.
"I think this is the right thing to do" miod@
"Fine with me." sthen@
2014-10-23 07:36:06 +00:00
matthieu
3e0a91b35c Typo in warn() argument. Reported by Artturi Alm. Thanks. 2012-08-14 12:09:33 +00:00
jakemsr
95e3242529 add the -R option to usage()
spotted by sobrado@
2011-04-11 17:23:18 +00:00
jakemsr
53483e36a8 * use VIDIOC_ENUM_FRAMEINTERVALS to get the supported frame intervals
and display the frame rates if at least on -v is used.
* set/get the video(4) device's frame rate using VIDIOC_{S,G}_PARM.
* add new option -R which dsables frame rate adjustment.  only really
useful for video(4) devices, to see the difference between the frame
rate the device generates and what it says it's configured for ...
many devices don't generate the rate they are configured if they
aren't getting enough light ...
* poll(2) input with INFTIM instead of 0 timeout, and handle the poll(2)
call being interrupted by the frame timer.
* only use usleep(3) to wait for frames if the input is a file, and
in that case, sleep for a full frame interval or until interrupted
by the frame timer.
* update the manual to describe the new -R option, that -r now sets
video(4) frame rate, and that at least one -v will display supported
properties of the hardware.
2011-04-11 02:58:49 +00:00
jakemsr
622e7bac0c oops. start with an undefined encoding instead of yuy2. lets the code
figure out what encoding to use, based on what the hardware supports.
still uses yuy2 by default if the hardware supports it.
2010-10-15 14:21:20 +00:00
jakemsr
29306fc0e4 declare the global vars as static to not conflict with symbols from
libraries
2010-10-15 09:27:26 +00:00
jakemsr
52f69c164d support for gamma and sharpness/acutance controls.
also from Martin Pieuchot, thanks!
2010-09-26 23:47:17 +00:00
jakemsr
02e1414c42 no more anonymous unions in video(4) 2010-09-13 01:35:50 +00:00
jakemsr
bdc0c150f3 $OpenBSD$ and compare width to width, not width to height 2010-07-26 23:02:06 +00:00
sobrado
9e6242225e sort options as usual in our operating system; `usage:' is lower case;
improve usage()'s output; better indentation in usage() function.

ok jakemsr@
2010-07-26 08:09:33 +00:00
jakemsr
63de478659 do not add the same size twice, and do not fall of the end of
the frame sizes array.
reported/tested mglocker
2010-07-24 22:09:08 +00:00
jakemsr
3838c3aada import video(1), an application for recording and/or displaying
images from a video(4) device
ok matthieu, todd; prodding from deraadt
2010-07-23 11:33:52 +00:00