Commit graph

2686 commits

Author SHA1 Message Date
Wim Taymans
d51fb8687b deviceprovider: fix memory leaks
Fix leaking of the node info and caps by tracking the proxy object
and freeing our stuff when it is destroyed.
2018-08-13 15:20:25 +02:00
Wim Taymans
a2cfb0882b gst: keep track of clock time
Invalidate the clock when the stream is destroyed and let the new
clock take the time of previous clock when no timing info is
available.
2018-08-13 15:19:20 +02:00
Wim Taymans
5a3883509b stream: return error when no timing info yet 2018-08-13 14:28:25 +02:00
Wim Taymans
e6b7dd1d0f pipewiresrc: fix refcounting of buffers 2018-08-13 12:07:05 +02:00
Wim Taymans
393917ac76 gstdeviceprovider: fix caps introspection
Enum the node port params to get the caps of the devices.
2018-08-09 11:10:00 +02:00
Wim Taymans
17cc9d2039 add media session example beginnings
Add an example media session that runs as a separate program instead
of a module
2018-08-09 11:07:41 +02:00
Wim Taymans
8f8ed7270a link: reset port state on deactivate
Make sure we renegotiate the mix ports when we deactivate the link.
2018-08-09 11:03:45 +02:00
Wim Taymans
f7c84b733b gstdeviceprovider: fix caps introspection
Enum the node port params to get the caps of the devices.
2018-08-03 17:42:49 +02:00
Wim Taymans
1d34d994e2 link: limit number of buffers when allocating
When we let the nodes allocat buffer, limit the number of buffers to 16
for now. We run out of fds when sending the message. We would need to
send the fds in multiple sendmsg calls.
2018-08-03 17:39:55 +02:00
Wim Taymans
41c63149f9 audioconvert: remove unused fields 2018-08-03 17:39:28 +02:00
Wim Taymans
f087a088a5 small debug improvements 2018-08-01 21:43:31 +02:00
Wim Taymans
a63523650d hooks: enforce version on hook emission
Pass the minimum required version to the hook emission and only call
events when the handler is recent enough.
Add some macros to make event emission easier to read.
2018-08-01 21:41:25 +02:00
Wim Taymans
a72e3cefd7 fmt: fix 24 bits audio 2018-08-01 18:15:17 +02:00
Wim Taymans
8188d6f904 link: don't update port state in deactivate 2018-08-01 10:12:01 +02:00
Wim Taymans
899e67eb61 client-node: clear buffers when mixer is removed 2018-07-31 21:36:10 +02:00
Wim Taymans
60ec372212 floatmix: add missing file 2018-07-31 19:17:44 +02:00
Wim Taymans
ea66ac4075 alsa: update write offset after each write 2018-07-31 17:40:32 +02:00
Wim Taymans
327ae5db6e add apiversion to pkgconfig as well 2018-07-31 15:05:17 +02:00
Wim Taymans
c5380162ac build: fix module install directory 2018-07-31 14:56:34 +02:00
Wim Taymans
887b9550ce Release 0.2.2 2018-07-31 14:39:42 +02:00
Wim Taymans
57ef49b154 client-node: fix port implementation
Make the port forward the port methods to the node.
Fix io area when not using adapter
2018-07-31 14:28:15 +02:00
Wim Taymans
ca898a00db work on separating port mixers
Make it possible to assign an arbitary node as the port mixer.
Also remove dynamically added ports.
Improve negotiation and allocation on the mixer ports
Add some more SSE optimisations
Move float mixer from the audio dsp to the port
Remove pw_node_get_free_port() and do things more explicitly.
Handle mixer ports in client-node
2018-07-31 12:23:35 +02:00
Wim Taymans
a223a35a5b Revert "Drop api version suffix from library name"
This reverts commit 76ab7eb9fb.
2018-07-27 11:26:29 +02:00
Jan Grulich
76ab7eb9fb Drop api version suffix from library name 2018-07-27 10:48:22 +02:00
Jan Grulich
07411e09cb Bump apiversion and soversion for PW 0.2.x 2018-07-23 18:52:08 +02:00
Wim Taymans
aa838eab94 Release 0.2.1 2018-07-20 12:44:54 +02:00
Wim Taymans
de766324b9 hook: add private data for future expansion 2018-07-20 10:35:31 +02:00
Wim Taymans
f55cb422cb hook: add priv fields for future expansion 2018-07-20 10:34:27 +02:00
Wim Taymans
892b57c55d stream: add capture queued time calculation
Take the size of a newly captured buffer as the difference between
previous and current tick and use this to calculate the queued size.
2018-07-19 16:55:00 +02:00
Wim Taymans
9e0bce4cb7 stream: update to latest API 2018-07-19 16:33:00 +02:00
Wim Taymans
b67fb6fa5b io: add latency io area 2018-07-19 15:17:21 +02:00
Wim Taymans
0d148654c0 stream: add more timing info
Keep track of queued data in the stream
Pass delay field around to make it possible to know about the raw
software read/write pointer and the hardware one.
Start stream position at 0
2018-07-19 13:30:27 +02:00
Wim Taymans
d3c203b744 spa: use clock info
Use the port clock io area to get timing info and use this as
the time in the graph when we wake up.
2018-07-17 17:37:55 +02:00
Wim Taymans
061f2c82b5 bump version 2018-07-17 10:32:52 +02:00
Wim Taymans
36d883b8c8 version: add version file 2018-07-17 10:31:17 +02:00
Wim Taymans
2b1b356455 audio-dsp: add some SSE2 2018-07-17 09:52:27 +02:00
Wim Taymans
fba00fb791 clock: remove clock interface
Remove the clock interface, we need to get timing information with an io
area to get the required precision and performance.
2018-07-17 09:50:51 +02:00
Wim Taymans
83bb8dc599 remote: also make thread realtime for clients 2018-07-13 11:56:09 +02:00
Wim Taymans
e5807cd467 small cleanups 2018-07-13 11:43:06 +02:00
Wim Taymans
cc542935ea client-node: add more generic set_io method
Replace the set_position method with set_io that allows us to share
other types of state with the client.
2018-07-12 15:33:07 +02:00
Wim Taymans
5a3eee9cac command: remove clock-update 2018-07-12 13:22:50 +02:00
Wim Taymans
6976175d65 module: remove obsolete code 2018-07-12 12:41:09 +02:00
Wim Taymans
8b919e89bd video-src: let stream map buffers 2018-07-12 11:10:59 +02:00
Wim Taymans
18bfa9ae6e stream: add empty new_simple 2018-07-12 11:08:07 +02:00
Wim Taymans
c362b1ccc5 stream: implement MAP_BUFFERS
video-play let the stream map our buffers
2018-07-12 11:05:53 +02:00
Wim Taymans
a2d2d75a25 remote: call disconnect to make sure we free all memory 2018-07-12 11:05:31 +02:00
Wim Taymans
d6f40cefa6 examples: improve examples 2018-07-12 10:02:42 +02:00
Wim Taymans
b9171b5e57 node: add Media/Category/Role properties 2018-07-12 09:46:30 +02:00
Wim Taymans
54c45252fd client-stream: don't run the driver
The driver will take the initiative to run the graph
2018-07-11 20:09:32 +02:00
Wim Taymans
bcddac6e2b stream: schedule process from main thread when asked
Use 2 lockfree queues so that we can queue and dequeue from different
threads.
Call the process function from the main thread when requested
Rework the data push and pull logic to go through the queues
Update the examples for this new feature, video-play does not need
to schedule the process in the main thread anymore and block for it
to complete, this avoid a deadlock between the data and mainloop when
shutting down.
2018-07-11 17:56:36 +02:00