Wim Taymans
4304a147e9
avb: properties are owned by avb object
2022-07-12 12:37:58 +02:00
Wim Taymans
10e54dc0ee
avb: fill in some more values
2022-07-12 12:27:22 +02:00
Wim Taymans
9bfb23f3f8
avb: don't include ethernet header in in packets
...
Move vlan_id and prio to the stream.
2022-07-12 12:27:22 +02:00
Wim Taymans
dec2bdf241
avb: reply with advertise to discover
2022-07-12 12:27:22 +02:00
Wim Taymans
a34417eed0
avb: handle command errors better
...
Ignore unknown commands.
Set the right reply message type for unsupported methods.
2022-07-12 12:27:22 +02:00
Wim Taymans
fa9fcbe964
avb: save and load maap state
2022-07-12 12:27:22 +02:00
Wim Taymans
f043922b24
avb: implement maap
...
Implement the maap state machine.
Use maap for the destination address of talker streams.
2022-07-12 12:27:22 +02:00
Wim Taymans
e0d6b2bb4f
avb: implement streams
...
Add in input/output stream, setup the talker/listeners.
Implement IEC61883 audio packets, send and receive data.
Implement talker encoding.
With this, audio can be sent and received from MOTU M64.
2022-07-12 12:27:22 +02:00
Wim Taymans
460cedbc86
avb: 0 was used for no-event
2022-07-12 12:27:22 +02:00
Wim Taymans
2344ad7869
avb: fix compilation
2022-07-12 12:27:22 +02:00
Wim Taymans
c07e16c728
avb: use separate sockets per mac/type
2022-07-12 12:27:22 +02:00
Wim Taymans
42a4108c08
avb: add packet filter
2022-07-12 12:27:22 +02:00
Wim Taymans
ba98a2743c
avb: add missing file
2022-07-12 12:27:22 +02:00
Wim Taymans
9a26df3478
avb: improve state machine
...
Emit per attribute callbacks.
Notify events immediately.
2022-07-12 12:27:22 +02:00
Wim Taymans
773bd610aa
avb: avbtp -> avb
2022-07-12 12:27:22 +02:00
Wim Taymans
d5b4c12684
avb: improve MRP state handling
2022-07-12 12:27:22 +02:00
Wim Taymans
0868f0c7b0
avb: implement more MRP
...
Join a READY listener MRP attribute when we recveive the transmit
response.
Also listen for talker attributes.
Remove attribute callbacks, we don't need them because we moved the
packet construction in the MRP users.
Implement notify for listener attributes.
A connect will now make my MOTU send samples to PipeWire.
2022-07-12 12:27:22 +02:00
Wim Taymans
f64f8cdd4d
avb: more work
...
Implement generic MRP parsing.
Implement more MRP messages.
Implement MRP timeouts.
Implement MRP join/leave.
Prepare for generating and sending MRP packets.
2022-07-12 12:27:22 +02:00
Wim Taymans
0efc02cea6
avb: add more state machine
2022-07-12 12:27:22 +02:00
Wim Taymans
893251c8eb
avb: add beginnings of MRP/MMRP/MSRP/MVRP/SRP
2022-07-12 12:27:22 +02:00
Wim Taymans
911378651b
avb: implement some more methods
...
Only reply to messages for us.
2022-07-12 12:27:22 +02:00
Wim Taymans
3cc21c6f5b
avb: implement acmp connect/disconnect commands
2022-07-12 12:27:22 +02:00
Wim Taymans
50199c9824
avb: use descriptors for ADP
...
Remove some of the json parsing for now, work with descriptors.
Remove some parsing code.
Implement GET_AVB_INFO.
Keep descriptors in a list.
Add some utils.
2022-07-12 12:27:22 +02:00
Wim Taymans
b6b8471540
avb: add some more descriptors
...
PipeWire Streams now show up in Hive.
2022-07-12 12:27:22 +02:00
Wim Taymans
4613c7822f
avb: implement some descriptors
...
Work on raw ethernet frames.
2022-07-12 12:27:22 +02:00
Wim Taymans
da14e9f59d
avb: implement some more AEM
2022-07-12 12:27:22 +02:00
Wim Taymans
287e8cfe51
avb: clean up some packets
...
Listen to all messages. We don't seem to receive TSN messages from our
local host it seems.
Reply with not-implemented for an AEM_COMMANDS.
Implement some mode ADP messages.
2022-07-12 12:27:22 +02:00
Wim Taymans
07a4c5032e
avb: add aecp stubs
2022-07-12 12:27:22 +02:00
Wim Taymans
dc44a61ef3
avbtp: add some more fields
...
Add ADP entries timeout
2022-07-12 12:27:22 +02:00
Wim Taymans
f470354e67
avbtp: add beginnings of AVB manager module
2022-07-12 12:27:22 +02:00
Wim Taymans
de65fd442f
modules: use TARGET_OBJECT instead of NODE_TARGET
2022-07-11 13:52:35 +02:00
Wim Taymans
ea3a81dc29
raop-sink: fix some compilation errors
2022-07-07 19:56:55 +02:00
Wim Taymans
4da583a44b
raop-sink: reuse timing packet send
...
Use send() instead of write(), use sendto() for the packets so that we
can specify a destination.
2022-07-07 14:00:38 +02:00
Christian Glombek
2c8d25b4dc
module-raop-sink: Reply on timing socket earlier
...
Some AirPlay 2 devices require responding on the UDP timing port
right after sending the SETUP request.
2022-07-07 11:20:39 +00:00
Davis Davalos-DeLosh
eb3c2f3e95
module-raop: Add support for auth_setup
...
This step is required by some devices.
Co-authored-by: Christian Glombek <lorbus@fedoraproject.org>
2022-07-07 11:20:39 +00:00
Pauli Virtanen
167537dffc
pulse-server: fix warning
...
The rest of the fields are zeroed later in reply_create_record_stream,
but static analysis doesn't know that.
2022-07-06 14:36:22 +00:00
Pauli Virtanen
a46d4aedd7
pulse-server: work around race condition in SET_DEFAULT/MOVE_*
...
The default metadata update may be delayed for some time after
SET_DEFAULT, since the session manager has to work on it.
MOVE_* commands need to know what the client thinks is the current
default sink, so that they can decide between "move to default" and
"move to specific device".
To avoid race condition here, stash the default value set by the client
and use it in the MOVE_* commands, until the metadata update arrives.
2022-07-04 15:57:31 +00:00
Adolfo Rodrigues
6188e4d074
pulse-server: tweak maxlength some more
...
Make the buffer size at least 4 times as large as the fragment size to avoid
xruns.
2022-07-04 15:56:16 +00:00
Wim Taymans
8b649c4510
pulse-server: optimize property allocations
...
Only allocate a new properties object when we actually need to
change something.
2022-07-02 11:27:54 +02:00
Davide Beatrici
a31989b46d
pulse-server: add card properties to sinks and sources
...
To match the original PulseAudio server's behavior.
2022-07-01 19:54:44 +00:00
Davide Beatrici
e0731f0ffa
pulse-server: map "device.sysfs.path" to "sysfs.path"
2022-06-30 08:41:30 +02:00
Wim Taymans
67db81729e
modules-raop: handle uninitialized vars
2022-06-27 18:51:28 +02:00
Wim Taymans
532fc29c85
docs: improve docs a little
2022-06-23 18:55:02 +02:00
Wim Taymans
df457e99b2
roc: use native float samples
2022-06-23 12:48:59 +02:00
Wim Taymans
60cbc44526
modules: improve docs
2022-06-23 12:48:45 +02:00
Wim Taymans
c8b8b24a9c
modules: fix format parsing
...
Use the same logic for parsing the format.
2022-06-23 12:39:51 +02:00
Wim Taymans
a4998e0b87
filter-chain: allow unconnected filter ports
...
When there are unconnected filter ports, allow this but give a warning.
Improve error messages.
2022-06-21 13:07:11 +02:00
Wim Taymans
eb26c2a95e
filter-chain: ladspa properties are different from flags
...
Don't use the ladspa properties as the plugin flags, they don't
match.
2022-06-21 12:53:11 +02:00
Wim Taymans
05064bd558
filter-chain: error out on 0 handles
...
When we end up in a case where we are running 0 handles, such as when we
have a stereo filter but we want mono output, emit an error until we can
reasonably handle this case.
2022-06-20 19:35:19 +02:00
Barnabás Pőcze
97a275e71e
pulse-server: update quirks before querying the name
...
`client_update_quirks()` may modify `client::props` depending
on the "pulse.rules" section defined in the configuration file,
which means that it can change the value corresponding to the
"application.name" key. Therefore, `client::name` needs to
be queried after that.
2022-06-20 17:30:05 +00:00