Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pipewire 1.0.7 #78

Open
wants to merge 151 commits into
base: master_jammy
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
f1d2d40
mem: track fd invalidation of imported memblocks
pv Feb 2, 2024
15a4d9a
stream: fix param emission for Props
wtay Feb 4, 2024
0a1afa6
client-node: handle releasing mix for destroyed port
pv Feb 3, 2024
fc6f8e3
client-node: clear buffers always when freeing mix
pv Feb 3, 2024
97777f1
module-protocol-simple: do not cleanup client when send returns EAGAI…
stefanu21 Feb 5, 2024
0bc42d7
pw-cli: set quit flag on -EPIPE
wtay Feb 6, 2024
9cb234d
Jack: Fix jack_remove_property(ies) to use proxy id
DmtKats Feb 7, 2024
51e0720
protocol-native: set error when add_event fails
wtay Feb 8, 2024
3d5b9ce
Jack: Added missing lock to jack API call
DmtKats Feb 8, 2024
acf9b67
buffer: add MAPPABLE data flag
wtay Feb 8, 2024
c972405
metadata: handle removed globals as well
wtay Feb 9, 2024
86ae379
Fix building module-netjack2 on FreeBSD
arrowd Feb 10, 2024
6f7be35
FreeBSD compatibility for module-rtp-sap
arrowd Feb 10, 2024
d1b1202
Use portable shebang in input-filter-h.sh
arrowd Feb 10, 2024
b2c3ee5
metadata: handle removed globals in impl
DmtKats Feb 10, 2024
72b41e5
metadata: Added context monitor for removed globals
DmtKats Feb 10, 2024
151a2f0
spa: use errno values in warnings
wtay Feb 12, 2024
4e24b6e
pw-link: improve port and node names
wtay Feb 12, 2024
32f507d
alsa: Reduce jitter in irq based software timestamping
DmtKats Feb 14, 2024
119636c
alsa: split irq and timer wakeup functions
wtay Feb 14, 2024
f5c8547
meson: add options to set server and client RT priority
wtay Feb 15, 2024
346264f
module-rtp: handle ipv6 sap.ip
wtay Feb 15, 2024
0fba553
module-rtp-sink: improve source.ip default
wtay Feb 15, 2024
4a04d59
Update .gitlab-ci.yml file
wtay Feb 16, 2024
de61769
doc: sync with master branch
pv Feb 16, 2024
791455c
module-rtp: fix SAP header parsing for IPv6
wtay Feb 16, 2024
ffd9a8b
conf: fix override directory order
wtay Feb 16, 2024
e25f771
resample: use a float phase in update_rate
DmtKats Feb 16, 2024
1f578e8
resampler: Only use copy when rate is 1.0
DmtKats Feb 16, 2024
876c3f4
logger: minor performance improvement to avoid syscall done by isatty
rgonzalezfluendo Feb 16, 2024
030768a
doc: sync with master branch
pv Feb 17, 2024
c51ced4
pipewire-alsa: Propagate errors from eventfd().
Feb 19, 2024
d2e4ad1
pulse-server: Make sure peer_sink name is filled
wtay Feb 19, 2024
67e0ebc
alsa: Added handle for controlling htimestamp autodisable
DmtKats Feb 20, 2024
5d965e1
jack: sync threads by pausing the core
wtay Feb 21, 2024
6242dab
jack: set global_mix safely
wtay Feb 21, 2024
0b75a3b
jack: FORCE_RATE should just contain the rate
wtay Feb 26, 2024
e62ab00
stream: FORCE_RATE should just contain the rate
wtay Feb 26, 2024
71ae3df
pw_context_parse_conf_section: use the conf argument instead of the c…
gkiagia Feb 28, 2024
8942b74
audioconvert: handle port remove
wtay Feb 28, 2024
b41e239
audioconvert: handle invalid ports better
wtay Feb 28, 2024
4fba866
gst: remove timeouts when autoconnect=false
wtay Mar 1, 2024
e5c810c
Add SOC-style jack names to HDMI audio paths
cillian64 Feb 14, 2024
f3b20ae
Specify "Audio" in gstreamer sink/src metadata to fix autodetect
antlarr-suse Mar 6, 2024
c649f4a
pw-top: only check terminal size in non-batch mode
pobrn Mar 7, 2024
b3c7dda
jack: fix multiple midi input ports
wtay Mar 8, 2024
4c75d4f
stream: add pw_stream_get_nsec() to get current time
wtay Mar 4, 2024
365181b
module-ffado: various fixes to make things work
wtay Mar 6, 2024
4e4de27
module-ffado: implement MIDI send and receive
wtay Mar 7, 2024
383da75
module-ffado: handle MIDI correctly
wtay Mar 8, 2024
89d8e8b
module-ffado: make the event buffer per port
wtay Mar 8, 2024
6d3790d
module-ffado: copt link.group property
wtay Mar 11, 2024
863b3be
audioconvert: add monitor.passthrough option
wtay Mar 11, 2024
d801654
module-ffado: disable pause on idle
wtay Mar 11, 2024
436bd37
settings: add default.clock.quantum-floor property
wtay Mar 12, 2024
a1e59ef
module-ffado: add more port properties
wtay Mar 12, 2024
6e710ea
jack: set the output buffer size correctly
wtay Mar 12, 2024
9da78c4
gst: only remove port once
wtay Mar 12, 2024
f2874ad
1.0.4
wtay Feb 16, 2024
e3fc41b
spa: alsa: Read ctl events instead of doing a global diff
ford-prefect Mar 14, 2024
9419d45
doc: sync with master branch
pv Mar 10, 2024
13d4bb4
audioconvert: implement resample_out_len()
wtay Jan 16, 2024
010c9f1
audioconvert: also place resample output in rate_io
wtay Jan 16, 2024
0ede521
stream: add resample size to pw_time
wtay Jan 15, 2024
d0aca52
stream: rename requested to size in pw_time
wtay Jan 16, 2024
1d36559
stream: update some docs
wtay Mar 13, 2024
945a4e9
stream: improve the timing info
wtay Mar 14, 2024
cb7ca88
stream: add time field to pw_buffer
wtay Mar 14, 2024
e52a56b
tests: update unit test for added field
wtay Mar 15, 2024
03b76b6
gst: fall back to buffer time when no header
wtay Mar 14, 2024
e995a20
v4l2: unset _TIME_BITS in addition to _FILE_OFFSET_BITS
vorlonofportland Mar 16, 2024
99795cb
module-raop-sink: explicitly include <openssl/evp.h>
vishwin Mar 16, 2024
cc841a7
acp: add more properties for the card
wtay Mar 18, 2024
653be2d
utils: use memmove when src and dst can overlap
wtay Mar 18, 2024
85dd429
module-ffado: make sure we close and open when suspend
wtay Mar 19, 2024
31c437b
module-ffado: add some more debug
wtay Mar 19, 2024
7ae18c5
spa: a quick fix for compiling with -Werror=shadow
wtay Mar 20, 2024
201aaee
tools: print ??? when the quantum is unknown
wtay Mar 21, 2024
3ddd171
log: init topic_init function
wtay Mar 21, 2024
30f01b1
v4l2: set latency on port
wtay Mar 22, 2024
cc8b88c
alsa: add option to skip the busy check
wtay Mar 22, 2024
dcc32c3
client-node: small cleanups
wtay Mar 22, 2024
cee9f74
filter-chain: improve json parsing error reporting
wtay Mar 25, 2024
3bab51c
conf: add some warnings when keys are invalid and ignored
wtay Mar 25, 2024
048285a
spa plugins: Include Linux headers on Linux only
sthibaul Mar 24, 2024
a66aa7a
bluez: print a nicer warning when the bluez service is not available
gkiagia Mar 25, 2024
64cc53c
module-echo-cancel: Don't call _run() when inactive
Mar 25, 2024
5cb7d4c
conf: add more error checks
wtay Mar 28, 2024
8d0f738
conf: only count modules, objects and exec when added
wtay Mar 28, 2024
6279d79
context: add context.modules.allow-empty property
wtay Mar 28, 2024
3ea4193
spa: improve null-audio-sink channels
wtay Mar 28, 2024
88db0a9
client-node: free port io memmap also if port gone
pv Mar 29, 2024
f9bac48
v4l2: Drop the first frame after camera startup
rmader Mar 30, 2024
85ed6eb
CI: put docs from both 1.0 and master on pages
pv Mar 31, 2024
582dcf7
Update 90-pipewire-alsa.rules with support for Astro Mixamp Pro TR.
Mar 31, 2024
ecb35b9
stream: handle node.name fallback better
wtay Apr 1, 2024
822b811
stream: only unmap data that was mapped and mappable.
wtay Apr 1, 2024
28ab18d
client-node: pass the right object to functions
wtay Apr 10, 2024
b528479
v4l2: handle empty properties gracefully
wtay Apr 10, 2024
b72ead1
spa: handle empty values better
wtay Apr 10, 2024
a2287be
1.0.5
wtay Apr 10, 2024
bf148d5
combine-stream: actually make use of resample.disable
pv Apr 14, 2024
17a2c21
audioconvert: also clamp monitor volume to min/max
wtay Apr 15, 2024
98f9529
alsa: fix race when updating the eventfd
wtay Apr 16, 2024
e9f0638
module-loopback: only enable delay with valid rate and channels
wtay Apr 16, 2024
edc4c85
stream: log a warning when media.class and direction mismatch
wtay Apr 17, 2024
f65dd4e
impl-port: use 0 size when clearing IO
wtay Apr 17, 2024
aefe407
impl-port: avoid doing work when the port is destroyed
wtay Apr 17, 2024
4c19da1
spa: libcamera: encode device ids into a json array
Apr 18, 2024
7728586
spa: v4l2: encode device id into a json array
Apr 18, 2024
5066ea9
v4l2: fix printf format
wtay Apr 18, 2024
a572743
profiler: remove unused data-loop
wtay Apr 19, 2024
cf646fb
combine-stream: fix latency-compensate with resample.disabled=true
pv Apr 18, 2024
594d255
context: fill basic properties early
wtay Apr 22, 2024
9767645
module-ffado: only start after ports are configured
wtay Apr 22, 2024
0f0c9e8
module-protocol-simple: handle 'node.name' property
stefanu21 Apr 23, 2024
a7a0e20
conf: warn when match actions are missing
wtay Apr 24, 2024
8a4ff44
treewide: fix some format string issues
pobrn Apr 23, 2024
6944094
impl-node: avoid bitfield races
wtay Apr 25, 2024
99d342b
Add album to tag metadata
lunks Apr 27, 2024
e757868
combine-stream tag forward
lunks Apr 28, 2024
3958eb5
filter-chain: fix arguments of calloc
wtay Apr 28, 2024
d810057
module-rt: fix compiler warning
wtay Apr 28, 2024
d3980f7
journal: prepend code location to messages at debug log levels
pv Apr 28, 2024
1b115ea
alsa-pcm: don't force quantum for iec958 formats
lrusak Apr 27, 2024
f524271
treewide: fix errno assignments
pobrn Apr 30, 2024
2d379bf
gst: handle some more errors
wtay May 1, 2024
6c7dabb
gst: fix stream params memory leak
pobrn May 1, 2024
3cc0a40
pw-mon: fix type confusion in core event handler
pobrn May 3, 2024
b53c930
gst/src: Cleanups for src_negotiate()
rmader Mar 30, 2024
6ce298f
gst/src: Avoid unnecessary renegotiations during streaming
rmader Mar 30, 2024
3c45000
gst/src: fix crash when current_caps is NULL
robberos Apr 10, 2024
7002fe8
core: handle import errors better
wtay May 3, 2024
bb54e32
json: fix high surrogate escapes
pv May 5, 2024
3a912cb
pw-dump: fix string memory leak on error
pobrn May 5, 2024
cc88712
pw-dump: destroy all objects not just those matching the pattern
pobrn May 5, 2024
60deeb2
spa: libcamera: fix RGB mappings
rmader May 5, 2024
513495e
bluez5: drop queued data on node stop
pv Dec 4, 2023
2335657
bluez5: media-sink: keep one more buffer free
pv Dec 4, 2023
37a12fa
alsa: remove racy atomic operations
wtay May 7, 2024
1b8b683
1.0.6
wtay May 7, 2024
8eb93b4
tools: queue the buffer again in all cases
wtay May 9, 2024
412b379
jack: copy events to right offset
wtay May 10, 2024
861578c
pulse-server: client_queue_subscribe_event(): check message allocation
pobrn May 14, 2024
9c1760a
impl-port: update added flag from rt thread
May 15, 2024
6ee9e62
spa: fix integer overflows etc. in spa_pod_compare_value
pv May 18, 2024
3c9bd37
acp: handle some errors better
wtay May 16, 2024
5ebb089
ffado: add priority.session property
wtay May 22, 2024
59fe89d
1.0.7
wtay May 24, 2024
d44f636
Allow use of a input port if no outputs are available
jackpot51 Apr 12, 2023
15fd89f
feat: Debian packaging
mmstick Jul 12, 2022
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
54 changes: 50 additions & 4 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,9 @@ build_on_fedora:
variables:
MESON_OPTIONS: >-
-Ddocs=enabled
-Dman=enabled
-Ddoc-prefix-value=/usr
-Ddoc-sysconfdir-value=/etc
-Dinstalled_tests=enabled
-Dsystemd-system-service=enabled
-Dbluez5-backend-hsphfpd=enabled
Expand All @@ -281,6 +284,47 @@ build_on_fedora:
- build-*/meson-logs
- prefix-*

