Wim Taymans
e82145aeae
spa-resample: don't flush too much
...
Also clamp the amount of input samples we push when flushing. do several
rounds of zero pushing until we have flushed enough.
Handle the cases where no input is needed or no output is generated.
Fixes crashes when downsampling from 96000 to 1000 Hz or so.
2022-07-13 12:02:12 +02:00
Wim Taymans
0c24d66dc3
context: add method to get the data loop
...
Handy for invoking or adding/removing sources.
2022-07-13 11:26:12 +02:00
Fabian Vogt
ed88cad583
spa/alsa-udev: Check accessibility of pcm devices as well
...
The order of attribute changes is random, so it's possible that controlCX is
accessible before the other devices, which marks the device as available but it
actually fails to open. Only consider the device accessible if both control and
PCM devices can be accessed.
This requires reacting to ATTRIB changes of pcm devices as well now.
Fixes #2534
2022-07-13 09:17:08 +00:00
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