Commit graph

5669 commits

Author SHA1 Message Date
Wim Taymans
c0ed88f2f9 media-session: always try to activate the saved profile
When the current profile is not the saved profile, check if the
saved profile is available again and try to activate it.
2021-01-28 16:56:27 +01:00
Wim Taymans
f03deb5324 media-session: try to avoid switching away from hdmi
When HDMI goes to sleep the profile becomes unavailable. Avoid
switching to Off in that case.
2021-01-28 15:41:14 +01:00
Wim Taymans
fc08c79dad media-session: start timeout only when something changed 2021-01-28 14:36:29 +01:00
Wim Taymans
072d3a191c media-session: keep track of all active routes
Keep track of active profile in default-routes so that we can restore
the prefered routes later.
Keep track of all active routes in an array. There can be more than
one active route per direction.
New routes will get their volume restored. Route changes will be saved.
2021-01-28 14:28:46 +01:00
Wim Taymans
b8bac95dad media-session: add info logging to profile restore logic 2021-01-28 11:43:17 +01:00
Wim Taymans
b2e4f1358d bluez5: clean up some profile names 2021-01-27 20:50:23 +01:00
Wim Taymans
7fa1833310 bluez5: use function to get profile name 2021-01-27 20:39:02 +01:00
Nicolai Syvertsen
ebcdfe8f5d pipewire-pulse: better default null sink description
This includes the sink_name and media class.
2021-01-27 19:09:21 +01:00
Nicolai Syvertsen
c092f0c1c4 pipewire-pulse: null sink must have a description
Certain pulseaudio clients crash if this is unset
2021-01-27 15:31:54 +00:00
Wim Taymans
5dc2a7b793 policy-node: reverse config direction for virtual devices
For a virtual source we want to configure it like a sink with
input ports and the monitor ports as the capture ports.
2021-01-27 16:27:06 +01:00
Wim Taymans
295cba8404 policy-node: a virtual source is an output node 2021-01-27 16:14:39 +01:00
Wim Taymans
82bc0710f0 media-session: use a default volume if unknown
Set a safe volume when there is no previously saved volume.
2021-01-27 15:44:52 +01:00
Wim Taymans
0be851739f improve config parsing
Use get_string to get object keys in a more generic way.
2021-01-27 15:36:32 +01:00
Wim Taymans
fc68e901e5 pulse-server: don't count playing in underrun 2021-01-27 15:33:01 +01:00
Wim Taymans
585f533d27 media-session: move profile selection to media-session
Disable automatic profile selection in the acp device
Implement selection of profiles in the default-profile module
2021-01-27 13:48:10 +01:00
Wim Taymans
3312757706 acp: use auto-profile and auto-port properties
Also disable initial automatic profile selection when auto-profile
is set to false
2021-01-27 13:48:10 +01:00
Wim Taymans
64b078d7bb acp: fix port and profile name lookup 2021-01-27 13:48:10 +01:00
Wim Taymans
cf35e52586 media-session: use the right define for the bitmask 2021-01-27 13:48:10 +01:00
Wim Taymans
47d59ac4d9 pulse-server: improve debug 2021-01-27 13:48:10 +01:00
Wim Taymans
cdce04bdb1 jack-device: set node.description
Some apps crash when it's not set
2021-01-27 13:48:10 +01:00
jasker5183
ccf2254b6b Update libasound_module_pcm_pipewire.so location for Ubuntu 2021-01-26 16:40:42 +00:00
Jonas Holmberg
30848ada6b alsa-pcm: Change resync warning to info
Do not print a warning when a client with custom latency disconnects.
2021-01-26 15:46:23 +01:00
Wim Taymans
fbb5dad6d1 alsa: bundle param changes
Only poll events and set_param can cause a param changed events.
Keep track of all the changes in the param user data and at the
end of the poll/set_param emit one notification for all changed
params.
2021-01-25 17:06:54 +01:00
Wim Taymans
c95bd1c3d4 media-session: avoid restoring an unavailable profile 2021-01-25 16:00:20 +01:00
Wim Taymans
98a3527685 media-session: init current_profile to invalid
So that we can detect a switch..
2021-01-25 15:53:54 +01:00
Wim Taymans
30d568403c bluez5: mark profiles as available 2021-01-25 15:53:36 +01:00
Wim Taymans
26d5fe373e bluez5: fix mute
Actually remember the mute state and use this when reporting our
state.

