Commit graph

4362 commits

Author SHA1 Message Date
Wim Taymans 505f4c14b6 Makefile: set mixer and profile paths 2020-08-03 08:14:32 +02:00
Wim Taymans 2116b4d10a uninstalled: add some comments to variables 2020-08-02 20:18:03 +02:00
Wim Taymans edb3968c5c docs: some small fixes and updates 2020-08-02 20:14:04 +02:00
Gleb Popov be19e45ee1 Workaround subtle problem with FreeBSD CI. 2020-08-02 20:13:54 +02:00
Wim Taymans 407ea74513 don't use qsort_r, it's not implemented everywhere
Fixes #260
2020-08-02 12:50:56 +02:00
Wim Taymans 0b12cc96cc pulse: remove metadata store
We don't actually need to store all the metadata, we just need to
track the default sink and source property and store the value.
2020-07-31 15:47:14 +02:00
Wim Taymans f2cc0e6723 media-session: add some debug for enum-param 2020-07-31 15:21:39 +02:00
Wim Taymans 5bdd65e066 device: pass original seq in async reply
When we get an async reply from the implementer, use the original
seq from the caller in the reply.

Fixes !287
2020-07-31 15:19:45 +02:00
Wim Taymans 5e51cbe48e media-session: improve param enumeration
Don't use subscribe, enum is more manageable.
Use user data field to check for changes.
Only enumerate readable params.
Enum all node params.
2020-07-31 13:59:25 +02:00
Wim Taymans f231392093 pulse: improve param enumeration
Use user data field in param to check for changes and only
perform a clear+enum when it changed.
2020-07-31 13:57:19 +02:00
Wim Taymans 47ce374636 pulse: refactor param enumeration 2020-07-31 13:33:28 +02:00
Julian Bouzas c388df1cf3 bluez5: include profile classes when doing enum profile 2020-07-31 10:53:51 +00:00
Wim Taymans 6f2e274b15 protocol: add a few more options for XDG_RUNTIME_DIR
PIPEWIRE_CORE can be used to specify a server name.
PIPEWIRE_REMOTE can be used to specify what server name to
connect to.

Either use the absolute path of the name to create and connect
to a server, or use a relative path. For a relative path, the
server name will be completed by prefixing the following paths
in order:

PIPEWIRE_RUNTIME_DIR environment variable,
XDG_RUNTIME_DIR environment variable,
HOME environment variable,
USERPROFILE environment variable,
home directory as stored in the password database.

Fixes #259
2020-07-31 12:46:58 +02:00
Wim Taymans 5f40bc6d4e gst: support VideoCrop meta
Convert the VideoCrop metadata to GStreamer metadata.
2020-07-31 11:44:46 +02:00
Wim Taymans 6fd373ac83 examples: add support for YUV data 2020-07-31 11:44:20 +02:00
Wim Taymans a5f85deabe pulse: also use PIPEWIRE_LATENCY as a fallback 2020-07-30 18:23:23 +02:00
Wim Taymans df76501d39 impl-node: update driver stats as well
If we have an underrun but are managed by another driver, also update
the driver stats.
2020-07-30 18:22:33 +02:00
Wim Taymans aee95e76bb pulse: use the right sample spec 2020-07-30 18:22:03 +02:00
Wim Taymans c7d7dd91f8 permission: add M permission
The M permission is needed to set metadata on an object.
2020-07-30 16:35:14 +02:00
Wim Taymans 91d4806611 permission: add some helpers
Add PW_PERM_ALL as a shortcut for all permissions
Add PW_PERMISSION_FORMAT and PW_PERMISSION_ARGS to nicely format
permissions.
2020-07-30 16:26:29 +02:00
Wim Taymans f5e78196c4 pulse: check that we have access to change metadata 2020-07-30 16:23:13 +02:00
Wim Taymans 8db9a2741b metadata: only allow setting metadata on objects we can see
Allow a client to only set metadata on objects that it has
read access to.
2020-07-30 15:30:13 +02:00
Wim Taymans bd8b239621 client: add function to check permissions of a client 2020-07-30 15:16:30 +02:00
Wim Taymans a5ec68e61c metadata: only set default name when not already set 2020-07-30 14:28:11 +02:00
Wim Taymans ba8522aac9 metadata: we need W permission to set and clear properties 2020-07-30 14:27:35 +02:00
Wim Taymans 2b3a58ed13 jack: improve client name
Only append app name and node name when they are different
Use / to separate app name from node name because : is used to
separate client name from port name.
2020-07-30 12:56:20 +02:00
Wim Taymans 2e95f7dd85 jack: improve metadata callbacks
Only emit callbacks when something changed.

