Commit graph

3628 commits

Author SHA1 Message Date
Wim Taymans
b8300c663b improve some errors
Silence some -ENOENT warnings, they can happen when the object we
are introspecting is destroyed
2020-11-29 16:22:50 +01:00
Wim Taymans
6e4c138238 properties: support properties from json object sting
Make pw_properties_new_string() work with a json object string.
This makes it possible to specify property strings as more complex
objects and escape characters.
2020-11-28 20:25:39 +01:00
Wim Taymans
62cdec8448 spa: move json parser to utils
Add unit test
Add escape function
2020-11-28 15:34:01 +01:00
Wim Taymans
6e0fed37b4 pulse-server: also handle planar formats
Also handle streams with planar formats. Just pretend that they
are interleaved, it does not really matter.
2020-11-27 15:39:59 +01:00
Wim Taymans
350fa39aba pulse-server: try to convert name to id when selecting
Obsoletes !327
2020-11-27 15:04:06 +01:00
Wim Taymans
ea84177a2e pulse-server: make sure we have active_name/profile set 2020-11-26 12:05:32 +01:00
Wim Taymans
3b20e0f9e7 pulse-server: fix lookup of module 2020-11-26 09:49:16 +01:00
Wim Taymans
6235c8c0f2 pulse-server: don't set object.linger by default 2020-11-26 09:35:29 +01:00
Wim Taymans
1934df7307 pulse-server: implement OBJECT_LINGER
Use OBJECT_LINGER in module-load to make sure the module stays loaded
after the client disconnects.
Implement linger in adapter and node-factory
2020-11-26 09:28:22 +01:00
Wim Taymans
0fe77d39ce pulse-server: fallback to name if no description is set 2020-11-26 09:27:19 +01:00
Wim Taymans
765ce0564f pulse-server: don't crash with NULL arguments in module-load 2020-11-26 09:26:29 +01:00
Wim Taymans
64be5bb617 pulse-server: fix debug line 2020-11-25 21:05:49 +01:00
Wim Taymans
9bf7be7984 client-node: increase some limits
See #416
2020-11-25 17:41:05 +01:00
Wim Taymans
261144c27f media-session: add /etc/pipewire/media-session.d/ dir
Placing files in it will activate options in the session manager.
2020-11-25 16:13:20 +01:00
Wim Taymans
38fcc64e1f pulse-server: check if route param changed
Only mark the sink/source changed when the card route param
changed. Avoids triggering sink/source updates when nothing
changed.

See #298
2020-11-24 20:02:46 +01:00
Wim Taymans
3d6e87832d pulse-server: after new event, clear changes
Remove any pending changes after we emited the new event.
2020-11-24 19:29:49 +01:00
Wim Taymans
a65d4d04c3 pulse-server: collect updates and apply after sync
Collect all object updates in a separate list. When we collected
all updates in sync, apply them and then signal notifications.
This ensure we have a consistent object model.
2020-11-24 15:31:20 +01:00
Wim Taymans
6ab25c6904 pulse-server: fix parsing of format-info
Fixes totem playback
2020-11-24 15:11:05 +01:00
Wim Taymans
d0d64de1a0 pulse-server: emit metadata immeditately
Don't wait for sync but immediately emit the added event for metadata.
This way the server can get the name and handle the metadata events
immediately.
2020-11-24 11:55:51 +01:00
Wim Taymans
cc7f91db19 pulse-server: actually wait for sync to complete
Wait for sync to complete before we start emiting new objects.
Add some more debug
2020-11-24 11:28:29 +01:00
Wim Taymans
7efd140e10 pulse-server: don't wait for links to complete 2020-11-24 11:27:04 +01:00
Wim Taymans
2cd59fdf8b pulse-server: don't send invalid format and channels 2020-11-24 10:18:17 +01:00
Wim Taymans
0c66b5677b pulse-server: init volume/channelmap correctly in stream-restore 2020-11-24 09:54:42 +01:00
Wim Taymans
edbec5d4ba pulse-server: fix channel map lookup 2020-11-24 09:49:35 +01:00
Wim Taymans
2d71d02f40 pulse-server: only debug packets, not data messages
See #405
2020-11-24 09:10:32 +01:00
Haochen Tong
648dfc0250
pulse-server: end the statement with semicolon 2020-11-23 23:27:53 +01:00
Wim Taymans
b86acec625 media-session: ignore empty channelMap/channelVolume 2020-11-23 20:18:32 +01:00
Wim Taymans
c5ac48c5f4 media-session: clear metadata 2020-11-23 19:35:23 +01:00
Wim Taymans
d56e759166 pulse-server: don't send NULL profile name in port info 2020-11-23 17:11:43 +01:00
Elliott Sales de Andrade
86fd6a0d3e Fix some possible-NULL pointer usage. 2020-11-23 15:36:08 +00:00
Elliott Sales de Andrade
6224068586 Fix some possible leaks. 2020-11-23 15:36:08 +00:00
columbarius
fa5b04f3e5 filter: stop mapping of dmabufs 2020-11-23 15:22:11 +00:00
columbarius
b0e9852628 stream: stop mapping of dmabufs 2020-11-23 15:22:11 +00:00
Wim Taymans
0b33185593 pulse-server: improve parsing of format_info
Use the json parser. It's not actually implemented/used in
pulseaudio but...
2020-11-23 16:12:29 +01:00
Wim Taymans
f95f278067 pulse-server: use channelmap
Convert to an from pulse enum to id in the message layer so that we
can always just deal with native spa types.
Use the channelmap in stream-restore
Parse the channelmap from properties.
2020-11-23 15:37:18 +01:00
Wim Taymans
2b95afeddc media-session: add and parse channelmap in routes and stream 2020-11-23 15:34:24 +01:00
Wim Taymans
2b8cc5b587 pulse-server: implement stream restore extension
Makes the system sounds volume settings work

