Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
90fd6fb
filter-graph: only use min/max when defined in LADSPA
wtay Mar 16, 2026
653b870
filter-graph: fix up def/min/max values for lv2
wtay Mar 16, 2026
1a37f44
spa/plugins/alsa/acp/compat.h: p is already const do not recast
heitbaum Mar 16, 2026
e5809ee
pipewiresrc: fix wait_negotiated from change_state
robberos Mar 16, 2026
f846879
po: update Kazakh translation
crayxt Mar 16, 2026
edb074f
spa: aec: Fix log topic name
ford-prefect Mar 16, 2026
36740e0
spa: aec: Add some channel config validation
ford-prefect Mar 16, 2026
8db1153
modules: remove some unused fields
wtay Mar 17, 2026
f4587ea
modules: improve debug in RTP
wtay Mar 17, 2026
6bf81eb
modules: align rtp_timestamps for sender
wtay Mar 17, 2026
e4693eb
audioconvert: avoid OOB mix matrix read
wtay Mar 17, 2026
b16a2e4
scheduler: remove sync group from runnable calculations
wtay Mar 18, 2026
41d8ce7
audioconvert: optimize some fallback paths
wtay Mar 19, 2026
244c3b5
pipewire-jack: call timebase_callback with valid buffer_frames
wtay Mar 19, 2026
5ade045
pipewire-jack: only call timebase on 0 status
wtay Mar 19, 2026
3b422e3
cpu: add SLOW_GATHER flag
wtay Mar 19, 2026
115525d
fmt-ops: make function static
wtay Mar 19, 2026
1dd8729
bluez: Add A2DP auto quality and latency profiles
julianbouzas Mar 17, 2026
3dff643
bluez5: media-source: don't crash if BAP streams doesn't have iso_io
pv Mar 18, 2026
c02cdcb
audioconvert: add avx2 optimized s32_to f32d
wtay Mar 20, 2026
9ba0c3c
audioconver: add avx channelmix copy function
wtay Mar 20, 2026
52b2338
impl-node: correctly synchronize suspend state with remote node
stream-mag Mar 23, 2026
d47b497
impl-node: add () around &&
wtay Mar 23, 2026
01b9abc
Edit overview.dox
vitalfadeev Mar 20, 2026
2e7aee3
bluez: Increase priority of A2DP quality and latency profiles
julianbouzas Mar 23, 2026
e1f53b7
bluez: Set initial profile to quality A2DP
julianbouzas Mar 23, 2026
4f56442
bluez: Discard latency and quality codecs worse than SBC for A2DP aut…
julianbouzas Mar 23, 2026
bc87bc8
update Chinese translation
lumingzh Mar 23, 2026
39f4cbf
spa: audioconvert: test-fmt-ops: initialize `convert`
pobrn Mar 24, 2026
22c1a16
spa: audioconvert: benchmark-fmt-ops: initialize `convert`
pobrn Mar 24, 2026
0d1280a
bluez5: parse the broadcast adapter value from the correct iterator
gkiagia Mar 6, 2026
6707076
mixer: only add input ports to mixer
wtay Mar 23, 2026
ea28343
midi: don't convert Midi in nodes
wtay Mar 24, 2026
7fe191b
buffers: handle 0 result from Buffers param enumeration
wtay Mar 25, 2026
9eeb2f1
mixer: handle control.ump property
wtay Mar 25, 2026
50fcf64
tools: add -C | --monitor to pw-cat
wtay Mar 25, 2026
6006243
module-rtp: handle the send_packet/feedback as callbacks
wtay Mar 26, 2026
7599079
jack: increase notify buffer and items
wtay Mar 26, 2026
29b2216
spa: remove `timerspec` members
pobrn Mar 26, 2026
84e7b74
spa: libcamera: use `std::span`
pobrn Mar 27, 2026
00b4717
spa: remove `async` members
pobrn Mar 27, 2026
7f4baba
spa: do not use `SPA_PROP_live`
pobrn Mar 27, 2026
03f894b
alsa-udev: Add wireless device status monitoring
srimanachanta Mar 30, 2026
18c9722
channelmix: make up/downmix levels configurable
wtay Mar 30, 2026
9ba92bd
spa: Do not perform upper range check on 32-bit platforms
dv1 Mar 24, 2026
41b5bc6
network-utils: pw_net_are_addresses_equal() function
dv1 Mar 30, 2026
3080bca
module-rtp-source: Fix unicast by-address packet filtering
dv1 Mar 25, 2026
5b86e3d
module-rtp-source: Only enable IGMP recovery when using multicast
dv1 Mar 25, 2026
0121bdc
module-rtp: Lower missing timeout log line from warn to trace
dv1 Dec 1, 2025
54c517b
module-rtp: Add more logging for debugging timer related issues
stream-mag Dec 12, 2025
67dd354
system: use attribute packed for the spa_poll_event
wtay Mar 20, 2026
49d5f4f
bluez5: aac: use maximum possible peak bitrate according to MTU
ValdikSS Apr 5, 2026
a35b6b0
bluez5: aac: use higher band limit for CBR mode
ValdikSS Apr 5, 2026
ee1b429
bluez5: aac: Use VBR encoding with Mode 5 by default
ValdikSS Apr 5, 2026
54a4515
bluez5: bap: add support for manual BIS config
asrmnw Mar 31, 2026
6b0248d
Revert "impl-node: Don't suspend when links are busy"
wtay Apr 6, 2026
ad0bab6
spa: system: make spa_poll_event compatible with epoll_events
pv Apr 6, 2026
8fd7982
only dlopen from the defined search paths
wtay Apr 6, 2026
785bf36
docs: remove support for absolute paths from docs
wtay Apr 6, 2026
57299da
filter-graph: improve debug when loading fails
wtay Apr 6, 2026
50aacea
plugins: allow some absolute paths
wtay Apr 7, 2026
2479183
doc: add docs about the runnable calculations
wtay Apr 7, 2026
c9ecbf9
protocol-native: check msg fds against available fds
wtay Apr 7, 2026
3378017
test: add unit test for fds mismatch
wtay Apr 7, 2026
d7be435
tools: avoid strcat in pw-cat
wtay Apr 7, 2026
1a3df16
mem: handle overflow in pw_map_range_init()
wtay Apr 8, 2026
5474c3c
doc: add running.dox
wtay Apr 8, 2026
abd8c8f
test: fix pod size
wtay Apr 8, 2026
0e0c325
fix some uninitialized variables warnings
wtay Apr 8, 2026
fbbc427
doc: improve formatting
wtay Apr 8, 2026
7012594
dlopen: improve prefix check some more
wtay Apr 8, 2026
446e368
port: debug passive modes better
wtay Apr 8, 2026
49073cf
port: improve parsing of passive modes
wtay Apr 8, 2026
bf7f2a5
pw-top: filter by status
pallaswept Apr 7, 2026
0f00ad1
tools: clean up the preset filter code
wtay Apr 8, 2026
dc47f9e
filter-graph: return current control value correctly
wtay Apr 8, 2026
20d648a
filter-chain: don't corrupt the enumerated properties
wtay Apr 8, 2026
bdaecfe
module-avb: fix heap corruption in server_destroy_descriptors
cschalle Apr 7, 2026
ef8f820
module-avb: fix potential NULL pointer dereference in MSRP/MVRP notify
cschalle Apr 7, 2026
1d0c51f
module-avb: fix MRP NEW messages never being transmitted
cschalle Apr 7, 2026
3f386ec
module-avb: fix ACMP error responses sent with wrong message type
cschalle Apr 8, 2026
4e62826
module-avb: fix legacy AECP handlers reading payload at wrong offset
cschalle Apr 7, 2026
d9821d0
module-avb: fix Milan lock entity error response and re-lock timeout
cschalle Apr 7, 2026
a73988d
module-avb: add transport abstraction for pluggable network backends
cschalle Apr 7, 2026
ef4ff8c
test: add AVB protocol test suite with loopback transport
cschalle Apr 7, 2026
f5c5c9d
test: add MRP state machine, MSRP, and packet parsing tests
cschalle Apr 7, 2026
e661c72
test: add ACMP integration tests and bug documentation
cschalle Apr 7, 2026
fdfede8
test: add AECP/AEM entity model tests and document new bugs
cschalle Apr 7, 2026
cec5375
test: add AVTP audio data path tests
cschalle Apr 7, 2026
ffa855d
test: add additional AVB protocol coverage tests (phases 7-8)
cschalle Apr 7, 2026
14310e6
module-avb: extend transport abstraction to stream data path
cschalle Apr 7, 2026
f525982
tools: add pw-avb-virtual for virtual AVB graph nodes
cschalle Apr 7, 2026
eeaddbb
update Chinese translation
lumingzh Apr 9, 2026
42415ea
bluez5: iso-io: don't use streams without tx_latency enabled for fill…
stream-mag Apr 8, 2026
1ed1349
test: fix some compiler warnings
wtay Apr 9, 2026
b1a9bc9
tools: fix compiler error on older compilers
wtay Apr 9, 2026
c2f85ff
filter-chain: improve docs
wtay Apr 9, 2026
5075f27
filter-graph: small convolver optimizations
wtay Apr 10, 2026
013bd12
po: Alpha-sort LINGUAS
kostich Apr 11, 2026
c3c7425
po: Update Serbian and add Serbian Latin translations
kostich Apr 11, 2026
4b886d0
milan-avb: pw-avb-virtual: activate only when necessary
Mister-M-alt Apr 12, 2026
11d28c6
Fix spelling errors in comments and log messages
sunzoek Apr 13, 2026
b12b7f7
pipewire: check init count before loading plugins
wtay Apr 13, 2026
14b7496
tools: connect to the manager socket by default
julianbouzas Apr 7, 2026
0cc3644
dlopen: support search path ending in /
wtay Apr 13, 2026
4742537
alsa-seq: remove port from mix_list on destroy
wtay Apr 14, 2026
823dcd8
scheduler: make nodes move to IDLE when inactive
wtay Apr 10, 2026
ae723a6
filter-graph: allow negative Gain in mixer
wtay Apr 15, 2026
3277f3a
alsa: fix inverted port validity check in port_reuse_buffer
sunzoek Apr 15, 2026
03fd89a
alsa-seq: add : between client and port name
wtay Apr 15, 2026
e490c50
pulse-server: update initial stream is_paused state
wtay Apr 15, 2026
35cbd2e
audioconvert: don't setup again in suspend
wtay Apr 15, 2026
b4457b8
core: use %u format specifier for uint32_t IDs
sunzoek Apr 16, 2026
54aba26
tools: add pw-audioconvert
wtay Apr 16, 2026
adad89d
add spa_memcpy to more places
wtay Apr 16, 2026
c551acf
milan-avb: lock: make it lockable:
Mister-M-alt Apr 16, 2026
f76327e
alsa: acp: don’t override user-selected port on availability changes
JohnRTitor Apr 16, 2026
9454c71
jack: don't emit "other" ports
wtay Apr 16, 2026
c5d8113
pipewire-jack: also ignore ports with other DSP type
wtay Apr 16, 2026
61a9c78
pw-cat: Fix waveX format endian assign
rchiluka29 Apr 16, 2026
d4b472d
tools: fix realloc failure handling in midifile ensure_buffer
sunzoek Apr 17, 2026
37b648a
convolver: convolver1 -> partition
wtay Apr 16, 2026
839e0a4
convolver: optimize loops
wtay Apr 17, 2026
f210d93
convolver: remove intermediate convolver
wtay Apr 17, 2026
5f9811d
convolver: clear the input buffer
wtay Apr 17, 2026
7df106b
filter-chain: deactivate when Format is unset
wtay Apr 17, 2026
6e8e234
bluez5: fix disabling HFP codecs via bluez5.codecs
pv Apr 5, 2026
84e6845
bluez5: add quirk for LC3-24kHz for HFP
pv Apr 16, 2026
e66a24d
modules-avb: legacy-avb: entity warnings
Mister-M-alt Apr 19, 2026
cee1bdf
bluez5: more MT7925 quirks
pv Apr 19, 2026
c3d16a3
audioconvert: fix tmp_datas[1] when scratch ports grow
sunzoek Apr 20, 2026
2722d16
audioadapter: remap port id for port_reuse_buffer on target
sunzoek Apr 20, 2026
f0a33cd
module-avb: es_builder: use the descriptor rather than a pointer to a…
Mister-M-alt Apr 19, 2026
0a38fed
conf: clamp pw_strv_insert_at invalid pos to [0, len]
sunzoek Apr 20, 2026
c5e1a3e
Apply 1 suggestion(s) to 1 file(s)
Apr 20, 2026
b9e62aa
convolver: handle partial blocks
wtay Apr 20, 2026
777851a
convolver: support more than 2 partitions
wtay Apr 17, 2026
d8db536
convolver: remove some useless loops
wtay Apr 20, 2026
2b96f69
convolver: rename some fields
wtay Apr 20, 2026
9cae4ce
filter-chain: add convolver2
wtay Apr 21, 2026
c6ae305
filter-graph: use convolver2 for sofa
wtay Apr 21, 2026
da19aa4
filter-chain: update virtual surround with convolver2
wtay Apr 21, 2026
2953f48
vulkan: fix wrong descriptor image info index
wyu71 Apr 21, 2026
d96503e
module-avb: add avb interface descriptor defines
ntonnaett Nov 18, 2025
daead11
module-avb: check ptp management socket periodically
ntonnaett Jan 14, 2026
354e96f
module-avb: free gptp->ptp_mgmt_socket_path
ntonnaett Jan 14, 2026
0fc433a
module-avb: close ptp_fd when destroyed
ntonnaett Jan 15, 2026
729bed5
module-avb: add specs comments for PTP management message format
ntonnaett Jan 15, 2026
efacec4
module-avb: htobe16/be16toh to htons/ntohs
ntonnaett Jan 17, 2026
a9d724c
module-avb: check that PTP management response is complete
ntonnaett Jan 17, 2026
58c1ccf
module-avb: check ioctl for success
ntonnaett Jan 17, 2026
c5ceb30
module-avb: check return value of read when clearing ptp_fd input buffer
ntonnaett Jan 17, 2026
4bc6925
module-avb: read until buffer is complete
ntonnaett Jan 17, 2026
09dc92a
Revert "module-avb: read until buffer is complete"
ntonnaett Jan 17, 2026
0ba6d2b
module-avb: check that ptp management request is complete
ntonnaett Jan 17, 2026
ce8210d
module-avb: fail if ptp.management-socket not set
ntonnaett Apr 13, 2026
ebf9291
module-avb: fail if ptp management socket can't be created
ntonnaett Apr 13, 2026
3998944
module-avb: emit gm_changed event
ntonnaett Apr 22, 2026
446e103
module-avb: remove redundant init_descriptors() call
ntonnaett Apr 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions doc/dox/config/pipewire-client.conf.5.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ stream.properties = {
#channelmix.fc-cutoff = 12000.0
#channelmix.rear-delay = 12.0
#channelmix.stereo-widen = 0.0
#channelmix.center-level = 0.707106781
#channelmix.surround-level = 0.707106781
#channelmix.lfe-level = 0.5
#channelmix.hilbert-taps = 0
#dither.noise = 0
#dither.method = none # rectangular, triangular, triangular-hf, wannamaker3, shaped5
Expand Down
9 changes: 9 additions & 0 deletions doc/dox/config/pipewire-props.7.md
Original file line number Diff line number Diff line change
Expand Up @@ -783,6 +783,15 @@ more to the center speaker and leaves the ambient sound in the stereo channels.
This is only active when up-mix is enabled and a Front Center channel is mixed.
\endparblock

@PAR@ node-prop channelmix.center-level = 0.707106781
The level of the center channel when up/downmixing.

@PAR@ node-prop channelmix.surround-level = 0.707106781
The level of the surround channels when up/downmixing.

@PAR@ node-prop channelmix.lfe-level = 0.5
The level of the LFE channel when up/downmixing.

@PAR@ node-prop channelmix.hilbert-taps = 0
\parblock
This option will apply a 90 degree phase shift to the rear channels to improve specialization.
Expand Down
3 changes: 3 additions & 0 deletions doc/dox/config/pipewire-pulse.conf.5.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,9 @@ stream.properties = {
#channelmix.fc-cutoff = 12000.0
#channelmix.rear-delay = 12.0
#channelmix.stereo-widen = 0.0
#channelmix.center-level = 0.707106781
#channelmix.surround-level = 0.707106781
#channelmix.lfe-level = 0.5
#channelmix.hilbert-taps = 0
#dither.noise = 0
#dither.method = none # rectangular, triangular, triangular-hf, wannamaker3, shaped5
Expand Down
1 change: 1 addition & 0 deletions doc/dox/internals/index.dox
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
- \subpage page_objects_design
- \subpage page_library
- \subpage page_dma_buf
- \subpage page_running
- \subpage page_scheduling
- \subpage page_driver
- \subpage page_latency
Expand Down
2 changes: 1 addition & 1 deletion doc/dox/internals/latency.dox
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ down and upstream.
# Async nodes

When a node has the node.async property set to true, it will be considered an async
node and will be scheduled differently, see scheduling.dox.
node and will be scheduled differently, see \ref page_scheduling .

A link between a port of an async node and another port (async or not) is called an
async link and will have the link.async=true property.
Expand Down
22 changes: 15 additions & 7 deletions doc/dox/internals/midi.dox
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,13 @@ As of 1.4, SPA_CONTROL_UMP (Universal Midi Packet) is the prefered format
for the MIDI 1.0 and 2.0 messages in the \ref spa_pod_sequence. Conversion
to SPA_CONTROL_Midi is performed for legacy applications.

As of 1.7 the prefered format is Midi1 again because most devices and
applications are still Midi1 and conversions between Midi1 and UMP are not
completely transparent in ALSA and PipeWire. UMP in the ALSA sequencer
and consumers must be enabled explicitly. UMP in producers is supported
still and will be converted to Midi1 by all consumers that did not explicitly
enable UMP support.

## The PipeWire Daemon

Nothing special is implemented for MIDI. Negotiation of formats
Expand Down Expand Up @@ -104,13 +111,14 @@ filtering out the \ref SPA_CONTROL_Midi, \ref SPA_CONTROL_OSC and
\ref SPA_CONTROL_UMP types. On output ports, the JACK event stream is
converted to control messages in a similar way.

Normally, all MIDI and UMP messages are converted to MIDI1 jack events unless
the JACK port was created with an explcit "32 bit raw UMP" format or with
the JackPortIsMIDI2 flag, in which case the raw UMP is passed to the JACK
application directly. For output ports,
the JACK events are assumed to be MIDI1 and converted to UMP unless the port
has the "32 bit raw UMP" format or the JackPortIsMIDI2 flag, in which case
the UMP messages are simply passed on.
Normally, all MIDI and UMP input messages are converted to MIDI1 jack
events unless the JACK port was created with an explcit "32 bit raw UMP"
format or with the JackPortIsMIDI2 flag, in which case the messages are
converted to UMP or passed on directly.

For output ports, the JACK events are assumed to be
MIDI1 unless the port has the "32 bit raw UMP" format or the JackPortIsMIDI2
flag, in which case the control messages are assumed to be UMP.

There is a 1 to 1 mapping between the JACK events and control
messages so there is no information loss or need for complicated
Expand Down
Loading