Wim Taymans
1a0ad3d688
v4l2-utils: only allocate MemPtr when requested
2021-05-06 10:16:21 +02:00
Wim Taymans
941620b733
v4l2: don't expose the internal fd
...
When allocating memory, just export the mmaped memory and mark the
memory as MemPtr, not MemFd. Set the fd to -1.
Otherwise we might send this fd to the client, making the complete
device accessible to the client.
2021-05-06 09:24:27 +02:00
Wim Taymans
44f49a3ea0
v4l2: add some more debug
2021-05-05 11:23:44 +02:00
Wim Taymans
9c8a578e21
v4l2: don't select DmaBuf when the type mask is invalid
...
an invalid data type mask means that the caller did not explicitly
allowed DmaBuf so fall back to memptr or memfd.
Fixes #1054
2021-04-15 20:42:11 +02:00
Peter Hutterer
223f20709d
meson: replace join_paths(a, b) with a / b
...
More readable and from the meson reference manual:
(since 0.49.0) Using the/ operator on strings is equivalent to calling join_paths.
2021-04-15 06:57:00 +00:00
Pauli Virtanen
20e383cea7
v4l2: remove device if inotify reports it's no longer accessible
2021-04-11 16:38:10 +00:00
Björn Daase
5913eb098c
treewide: fix issues found by codespell
2021-03-16 19:11:25 +00:00
Gleb Popov
fd544544ab
Link v4l2 plugin to libinotify on FreeBSD
2021-02-24 19:29:57 +00:00
Wim Taymans
ecd1d3e1d7
Move node.pause-on-idle setting to config files
...
So that we can configure it.
Add some more docs to the config file
2021-02-08 17:19:47 +01:00
Wim Taymans
2b44f42845
pass the complete buffer size to snprintf
...
There is no reason to pass size-1, snprintf will always put a \0
at the end.
2021-02-02 12:09:29 +01:00
Wim Taymans
af092a9a7e
v4l2: respect allowed data types
...
Check if we can do DmaBuf as the data type before we attempt this.
Otherwise we don't get any data in clients that can't deal with
DmaBuf.
2021-01-21 16:04:37 +01:00
Wim Taymans
938e2b1451
v4l2: profiles params are not implement yet
2020-12-17 16:13:19 +01:00
Wim Taymans
22c793aa87
v4l2: add inotify support
...
Wait with inotify until we can access the device node before emiting
the new device.
Clean up alsa-udev and make it more like v4l2-udev
2020-12-17 10:43:57 +01:00
Wim Taymans
bd4663b3cc
v4l2: log open/close as info
2020-12-09 17:24:54 +01:00
Wim Taymans
9639f32db5
v4l2: zero some structures before ioctl
2020-09-29 17:06:53 +02:00
Wim Taymans
ced338ad7d
v4l2: mmap the buffer again
...
Some drivers need a mmaped buffer...
2020-09-29 17:06:24 +02:00
Wim Taymans
ed1ee3f164
v4l2: detect driver reusing buffers
...
Some drivers seem to only use 2 buffers when asked for 16 buffers. We
can see this because the buffer is already queued. In this case, just
use the 2 buffers.
See #294
2020-09-29 12:33:14 +02:00
Wim Taymans
9f1d84e37c
v4l2: in alloc buffer, don't mmap, just pass the fd
...
If we can't use EXPBUF, just put the fd and mapoffset in the buffer
memory. This way we can pass the fd to the client and let it mmap .
2020-09-27 17:07:29 +02:00
Wim Taymans
59990ea049
v4l2: fall back to mmap when EXPBUF fails
...
If EXPBUF returns and error, try to mmap instead.
Fixes #294
2020-09-27 16:30:51 +02:00
Wim Taymans
cce8f3fb08
v4l2: improve debug
2020-09-27 16:30:06 +02:00
Wim Taymans
7a2741c9e1
v4l2: do TRY_FMT on the filter format
...
Do a TRY_FMT on the filter format before enumerating the sizes with it
because some drivers don't check the format anymore.
Fixes #294
2020-09-19 13:32:47 +02:00
Wim Taymans
67b692396b
v4l2: remove format checks
...
When a caller sets a format, we do this regardless of the currently
configured format.
2020-06-18 18:26:00 +02:00
Wim Taymans
6e74edc14e
v4l2: always stop and clear buffer when setting a format
...
The caller frees the buffers after setting a new format.
2020-06-18 18:23:36 +02:00
Wim Taymans
ff4a314022
use fstat when we can
...
This avoids having things change between the stat and open.
2020-05-20 15:24:25 +02:00
Wim Taymans
42af40675d
v4l2: mark data CORRUPTED
...
We need to mark the data corrupted in the chunk, not buffer flags.
2020-05-09 19:38:16 +02:00
Wim Taymans
8dcd6c4417
improve debug
2020-05-09 19:21:55 +02:00
Wim Taymans
1ca7713057
implement NEAREST flag
...
when the NEAREST flag is set and the param could not be completely
set, set_param should return 1 to indicate this.
2020-05-08 17:52:30 +02:00
Wim Taymans
12b8e095c7
v4l2: log error when format doesn't match
2020-05-08 17:35:57 +02:00
Wim Taymans
aafd1e7298
improve debug
...
Improve log so that debug level 3 gives a reasonably readable overview
of what is going on.
2020-04-22 12:47:18 +02:00
Wim Taymans
a1846c9780
udev: don't loop forever on errors
...
When we can't find the v4l2 device id, unref the device and continue
instead of looping forever and consuming all memory.
Fixes #219
2020-03-24 15:54:58 +01:00
Wim Taymans
a9b191971c
v4l2: fix buffer recycle
...
Only set the OUTSTANDING flag when we placed the buffer in an
io area and need to recycle it later.
When we captured a frame, put it in the queue. Then dequeue it
into the io area after recycling buffers.
Fixes #217
2020-03-19 13:15:49 +01:00
Wim Taymans
6085c0eaee
v4l2: use the buffer time as pts
...
Don't try to use the seq number as pts, just use the timestamp
returned from v4l2 if any so it can be matched against the clock.
2020-02-11 11:21:34 +01:00
Wim Taymans
65caf8832c
spa: install in versioned directory
...
So that we can run old and new plugins side by side.
2020-01-29 15:51:41 +01:00
Wim Taymans
9ffa9c0b08
v4l2: handle suspend
2020-01-08 13:23:35 +01:00
Michael Tretter
8e6a5a1714
v4l2: print pixelformat as string
...
The pixelformats are actual 4 letter sequences. Print the letters
instead of the hex value to make the output more readable.
2019-12-19 15:43:13 +01:00
Wim Taymans
f391353c7f
Make interface types a string
...
This is more in line with wayland and it allows us to create new
interfaces in modules without having to add anything to the type
enum. It also removes some lookups to map type_id to readable
name in debug.
2019-12-19 13:36:04 +01:00
Wim Taymans
feb8dd3a34
Add include of keys.h
2019-11-21 09:34:08 +01:00
Wim Taymans
18974f90f6
pod: rename context to flags in spa_pod_prop
...
Flags are more useful when we can use them to describe how to
filter properties later.
2019-11-21 09:32:08 +01:00
Wim Taymans
ac24743b2e
the epoll shim should only be used by the system library.
...
All other places should use the system library to get the right
fds.
2019-11-19 15:16:18 +01:00
Gleb Popov
fd937fa378
On FreeBSD, add dependency on epoll-shim library.
...
FreeBSD doesn't provide timerfd and eventfd functions. These are implemented in
3rd party library called epoll-shim. Link targets requiring these functions to
this library.
2019-11-19 13:41:40 +01:00
Wim Taymans
d94019ccd2
io: Add current video frame size to position
...
Add some padding, tweak some padding
Remove count in the clock, it's useless
For video frames we will want to use metadata to place
this on individual buffers.
2019-10-29 14:08:40 +01:00
Wim Taymans
9ffec214b8
fix includes
2019-10-25 15:01:02 +02:00
Wim Taymans
9d842fb5eb
improve debug and error reporting
2019-10-08 22:33:31 +02:00
Wim Taymans
6e0ffb0c47
flags: change flag macros
...
SPA_FLAG_CHECK -> SPA_FLAG_IS_SET
SPA_FLAG_UNSET -> SPA_FLAG_CLEAR
Add SPA_FLAG_UPDATE
2019-10-02 18:00:42 +02:00
Wim Taymans
f59a43a4f0
v4l2: improve is_capture check
2019-10-01 10:13:42 +02:00
Wim Taymans
82ee139f65
spa: improve object properties
2019-10-01 10:04:22 +02:00
Wim Taymans
77e07e1948
improve properties on globals and ports
2019-09-20 13:28:06 +02:00
Wim Taymans
6756a3c8fc
monitor: remove monitor API and use device
...
Remove the monitor API, we can use the device API for it. Make sure
we support creating devices (like alsa) from another device (udev).
Use new object.id to store the object id in the object properties. Use
the port.id/node.id etc to make relations to other objects.
2019-09-20 13:04:14 +02:00
Wim Taymans
4381e79632
control: clean up some control includes
...
Remove control from channelmix, it's not used
Add control metadata
Add OSC control type
Improve some docs
2019-09-16 15:49:46 +02:00
Wim Taymans
8b85cc225e
rename HAVE/NEED_BUFFER -> HAVE/NEED_DATA
...
It is more generic and works with control-only ports as well
2019-09-16 12:55:23 +02:00