See #377
2020-11-23 10:46:02 +01:00
Wim Taymans
4f0f5fccc9 pulse-server: keep metadata for the routes
Pass all metadata objects to the pulse-server and keep track of
some. Keep route restore info in properties.
2020-11-23 10:44:12 +01:00
Wim Taymans
1f73280c52 media-session: fix parsing of booleans and null
Reorder the json file a bit
2020-11-23 10:10:59 +01:00
Wim Taymans
77b8959df5 pulse-server: clear info in destroy to avoid segfault
Fixes #400
2020-11-23 09:43:40 +01:00
Wim Taymans
7ca8491be3 media-session: store values as json
Save settings as jason and use a small json compatible tokenizer to
load settings instead of our own less flexible format.
Save settings with a prefix and filter out entries without prefix
Listen for changes in restore.stream metadata and update properties.
2020-11-22 10:00:58 +01:00
Wim Taymans
b922f99293 restore-stream: expose stream restore info in metadata 2020-11-20 18:01:20 +01:00
Wim Taymans
5af2efdaa6 media-session: expose metadata method
Expose a method to create an export metadata with a certain name.
2020-11-20 17:58:08 +01:00
Wim Taymans
d822a0b1d0 pw-metadata: make it possible to select metdata by name 2020-11-20 17:47:21 +01:00
Wim Taymans
d5680a119f pulse-server: Fix REQUEST missing bytes
Also count the amount of underrun bytes as missing so that we request
them from the client.

Provide one fragment of minreq when we underrun instead of the full
buffer size.

Fixes #395
2020-11-20 14:57:18 +01:00
Wim Taymans
dae64bd2b5 policy-node: keep track how many times we link a node
Nodes that are marked as DONT_RECONNECT are only linked once.
Fixes a problem where a clients makes a DONT_RECONNECT stream but
without a specific sink.

See #395
2020-11-20 14:54:37 +01:00
Wim Taymans
00ac94ab9b fix compilation 2020-11-20 12:51:51 +01:00
Wim Taymans
b3aa346063 handle core error better
Use the PW_ID_CORE constant
Quit the mainloop when server disconnected in the tools

See #395
2020-11-20 12:29:51 +01:00
Wim Taymans
387009e0d6 return ENOENT for unknown resources
Fix some other errors as well, ENOSYS for invalid interface, ENOTSUP
for unimplemented methods.
2020-11-20 12:11:37 +01:00
Wim Taymans
12d831fc39 pulse-server: request dbus name
Request the org.pulseaudio.Server dbus name. This makes gnome-shell
reconnect automatically.
2020-11-20 11:52:57 +01:00