Commit graph

448 commits

Author SHA1 Message Date
Wim Taymans
1fec67086d audiomixer: debug port id 2018-04-03 16:29:36 +02:00
Wim Taymans
e7bff4293d alsa: small cleanups
Use flags for buffers
2018-04-03 16:29:36 +02:00
Wim Taymans
5bff143eaf audiomixer: update io states more correctly 2018-04-03 16:29:36 +02:00
Giovanni Campagna
07f12c9713 v4l2: fix enumerating frame interval for continuous/step-wise devices
A device that supports continuous/step-wise frame interval will
report the correct frame intervals for index 0 and EINVAL for
every other index.
(https://linuxtv.org/downloads/v4l-dvb-apis/uapi/v4l/vidioc-enum-frameintervals.html)

Previously, the code would exit from the loop after successfully
reading index 0, without marking that the iteration of frame
interval completed. Therefore, the next time the function was
called the same frame intervals would be read, instead of advancing
to the next frame size or format type.
Instead, mark that we need to try and read the next format size.

Fixes #56
2018-04-03 16:28:23 +02:00
Eike Rathke
871dd2743b __STDC_VERSION__ may be undefined
Clang++ (and g++) don't define __STDC_VERSION__ which results in

 include/spa/support/log.h:101:5: error: '__STDC_VERSION__' is not defined, evaluates to 0 [-Werror,-Wundef]
 #if __STDC_VERSION__ >= 199901L
 include/pipewire/log.h:64:5: error: '__STDC_VERSION__' is not defined, evaluates to 0 [-Werror,-Wundef]
 #if __STDC_VERSION__ >= 199901L

so check if __STDC_VERSION__ is defined before comparing.
Also, include/feature.h additionally defines __USE_ISOC99 (and
__USE_ISOC11 for C11 extension), so check these as well.
2018-04-03 16:27:58 +02:00
Philipp Zabel
e38cba4e13 v4l2: check device caps
If V4L2_CAP_DEVICE_CAPS is set, device_caps must be checked for the
V4L2_CAP_VIDEO_CAPTURE flag instead of capabilities.
2018-04-03 16:27:43 +02:00
Wim Taymans
187b6d4bf9 alsa: update the offset after each copy 2018-03-14 16:03:58 +01:00
Wim Taymans
8cadcd7f56 hook: return number of hooks called
Do finish_format ourselved when nobody was listening for the
format change.
2018-03-14 16:03:33 +01:00
Wim Taymans
2ed627f3b1 list: remove stray ; 2018-03-14 15:15:13 +01:00
Wim Taymans
638916e065 loop: remove the destroy_list
Don't use a destroy_list anymore, it's not safe anyway. Instead require
that sources be removed with (a blocking) invoke. Make sure we don't
dispatch sources that were removed from the loop.
2018-03-14 14:51:36 +01:00
Wim Taymans
8e2ceb773e Improve some debug 2018-03-01 09:01:52 +01:00
Wim Taymans
6f61ac9357 fix some signed vs unsigned comparisons 2018-02-20 18:19:11 +01:00
Wim Taymans
d3cc45c611 alsa: make some log as debug 2018-02-20 15:48:47 +01:00
Wim Taymans
2fe7197930 node: add option to pause-on-idle
v4l2 is slower to start when we pause in idle. Disable this
behaviour with an option on the node.
2018-02-20 12:28:19 +01:00
Wim Taymans
528d0a1c7d alsa: put device name in separate property 2018-02-20 09:59:52 +01:00
Wim Taymans
0e5a1b6327 props: use macro for property alternatives 2018-02-20 09:36:05 +01:00
Wim Taymans
c613ae4b40 v4l2: unset format, then close
v4l2 does not want to close unless the format is cleared
2018-02-16 18:14:24 +01:00
Wim Taymans
cafb22a6b9 alsa: only try to pull when out of buffers 2018-02-16 16:56:19 +01:00
Wim Taymans
7ffaaf66a7 v4l2: remove source on errors 2018-02-15 10:47:43 +01:00
Wim Taymans
f37f8ce70d v4l2: keep separate field for mapped fd
When mapping an input memfd, don't write the mapped pointer into the
buffer but keep a separate field for it.
2018-02-12 11:35:49 +01:00
Wim Taymans
29dbffea52 v4l2: map memfd when not already mapped 2018-02-12 11:04:28 +01:00
Wim Taymans
342f0d59d0 node: add some more port flags
Add port flags to mark physical and terminal ports
2018-02-09 18:05:35 +01:00
Wim Taymans
5f89cf4fa2 type-map: fix char array definition 2018-02-08 12:40:09 +01:00
Wim Taymans
21e3b4cec7 c++ compiler fixes 2018-02-08 11:24:20 +01:00
Wim Taymans
f049d3dc7f Fix compiler issues with c++ 2018-02-08 10:49:08 +01:00
Wim Taymans
9d4b0d8358 dbus: move rtkit to module
Move the rtkit code to a module.
Make sure we don't need to include the dbus headers in the spa dbus
interface. This removes the dependency on dbus.
2018-02-08 10:02:17 +01:00
Wim Taymans
c5df05d3f3 v4l2: respect MAX_CONTROLS limit 2018-02-07 18:14:11 +01:00
Wim Taymans
3289e3fb7e v4l2: handle control properties
Add the right propId to properties so they can get controls.
Keep track of properties and handle the io area for them
Check if properties changed and update the v4l2 controls
2018-02-07 18:08:16 +01:00
Wim Taymans
8e89474c7e v4l2: generate prop id for controls
Generate a propid so that they are added as controls
2018-02-07 11:51:51 +01:00
Wim Taymans
4c1dc20eac io: remove unused field 2018-02-07 11:31:47 +01:00
Wim Taymans
c524fae523 list: add more helpers 2018-02-06 09:25:27 +01:00
Wim Taymans
95b3cba3c3 audiomixer: only overwrite OK status
When the mixer has no bytes queued, only ask for more bytes when
we were in the OK status otherwise we might override the HAVE_BUFFER
status and discard the queued buffer.
2018-01-30 14:53:38 +01:00
Wim Taymans
01d8fdc1bf graph: reset counters before checking peers 2018-01-30 14:51:18 +01:00
maxice8
214babe7b9 param/meta.h: add missing fcntl.h include for off_t 2018-01-27 07:40:04 +01:00
Emmanuele Bassi
f9ed917814 build: Do not redefine dependency objects
Use the top-level ones.
2018-01-26 08:51:38 +01:00
Wim Taymans
ab099d09dd permissions: check permissions more
Pass client to some core functions to make it possible to check
permissions when iterating globals.
Check permissions of factory before using it.
Check permissions in link factory, only allow linking of nodes we can
see.
Check permissions in the autolink module, only try to link to nodes
we can see.
Make client permissions update behave like an atomic update of an
unordered set of permissions, which is perhaps a bit more intuitive.
2018-01-24 10:42:40 +01:00
Wim Taymans
1804e47a91 a2dp-codecs: also define functions for big endian 2018-01-23 16:23:39 +01:00
Wim Taymans
afae27b4cc don't build bluez when sbc is missing 2018-01-23 16:06:54 +01:00
Wim Taymans
54a6086e45 command: add more commands 2018-01-23 15:54:56 +01:00
Wim Taymans
865f671195 audiomixer: fix EnumFormat
When a format is set on one of the ports, only return that format
from EnumFormat.
2018-01-18 15:41:47 +01:00
Wim Taymans
0eb44b340a link: use DISABLED flag on port of inactive links
Don't unlink the ports of an inactive link because then it might be
possible that the scheduler can't recycle a buffer, instead use
a port flag to mark the ports disabled and change to scheduler to
skip those ports.
2018-01-18 15:39:03 +01:00
Wim Taymans
155243a27c spa: simplify start/pause
Use the sync option in invoke to implement stop.
2018-01-18 11:57:23 +01:00
Wim Taymans
7d5f302f93 Add bluez5 plugins 2018-01-16 15:19:55 +01:00
Wim Taymans
f24ee7fd02 debug: print to stderr 2018-01-11 10:14:26 +01:00
Wim Taymans
0b7c3e7407 fix spa_support_find 2017-12-18 13:14:18 +01:00
Wim Taymans
f7b6fea43d Add dbus support interface
Add an interface that can manager a dbus connection.
Make a dbus interface in the core that can create connections running
in the core main loop. Keep this as support for spa plugins.
2017-12-18 12:41:47 +01:00
Wim Taymans
4d6ac37398 Use int instead of bool as result
Prefer to use an int return from a function instead of bool because
it can contain more info about failures.
2017-12-18 11:38:30 +01:00
Wim Taymans
e5e360d5df props: improve property introspection
Make a new PropInfo parameter that allows us to iterate all
properties. Make some new fields to set labels and names for
properties. We will be able to add more things to describe the
properties this way.
Use the Props param to simply query or set properties.
We can now make int enum properties and describe all possible
values with labels, we don't need to register types anymore.
This then makes it possible to enumerate the v4l2 controls and make
them available as control params.
2017-12-15 16:30:56 +01:00
Wim Taymans
1c19342487 pod: add info property flag
Add an info property flag that should not be taken into account
when intersecting. We use this for docs and labels.
Improve builder, make it possible to make struct properties with
flags.
Add some docs to the property flags and ranges.
2017-12-15 16:25:46 +01:00
Wim Taymans
3743c88a6e inspect: Improve introspection
List the factory interfaces that are provided.
The interface id of the typemap is always 0 to avoid the chicken and
the egg problem.
Check debug env variable
2017-12-14 18:24:48 +01:00