build_on_fedora_html_docs:
extends:
- .build_on_fedora
variables:
MESON_OPTIONS: >-
-Ddocs=enabled
-Dman=enabled
-Ddoc-prefix-value=/usr
-Ddoc-sysconfdir-value=/etc
-Dinstalled_tests=enabled
-Dsystemd-system-service=enabled
-Dbluez5-backend-hsphfpd=enabled
-Daudiotestsrc=enabled
-Dtest=enabled
-Dvideotestsrc=enabled
-Dvolume=enabled
-Dvulkan=enabled
-Dsdl2=enabled
-Dsndfile=enabled
-Dsession-managers=[]
before_script:
- git fetch origin 1.0 master
- git branch -f 1.0 origin/1.0
- git branch -f master origin/master
- git clone -b 1.0 . branch-1.0
- git clone -b master . branch-master
- !reference [.build, before_script]
script:
- cd branch-1.0
- meson setup builddir $MESON_OPTIONS
- meson compile -C builddir doc/pipewire-docs
- cd ../branch-master
- meson setup builddir $MESON_OPTIONS
- meson compile -C builddir doc/pipewire-docs
artifacts:
name: pipewire-$CI_COMMIT_SHA
when: always
paths:
- branch-*/builddir/meson-logs
- branch-*/builddir/doc/html

