Commit graph

2661 commits

Author SHA1 Message Date
Wim Taymans
024429ea7b link: only set port io once
Only set port_io once.

Fixes #186
2019-09-27 10:34:51 +02:00
Wim Taymans
c59af4debc examples: copy properties for pw_remote_export()
pw_remote_export() takes ownership of the properties so make a copy
of the ones we still want to hold on to.
2019-09-27 10:13:21 +02:00
Wim Taymans
68fc530d9c remote: take ownership of properties in _export()
pw_remote_export() takes ownership of the properties so implement
this in the device and spa_node export functions.

Fixes #187
2019-09-27 10:06:25 +02:00
Wim Taymans
50fc65a07e pulseaudio: update 2019-09-27 09:50:24 +02:00
George Kiagiadakis
5183e1d4b4 bluez-monitor: fix usage of pw_properties_setf without a format string
Otherwise compilation will fail with certain -Wformat-security flags
Add the flag to the warnings.
2019-09-26 17:26:23 +02:00
Wim Taymans
56cf3196a2 Update NEWS 2019-09-26 16:53:05 +02:00
Wim Taymans
8b69fbb27a Merge branch 'work' into master 2019-09-26 16:48:17 +02:00
Wim Taymans
14c11c0fe4 Release 0.2.7 2019-09-26 15:58:39 +02:00
Wim Taymans
312864d9e9 protocol-native: attempt to remove socket
After we grab the lockfile we should remove the socket when it
exists so that we can bind again. This should solve startup
problems after a crash, which left the socket around and caused
bind failures.
2019-09-26 15:41:03 +02:00
Wim Taymans
44840c4a55 alsa-seq: add some comments 2019-09-26 15:17:00 +02:00
Wim Taymans
f539b42a03 alsa: improve midi
Add some debug
Ignore ports without buffers.
2019-09-26 11:57:25 +02:00
Wim Taymans
8d472befaa alsa-seq: Improve connection setup 2019-09-25 10:48:25 +02:00
Wim Taymans
efe3aba608 adapter: put port channel in port name if possible 2019-09-25 10:44:40 +02:00
Wim Taymans
f0b3ed5257 alsa-seq: improve timings
Track the position of the clock instead of our own timer.
Implement stop.
2019-09-25 10:14:25 +02:00
Wim Taymans
387b281f5c alsa-seq: use dll to track queue timer
Also increase timer resolution to get less jitter.
2019-09-24 17:23:39 +02:00
Wim Taymans
197d2b15b6 alsa-pcm: small cleanups 2019-09-24 17:23:01 +02:00
Wim Taymans
db341a6450 improve properties on node and port
Rename some alsa filenames.
2019-09-23 20:51:34 +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
818fb9e904 alsa: add midi bridge
Add a node that exposes all midi input and output ports and converts to
and from PipeWire control streams.
2019-09-19 16:57:00 +02:00
Wim Taymans
ab0d1b7fad alsa: cleanups
Avoid getting the clock time just for debug.
Improve time at startup.
2019-09-19 16:55:02 +02:00
Wim Taymans
d3c7acb137 iter: add helper to parse pod from memory region 2019-09-19 13:17:48 +02:00
Wim Taymans
322ccb452c small cleanups 2019-09-19 13:17:30 +02:00
Wim Taymans
59bf522ce1 system: use the same bits as POLL and EPOLL
Use the same bits for the io mask as POLL and EPOLL so that we
can avoid conversions.
2019-09-19 13:15:38 +02:00
Wim Taymans
49a5e97d69 format: add application/control media type
Add a new application/control media type that can be used to negotiate
control streams between ports.
2019-09-16 21:09:52 +02:00
Wim Taymans
565f0475f0 tests: update test 2019-09-16 21:08:03 +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
Wim Taymans
d648ea4ad3 control: don't fail on async port_set_io 2019-09-10 18:50:28 +02:00
Wim Taymans
2d8bce7479 names: add vulkan compute source factory name 2019-09-10 12:38:25 +02:00
Wim Taymans
7fd6d6d820 node: revert previous commit
Always add work to the work queue, some code relies on the fact that
the state change continuation happens from next iteration of the
mainloop.

