Commit graph

9186 commits

Author SHA1 Message Date
Wim Taymans
35082e4f4b pulse-server: add the delay
Actually add the delay to the buffered amount of time instead of
overwriting.
2022-07-13 10:49:26 +02:00
Wim Taymans
855d17ac1b pulse-server: add some debugging 2022-07-13 10:42:00 +02:00
Wim Taymans
52281b9a7e alsa: check the offset against the size of the buffer
We need to check the last offset against the size of the buffer, not the
remaining size in the buffer.

When the writing is split, this could cause the buffer to be reused
wrongly.

See #2536
2022-07-13 09:37:01 +02:00
Wim Taymans
11bc60a53d spa-resample: handle init errors 2022-07-12 17:39:58 +02:00
Wim Taymans
ce9a912f1a audioconvert: set scale to cutoff when upsampling 2022-07-12 17:39:14 +02:00
Pauli Virtanen
d6a7db8020 bluez5: mark HFP/HSP streams with media.role=Communication 2022-07-12 14:04:31 +00:00
Pauli Virtanen
6e37110efd bluez5: adjust source rate control
Use different filter function than spa_dll for the rate control.
Also use a longer window for spike determination.
2022-07-12 13:55:54 +00:00
Wim Taymans
00d18217a6 avb: remove unused line
Probably a leftover from earlier merge..
2022-07-12 15:53:51 +02:00
Wim Taymans
40552a0e91 jack: only mix when we have input to mix
Avoids a crash when starting ardour6.
2022-07-12 15:10:02 +02:00
Wim Taymans
ee84f96915 audioconvert: tweak the resampler a bit 2022-07-12 14:35:23 +02:00
jole
404d7e5ed1 fmt: add a space after comment header in config
consitent with the formatting of the other configuration files
2022-07-12 10:58:55 +00:00
Wim Taymans
9d48224c02 doc: add AVB module 2022-07-12 12:41:45 +02:00
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
9f25adc0f6 avb: use spa dll 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
4110f35269 avb: remove static streams 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
af4875eb47 avb: remove libavtp dependency 2022-07-12 12:27:21 +02:00
Wim Taymans
c79fddf007 avb: handle xruns better
Don't stop early, fill gaps with silence.
2022-07-12 12:27:21 +02:00
Wim Taymans
87053365ea avb: handle sink follower
We need to flush out the packets when we are a follower and when we get
data because our timer is not running as a sink.
2022-07-12 12:27:21 +02:00
Wim Taymans
4d6c71bf12 avb: use iovec to read from ringbuffer 2022-07-12 12:27:21 +02:00
Wim Taymans
5c3629a165 avb: add follower mode
As a follower we disable our own timer and produce a buffer from what we
have when _process is called.
2022-07-12 12:27:21 +02:00
Wim Taymans
ff5201ef3d avb: check seq
Avoid infinite loops.
Check sequence number and warn
Use 32 frames per pdu in example.
2022-07-12 12:27:21 +02:00