build_on_alpine:
extends:
- .alpine
Expand Down Expand Up @@ -507,12 +551,14 @@ pages:
- .not_coverity
stage: pages
dependencies:
- build_on_fedora
- build_on_fedora_html_docs
script:
- mkdir public
- cp -R prefix-*/share/doc/pipewire/html/* public/
- mkdir public public/devel
- cp -R branch-1.0/builddir/doc/html/* public/
- cp -R branch-master/builddir/doc/html/* public/devel/
artifacts:
paths:
- public
only:
- master
- 'master'
- '1.0'
217 changes: 214 additions & 3 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,217 @@
# PipeWire 1.0.7 (2024-05-24)

This is a small bugfix release that is API and ABI compatible with previous
1.0.x releases.

## Highlights
- Fix a potential race/crash.
- Fix some problems with negotiation of large integers and floats.
- Fix JACK sysex MIDI event handling.
- Some more smaller fixes and improvements.

## PipeWire
- Fix a potential race when adding/removing a port to be scheduled.

## Modules
- Fix FFADO default device handling. (#4023)

## SPA
- Fix in integer overflow and float/double compare in POD.

## JACK
- Copy larger MIDI events correctly.

Older versions:


# PipeWire 1.0.6 (2024-05-09)

This is a bugfix release that is API and ABI compatible with previous
1.0.x releases.

## Highlights
- A bitfield race was fixed that could cause some crashes or undefined
behaviour whem moving nodes between drivers.
- Fix to some invalid memory access in the pw-mon and pw-dump.
- A regression in kodi with IEC958 formats playback was fixed.
- A race in the ALSA plugin was fixed when updating the eventfd.
- Improvements and fixes to module-combine-stream.
- Negotiation was improved in pipewiresrc.
- Some more small fixes and improvements.

## PipeWire
- Context properties are now set early so that client properties can be
matched with rules.
- A bitfield race was fixed that could cause some crashes or undefined
behaviour when moving nodes between drivers.

## Tools
- Fix failure to hide properties in pw-mon. (#3997)
- Fix some memleaks and a crash in pw-dump. (#4001)

## Modules
- The combine-stream module now prevents resampling to avoid broken
audio because of different samplerates.
- Fix a potential double free in module-loopback when calculating the
delay. (#3748)
- The FFADO module now only starts when ports are negotiated to avoid
startup races. (#3968)
- The combine-stream module will now forward tags.

## SPA
- Monitor volumes are now also clamped to the min/max volumes. (#3962)
- V4l2 and libcamera now encodes the device ids into a JSON array. This
is part of the deduplication code of devices.
- A regression in kodi with IEC958 formats playback was fixed.

## Bluetooth
- Improved buffer handling and queued data when stopping.

## ALSA
- A race was fixed when updating the eventfd. (#3711)

## GStreamer
- Handle some errors better instead of crashing. (#3994)
- Fix a memleak in the stream params handling.
- Negotiation was improved in pipewiresrc.


# PipeWire 1.0.5 (2024-04-15)

This is a bugfix release that is API and ABI compatible with previous
1.0.x releases.

## Highlights
- pw_stream can now report timestamps on buffers and the expected
amount of samples for the resampler.
- The GStreamer element now has more correct timestamps using the new
pw_stream timestamps as a fallback.
- The FFADO module now handles suspend and resume better.
- A regression in v4l2 was fixed when parsing malformed filters.
- A potential memory/fd leak was fixed in client-node.
- Many more small bugfixes and improvements.


## PipeWire
- pw_stream now reports the expected resampler input or output size in
the pw_time structure. (#3750)
- pw_stream now also adds a time field to the buffer, which contains the
time of the graph when the buffer was received in the stream.
- Fix a compiler error when compiling with -Werror=shadow. (#3915)
- The config parser will warn when invalid config is detected.

## Modules
- The FFADO module now opens and closes when suspending. This fixes some
problems when FFADO properties are changed while suspended. (#3558)
- Filter-chain will now warn when invalid config is detected.
- Echo-cancel will now handle manage the state of the echo-cancel plugin
better, making sure run() is not called after deactivate().
- Fix some potential memory/fd leaks in client-node.

## SPA
- Improve reading the bound ALSA controls.
- The resampler can now also report the number of expected output samples.
- The ALSA ACP device objects have some more properties like the card.id
and alsa.components. (#3912)
- Fix a potential string corruption when parsing JSON strings.
- V4l2 now sets the latency on the port. (#3910)
- alsa-udev now has an option to expose the device even if busy. (#3914)
- Improve null-audio-sink channel handling. (#3931)
- v4l2 will now drop the first frame because it often contains wrong
timestamps or garbage. (#3910)
- A regression in v4l2 was fixed where invalid/empty properties in the
filter would make it error early. (#3959)

## GStreamer
- The source now falls back to the new pw_buffer time for the timestamps.

## Docs
- Sync with the master branch.

# PipeWire 1.0.4 (2024-03-13)

This is a bugfix release that is API and ABI compatible with previous
1.0.x releases.

## Highlights

- Track memfd better to avoid inconsistent memory. Also make sure the
mixer info is removed correctly in all cases on destroyed ports.
- Correctly handle removed objects in the metadata.
- Add an option to set the server and client priorities instead of using
a hardcoded value of 88.
- The FFADO module has been fixed. Audio and MIDI now works with
the same latency as the JACK driver. This has now also been
tested with a Focusrite Saffire Pro 14.
- The JACK library has seen some important fixes. Some ardour crackling
has been fixed when looping and multiple MIDI ports on a client should
now work.
- Small bugfixes and improvements.


## PipeWire
- Track memfd better to avoid inconsistent memory. Also make sure the
mixer info is removed correctly in all cases on destroyed ports.
- Fix Props param emission again in pw_stream. (#3833)
- Add MAPPABLE flag to buffer data to indicate that the fd can be
mmapped directly. Use this on DMABUF from v4l2. (#3840)
- Correctly handle removed object in the metadata.
- FreeBSD build and compatibility fixes.
- Add an option to set the server and client priorities instead of using
a hardcoded value of 88.
- Read config overrides in the right order.
- Fix PIPEWIRE_QUANTUM rate handling in pw_stream and pw_filter.
- Fix pw_context_parse_conf_section(), actually use the conf argument.
- A new pw_stream_get_nsec() and pw_filter_get_nsec() function was added
to get the current time of the stream/filter without having to assume a
particular clock.
- A new default.clock.quantum-floor property was added to configure the
absolute lowest buffer-size. (#3908)

## docs
- Many doc updates.

## tools
- Make sure we always quit pw-cli when the server stops. (#3837)
- pw-top now prints all drivers in batch mode. (#3899)

## modules
- Don't destroy the client in protocol-simple on EAGAIN.
- Handle IPv6 better in the RTP modules. Fix IPv6 SAP header
parsing. (#3851)
- The FFADO module has been fixed. Audio and MIDI now works with
the same latency as the JACK driver. This has now also been
tested with a Focusrite Saffire Pro 14. (#3558)

## pulse-server
- Make sure the peer_name is filled to avoid protocol errors.

## SPA
- Small resampler tweaks to improve stability of adaptive resampler.
- Add ALSA option to control htimestamp autodisable.
- Avoid some potential crashes in audioconvert when ports are removed.
- Improve HDMI jack detection on some SOCs.
- The audioconvert now has a monitor.passthrough option to pass the
latency information on the monitor ports. (#3888)

## GStreamer
- Don't use timeouts when autoconnect=false in pipewiresrc. (#3884)
- pipewiresrc and pipewiresink can now be automatically selected as
audio source and sink.
- An invalid memory access was fixed when destroying the device
provider.

## JACK
- Remove properties correctly with the object id, not serial.
- Improve sync with the data thread by pausing the core. Also improve
handling of port io to avoid invalid buffer access.
- Fix PIPEWIRE_QUANTUM rate handling.
- Support multiple MIDI input ports per client. (#3901)
- The output buffer size is now always correctly set. (#3892)

## ALSA
- Handle errors from eventfd_create correctly.

# PipeWire 1.0.3 (2024-02-02)

This is a quick bugfix release that is API and ABI compatible with previous
Expand All @@ -22,9 +236,6 @@ This is a quick bugfix release that is API and ABI compatible with previous
- Fix version check. This should allow the alsa plugin to work again
with version 1.0.2.

Older versions:


# PipeWire 1.0.2 (2024-01-31)

This is a bugfix release that is API and ABI compatible with previous
Expand Down
Loading