Don't warn when destroying the work queue and there are still items in
it, this is ok.
2019-09-10 12:27:29 +02:00
Wim Taymans
80ba0b2dcf node: only put async state changes to work queue 2019-09-10 12:13:26 +02:00
Wim Taymans
9a202272f2 remote: always close the fd in connect_fd
Not closing the fd causes leaks in existing apps. It's probably better
to always close it and let apps deal with that by using dup or similar.

Make gst sink and source dup the fd before connect_fd().

Fixes #181
2019-09-10 11:08:38 +02:00
Wim Taymans
c9855763c3 remote: always close the fd in connect_fd
Not closing the fd causes leaks in existing apps. It's probably better
to always close it and let apps deal with that by using dup or similar.

Make gst sink and source dup the fd before connect_fd().

Fixes #181
2019-09-10 11:05:38 +02:00
Julian Bouzas
ddd2a97f7e bluez: set bluez profile property when emitting node
We need to expose the bluetooth profile in the nodes so that external
applications know how to handle them.
2019-09-10 10:42:11 +02:00
Wim Taymans
3142d3b979 mem: add private mapping flag 2019-09-10 09:59:31 +02:00
Wim Taymans
b9e517ee67 pipewire: add PIPEWIRE_LOG environment variable
PIPEWIRE_LOG will redirect logging to a file.
2019-09-10 09:44:05 +02:00
Wim Taymans
0fe7f9765d link: use the port as the work-queue object
Use the port as the object/seq identifier of the defered work. This
way we can handle feedback links between the same node and identify
what port completed.
2019-09-10 09:42:23 +02:00
Wim Taymans
9c9bff8fe9 data-loop: add _wait function
Add function to wait for one iteration of the loop. This can be used
by specialized implementations of the data loop, like jack.
2019-09-09 17:17:03 +02:00
Wim Taymans
3340f3cacc core: don't touch unassigned nodes that don't need_driver 2019-09-05 17:06:49 +02:00
Wim Taymans
729dd1360a alsa: don't set rate, it's set by the app 2019-09-05 17:05:20 +02:00
Wim Taymans
4a4fa57efc alsa: handle target better
Rework how we handle the current device fill level and our desired
fill level so that we handle it more consistently.
2019-09-05 13:45:37 +02:00
Wim Taymans
88299ab225 alsa: add sync-id to properties 2019-09-05 13:18:56 +02:00
Wim Taymans
a232e67dd8 resample: completely fill resampler
start with a completely filled resampler so that the first
input byte immediately gives an output sample. When then have
n_taps/2 leading (almost) 0 samples.

Also make the passthrough resampler act like the real resampler
by introducing an n_taps/2 delay.
2019-09-05 13:13:20 +02:00
Wim Taymans
b1bfc900d6 improve: debug 2019-09-05 13:09:01 +02:00
Wim Taymans
0eb2705766 alsa: fix read of second part of ringbuffer 2019-09-05 09:17:14 +02:00
Wim Taymans
bd2d0ebc75 node: handle target without node 2019-09-03 13:57:20 +02:00
Wim Taymans
73628c91de audioconvert: refuse invalid channels and rate 2019-09-03 13:49:38 +02:00
Wim Taymans
6341469456 jack: update 2019-09-02 17:19:00 +02:00
Wim Taymans
faaf84286b node: improve position and transport
Reorganize some things, let the clients update the segment info
in their own activation, then let the server merge it. This avoids
clients stepping on eachother. When looping through the clients,
copy the segment info when we encounter its owner.

Remove the list of segment owners to the activation. This is better
than in the activation because we can then just keep one list of
owners.

Remove the NONBLOCK flag from the eventfd so that we can do blocking
reads as well.

Just keep a reposition owner in the driver activation. This points
to the node that has the reposition info. This avoid complicated
synchronization to keep multiple nodes from stepping on eachother.
Now they can just prepare the reposition info in their activation and
set themselves as the reposition owner. The last one who succeeds
wins.
2019-09-02 12:05:05 +02:00