When setting a value, first update the local store. This triggers
the emit from the calling thread (as expected by jack clients) and
when the update arrives from the server, it will not emit the callback
anymore because the value didn't change.
2020-07-30 12:11:24 +02:00
Wim Taymans f888c58b83 jack: fix client uuid 2020-07-30 12:10:46 +02:00
Wim Taymans 24755afee9 pulse: use format from node if available
And fall back to some defaults otherwise.
2020-07-29 14:42:29 +02:00
Wim Taymans 18b4aee677 Parse format param and store in node 2020-07-29 14:29:03 +02:00
Wim Taymans 0d6bbaa7e1 policy-node: only configure devices when active
Wait until a node is active before we attempt to configure it or
else we don't yet have a format to configure it with.
2020-07-29 12:20:24 +02:00
Wim Taymans d2452e1340 acp-device: remove sources when destroyed
Or we end up polling wrong fds in an infinite loop.
2020-07-29 12:19:33 +02:00
Wim Taymans e32a7a8d65 make some errors into debug
With the debug and return value we can delay writing error messages
in the log until we really need to.
2020-07-29 11:30:11 +02:00
Wim Taymans 55bef12cda pulse: take queued data into account when asking for more
Don't use always ask for the maximum amount of data in the
write_callback but subtract the queued amount of data from it or else
we will queue too much and cause huge lag.

Fixes #258
2020-07-29 09:49:06 +02:00
Wim Taymans c04d57d5d5 pulse: fix signedness warning 2020-07-28 16:53:13 +02:00
Wim Taymans 229fad4691 0.3.8 2020-07-28 15:20:04 +02:00
Wim Taymans 1d7ca5bdae add udev rules so we don't rely on pulseaudio 2020-07-28 13:11:17 +02:00
Wim Taymans eaf7606e3f acp: pass udev PROFILE_SETS to acp device 2020-07-28 13:00:45 +02:00
Wim Taymans e478ba7e34 alsa: be safer when parsing device string 2020-07-28 12:51:33 +02:00
Wim Taymans 154f981f97 Add mixer paths and profile-sets as well
So we don't have to rely on pulseaudio installed ones
2020-07-28 12:30:32 +02:00
Wim Taymans a2de3b0873 policy-node: add default video source metadata 2020-07-28 11:17:36 +02:00
Wim Taymans 9e8851e0ae policy-node: do downmix in monitor streams
Monitor streams usually have 1 channel so ask for all monitored
channels to be downmixed.
Don't try to configure video or unknown streams
2020-07-28 10:50:00 +02:00
Wim Taymans cb91e9c536 stream: improve flags 2020-07-28 10:49:33 +02:00
Wim Taymans a96fcf5c19 policy-node: rework node configuration
Add a configure stage to the node where the PortConfig is
determined.
Wait until we link a stream and then configure the node with the
portconfig of the peer.
Configure devices with the their best portconfig by enumerating
the formats.
2020-07-28 10:21:01 +02:00
Wim Taymans 3f33c9c81d acp: sync with latest 2020-07-28 10:16:47 +02:00
Wim Taymans 6184c0fe32 keys: add stream to avoid remixing channels 2020-07-28 10:16:04 +02:00
Wim Taymans e35586cd15 media-session: link MONO/UNKNOWN channels only once
Try to only link the MONO and UNKNOWN input ports once
2020-07-27 17:41:52 +02:00
Wim Taymans 6e2d3feb07 doc: clarify version field in events 2020-07-27 16:47:30 +02:00
Wim Taymans ca5836cdf4 alsa: fix delay parameter
We need to keep twice the delay of samples around. Fixes capture
with resampling.
2020-07-27 16:22:17 +02:00
Wim Taymans 8f3771a56c alsa-pcm: also follow resampler insize when resampling
Use the input size of the resampler as the amount of samples to
read when we are resampling.
2020-07-27 15:57:27 +02:00