See #559
2021-01-25 15:21:23 +01:00
Wim Taymans
39f082fc86 default-profile: don't try to restore bluetooth profiles 2021-01-25 13:17:22 +01:00
Wim Taymans
b3f728b1a0 bluez5: set device.bus to bluetooth 2021-01-25 13:07:31 +01:00
Wim Taymans
3366eeb65e media-session: restore route volumes
Follow the active input/output routes. If the route changes, restore
the previously saved settings. If only the properties change, save
them to be restored later.

Fixes #402
2021-01-25 12:11:16 +01:00
Wim Taymans
ebf324590b pod: handle various ways of making empty array/choice
Make it possible to make empty array/choice
Handle empty array/choice
Add some tests to make empty arrays/choice objects
2021-01-25 10:55:30 +01:00
Wim Taymans
c913abffef pulse-server: Fix underrun check
We're underrun when we can't produce the required number of samples.

See #617
2021-01-24 20:33:30 +01:00
Wim Taymans
96d98c7955 pulse-server: express latency in samples in all cases 2021-01-24 20:33:30 +01:00
jasker5183
b44cb0a897 Add bluetooth issue.md 2021-01-23 12:49:06 +00:00
Pauli Virtanen
59452a0904 pulse-server: send server change events when default nodes change
Send server change events to subscribers, when default nodes change due
to some nodes being added/removed/changed, also if there is no metadata
change.  Make sure the event is consistent with the result from
find_device at the time.

Previously, these were not necessarily sent, or information from
find_device immediately after the event might not reflect the change
yet.
2021-01-23 07:17:19 +01:00
Sami Farin
906a1f5448 Make getrandom() failure fatal 2021-01-23 07:15:55 +01:00
Pauli Virtanen
8b4fbac187 sco-sink: msbc timeout should follow processed samples
Remove wrong adjustment to the write timeout with mSBC.

The time between writes should be the 7.5ms at which we encode, which is
correct even when the frames get fragmented to incommensurate tx packets
(on USB BT adapters).

Fixes sound on RTL8176B. This adapter has large reported write_mtu, so
the wrong delay affected it.
2021-01-22 23:11:17 +02:00
Wim Taymans
14dcfb8a28 pulse-server: find the target device in play_sample
Use the regular logic to find the target device for play sample so
that it supports @DEFAULT_SINK@ etc.

See #612
2021-01-22 19:53:46 +01:00
Wim Taymans
1eb9d73814 bluez5: skip routes without a profile 2021-01-22 17:35:27 +01:00
Wim Taymans
2b98b7dc7a pw-dump: print None pod as null 2021-01-22 17:23:33 +01:00
Wim Taymans
8f5231bd45 impl-core: handle getrandom errors
Handle getrandom errors and fall back to rand() if all fails.

See #583
2021-01-22 16:38:34 +01:00
Frédéric Danis
f464d8c596 bluez5: Fix NULL dereference in backend-native
Fixes: #602
2021-01-22 15:28:21 +00:00
jasker5183
2521e6db1b Add msbc expectations 2021-01-22 15:16:37 +00:00
Wim Taymans
9a6888486f impl-core: use getrandom for cookie
Fixes #583
2021-01-22 15:47:12 +01:00
jasker5183
0dad70eb48 Add buffer.md to fix link in tutorial4.md 2021-01-22 14:07:59 +01:00
Oschowa
f767521baf spa: fix test-buffer
there is a new meta type since b39a2258
2021-01-22 13:51:08 +01:00
Wim Taymans
c866d5c1f4 Increase memlock limits in systemd service files 2021-01-22 13:18:48 +01:00
Wim Taymans
652a4ae26d pulse-server: use stream flags to tune latency
Use the early_requests and adjust_latency flags to choose the right
latency values, just like what pulseaudio does.
2021-01-22 11:39:47 +01:00
Wim Taymans
61dab51425 stream: use busy metadata
When we get a buffer from the server, mark it busy, when we queue it
again, mark it unbusy.
Refuse to dequeue a buffer when it is busy.
2021-01-21 17:46:47 +01:00
Wim Taymans
b39a2258c4 meta: add busy metadata
Metadata on buffers to mark when a buffer is in use. Writers
should only use buffers with a count of 0.
2021-01-21 17:46:47 +01:00