| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.
- Fix a critical bug that would refuse to update the samplerate or
buffersize in JACK clients. (#3226)
- A new module-netjack2-driver and module-netjack2-manager were added
that are compatible with NETJACK2. This allows PipeWire to become
a NETJACK2 manager or a driver between JACK2 or PipeWire servers.
- Support was added for firewire devices with FFADO. This is untested
for now and MIDI is not implemented yet.
- The node scheduling was optimized some more. External drivers are now
as efficient as in-server ones. This should improve performance of
various drivers such as bluetooth and JACK based drivers.
- Many, many bug fixes and a ton of improvements.
- pw-filter can now be used to write sinks and sources.
- The node activation for drivers was changed. The driver now does not
need to go to the server to start the processing cycle. This makes
out-of-server drivers as efficient as in-server drivers.
- Don't try to use drivers with 0 priority as fallback drivers. This
avoids making the screencast driver a driver for audio. (#3219)
- Improve xrun count reporting in pw-top and the profiler. Now each
node has their own xrun counter updated when it fails to complete
processing during the cycle.
- pw-filter now also has support for TRIGGER.
- A potential fd leak was found when fds were send to a zombie client.
(#1840)
- Fix a bug where monitor or capture streams were logged twice in the
profiler. (#3278)
- Remove stream hooks safely. (#3251)
- A bug in serialization of container properties was fixed. This could
result in truncated property values. (#3290)
- The PIPEWIRE_AUTOCONNECT environment variable now always overrides the
autoconnect settings of streams. (#3299)
- Node, port and link destroy now avoids some useless work.
- Port will now try to renegotiate a new format when idle. (#3266)
- The module-sap now is more compatible with AES67.
- A new FFADO driver module was added. This is completely untested because
of lack of hardware. Please test and report issues.
- A new NETJACK2 driver and a NETJACK2 manager module were added. These
should be drop in replacements for the JACK2 parts.
- The RAOP discover module now tries harder to only list devices once.
- The zeroconf discover module now tries harder to only list devices once.
- The RAOP sink module now handles latency better and is compatible with
some more devices. (#3247, #3282)
- The loopback and filter-chain modules now always dequeue the last input
buffer to avoid stuttering in some cases. (#3276)
- The SPA node factory module can now also export nodes. This is used to
export the PTP clock from the AES67 config file.
- A bug in module-jack-tunnel was fixed that would cause stuttering and
corrupted output in some cases. (#3255)
- The resampler is now disabled in module-loopback and filter-chain when
the samplerate is set to follow the graph rate. (#2969)
- The way the mixer peer is sent to clients was improved. It is now also
possible to let a remote node know about mixer port removes, which
can avoid memory leaks and some code simplifications.
- Monitor ports now report latency correctly.
- The ALSA plugin now uses htimestamp to get a more accurate ringbuffer
position to estimate the clock skew.
- The channelmixer now has min/max-volume settings to limit or fix the
volume.
- The ALSA plugin can now control the playback and capture rate of USB
gadgets. This can avoid resampling and instead use the USB feedback
to control the rate.
- The ALSA output to multiple devices has been improved, some lockups
are avoided when the device ringbuffer is full.
- The compress-offload sink has improved negotiation.
- Only try to use GSettings when the schema exists.
- @DEFAULT_SOURCE@, @DEFAULT_SINK@ and @DEFAULT_MONITOR@ are now correctly
handled as targets in playback and capture streams. (#3284)
- 2 new quirks are added to disable volume updates on sinks/sources.
(#1517)
- The virtual-sink and virtual-source modules were added. These are really
example modules but actually also work and are useful on PulseAudio so
implement them as well.
- Fix initial stream volumes. (#3306)
- Only register A2DP or BAP when we have codecs.
- Include codec into the media.name
- Fix a critical bug that would refuse to update the samplerate or
buffersize. (#3226)
- Improve updates of samplerate/buffersize, delay the updates until the
client is activated. (#3297)
- Use the new mix-info updates to simplify the mixer setup and peer
detection.
- Fill default strides instead of 0 on pipewire video buffers. (#3236)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
| |
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
| |
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
| |
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.
- A new zero-latency jackdbus bridge was added. This works similar to what
PulseAudio has to offer and creates a sink/source when jackdbus is
started. It is however much more efficient and runs the complete PipeWire
graph as a synchronous JACK client with no added latency.
- Many performance improvements. Activation of remote nodes is more
efficient, fewer eventfds are required on the clients, less callback
overhead in performence critical paths and an optimized poll function
was added. This was mainly driven by the jackdbus module to get the lowest
possible overhead when running the graph.
- The JACK notify callback implementation was reworked to emulate better what
JACK does, improving compatibility with ardour7 and the JACK stress test.
- More work on BAP devices. Device latency is now passed on to
applications also for multi-device headsets, and channel allocation
is handled better.
- Many more improvements and bugfixes.
- Remove the hardcoded limit on io_areas. This is used to link nodes together
and exchange buffers, it was limited to 2048 but now dynamically scales
based on requirements.
- Rate and quantum changes are now applied correctly in more cases. (#3159)
- Updates to client-node to more efficiently process the driver.
- The profiler information was improved to be more accurate. It should
now work better for remote drivers.
- Some potential memory map errors were fixed in the protocol because in some
case with large messages, some fds were closed too soon.
- pw-filter now implements the pw_filter_set_active() method.
- A potential out-of-buffers case was fixed in capture pw-streams where buffers
were not moved to the recycle queue when the node suspended.
- Nodes are now always woken up with the eventfd. Previously there were
some optimiztions in the server to directly call into the node process
function but that optimization is not necessary. Without this optimization
it is now possible to run nodes in different threads.
- pw-stream trigger is now implemented correctly in all cases.
- Remote nodes now use one eventfd less because they get triggered with the
node eventfd directly.
- Monitor ports are now ignored in latency updates.
- A potential race when reporting an error to a client was fixed. (#3192)
- Fix a bug where always_process nodes would sometimes IDLE. (#3189)
- Optimize peer activation. Nodes are now activated more efficiently and
independent of the number of links. It also reduces the number of eventfds
and memory in remote clients.
- A bug in property serialization was fixed. Values with spaces would only
serialize the first part of the value.
- Correctly handle the echo-canceler plugin init method fallback. The
samplerate was not correctly configured. This is only a regression for people
that have external echo-canceler plugins.
- RAOP sink now only sets the volume on the remote end when the stream is
recording. (#3175)
- RAOP discover now tries to deduplicate entries from the same host.
- A new zero-latency jackdbus bridge was added. This works similar to what
pulseaudio has to offer and creates a sink/source when jackdbus is
started. It is however much more efficient and runs the complete PipeWire
graph as a synchronous JACK client.
- The access module uses a more secure way to check the application
executable.
- module-combine-stream now has configurable delay and latency for each
stream. This can be used to align sinks/sources with different latencies.
- A potential crash in module-pulse-tunnel was fixed when shutting down.
(#3199)
- Module-rt will now clamp the nice value to the min allowed value to avoid
errors from rtkit. (#3186)
- Fix a bug with the session counters in module-rtp-sap. Also use the right
format for L24. Improve the AES67 example config.
- Improve some warning and info messages in module-rt. (#3194)
- module-rtp-session should now do something when started without arguments.
- A potential crash in module-rtp-session was fixed. (#3217)
- module-filter-chain has better error reporting when a convolver fails to
load. (#3223)
- Move some things around to avoid compiler warnings. (#3171)
- Increase mixer ports. Reorganize some things and bump mixer input ports
from 128 to 512.
- Fix a potential crash when a node is scheduled before it completes
the setup.
- The JACK sink and source SPA plugins have seen some improvements.
- Allow the peaks resampler still if we disabled resampling.
- Perform more cleanup in audioadapter when in error.
- An optimized non-cancellable loop implementation was added.
- Callbacks were optimized with a _fast() varsion that doesn't check the
version and method. When this check is performed earlier, it can
be skipped in performance critical places.
- Some of the callbacks and system methods are now using the fast function
calls in critical paths.
- A potential division by zero was fixed in the ALSA plugins.
- Improve rate and quantum when starting audioconvert.
- Make it possible to override node.driver in the SPA null-audio-driver.
(#3220)
- The audio info parameter parsing was refactored and improved.
- Fix some races with clients exiting when playing samples.
- An option was added to change or disable the dbus name registration.
(#2987)
- Implement battery reporting using AT+XEVENT.
- Disable hardware volume for 3M WorkTunes.
- Implement BAP audio locations (channel positions) by using the new
bluez properties.
- Fix some errors reported by JACK test.cpp. (#2638)
- Add jack.show-midi option to show/hide midi ports.
- Add jack.max-client-ports option. JACK also has a port limit and so
PipeWire needs it as well to make the tests happy.
- Call the shutdown callback only when the server stopped, not when there
is a random error. (#3070)
- Avoid registering the same port name twice.
- Call port registration callbacks in activate/deactivate.
- Improve jack_port_connected().
- Improve some error reporting.
- The JACK headers were updated to a newer version.
- JACK callbacks are now managed with an event queue to simulate
more what JACK does. This avoids emiting callbacks when a method is blocking
for a reply and causing deadlocks. (#3183)
- Assign unique names to JACK clients. (#2833)
- Fix a potential crash when the thread_utils was used after free.
- Aliases are now not filled in by default to improve JACK compatibility.
(#3154)
- The ALSA plugin will now wait for negotiation to complete or an error
before _prepare() completes. This makes more applications deal correctly
with the potential errors.
- A new document about how scheduling is implemented was added.
- Update the pw-cli man page. (#2988)
- Document the SPA Pod serialization.
- Document the PipeWire native protocol.
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a quick bugfix release that is API and ABI compatible with previous
0.3.x releases.
- Fix a regression in the scheduler that could keep some nodes IDLE.
- Fix a regression in the biquad filters in filter-chain.
- Fix a regression and potential crash in the ALSA mixer probing.
- Fix a regression in pipewiresrc with timestamps that could cause cheese
to record video with wrong timestamps.
- Beamforming support was enabled in the echo-canceler.
- pulse-tunnel and raop-sink will now proxy local volume changes to the
remote end.
- More bugfixes and improvements.
- Fix a bug in the graph scheduler where some nodes might stay IDLE in
some cases (like when connecting the source of the echo-canceler to the
sink).
- pw-metadata can now be created from the factory with initial values for
the metadata. (#3076)
- Conditions were added to the pipewire config file to make it possible to
configure the access module and the exec sections.
- Support was added in pw-stream to intercept and override properties for
the adapter. This can be used to implement custom volume control, for
example.
- pw-metadata can now list all available metadata objects with the -l
option.
- A new pw-config tool was added to debug configuration file loading and
parsing.
- The webrtc echo canceler now supports beamforming. You can provide the
coordinates of the microphones and let webrtc perform beamforming on
the captured samples to improve quality and remove noise.
- Fix a regression in the filter-chain with biquad filters. (#3161) and
improve error reporting.
- The pulse-tunnel will now proxy the volume changes to the remote end.
- The RAOP sink will now send volume parameters to control the volume
remotely. (#2061)
- One ALSA commit was not correctly reverted and might cause crashes.
- The ALSA sink and source now calculate the ALSA ringbuffer memory
location more correctly wich might improve compatibility with some
hardware.
- v4l2 now sets the values of the controls in the Props param.
- The echo-canceler aec_args are now parsed like they would be under
pulseaudio.
- More work on synchronizing BAP devices.
- The GStreamer source can now renegotiate the format when it changes.
- The GStreamer source now uses the BaseSrc clocking code to implement
the clock and timing code.
This is a quick bugfix release that is API and ABI compatible with previous
0.3.x releases.
- Reverted the UCM changes, they seem to cause regressions causing audio
to be muted in some cases.
- Fix a regression in the scheduler where a driver node might not be marked
runnable in some cases, like when echo-cancel is used. (#3145)
- Handle links from the driver to itself. This makes the midi bridge work
again. (#3153)
- ALSA rate matching for sources was fixed. It would previously wait too
long for rate matching and then cause drift. This should reduce
crackling and stuttering whan capturing in low latency.
- Fix the GStreamer clock to make cheese video recording work again. (#3149)
- More fixes and improvements.
- Fix a regression in the scheduler where a driver node might not be marked
runnable in some cases, like when echo-cancel is used. (#3145)
- Handle links from the driver to itself. This makes the midi bridge work
again. (#3153)
- Some man pages were improved.
- Fix a potential crash when thread-loop is destroyed before the loop.
(#3150)
- A new raw biquad filter was added to filter-chain. You can manually set the
6 parameters and you can use this to create custom filters per sample rate.
(#3139)
- The echo-canceler now supports different channels for the capture and playback
streams.
- A SB Audigy specific profile set was added to make better use of the
controls. (#2934)
- More ALSA IRQ based scheduling improvements.
- ALSA rate matching for sources was fixed. It would previously wait too
long for rate matching and then cause drift. This should reduce
crackling and stuttering whan capturing in low latency.
- The echo-cancel plugin API has a new method to make it possible to have
different channels for capture, source and playback.
- Reverted the UCM changes, they seem to cause regressions causing audio
to be muted in some cases.
- Many more BAP fixes and improvements. Devices are now created as a set
and can be combined into one device by the session manager.
- Fix the GStreamer clock to make cheese video recording work again. (#3149)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
- remove duplicated PACKAGECONFIG
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.
This release contains a huge number of changes, some of which might cause
regressions. Please report anything that seems to fail after the upgrade.
UCM devices in particular might have changed names, profiles and ports that
might require changes in custom scripts.
- Symbolic links to the pipewire binary are now used instead of recompiling
the same binary multiple times.
- Changes to the graph scheduler related to quantum/rate updates and
calculation of the node states. Things should start and switch between
quantums and rates more smoothly now and especially virtual devices should
now only run when required.
- A new RTP session module was added. This uses the Apple MIDI protocol
to configure low-latency bidirectional MIDI (and with a PipeWire specific
extension, also audio) between machines. OPUS encoding was added to the
RTP formats. The SAP module was separated from the rtp-sink/source module
to make it more usable.
- A new runtime debug property was added to all streams and nodes to trigger
a save of the raw samples to a wav file. Support for this has also been
added to the echo-canceler to debug potential issues.
- Module pulse-tunnel has improved rate matching and synchronization
support. It should also not drift anymore for capture devices.
- The link-factory now ignores by default the link.passive property. This means
that tools like pw-link or jack clients and wireplumber can't make passive
links anymore. The reason is that there is now much more advanced logic in
PipeWire itself to handle passive links based on node and port properties.
- The RAOP sink was ported to new OpenSSL functions. Digest passwords are
handled correctly now and support for more devices was added.
- The ACP code was updated with new PulseAudio UCM code: "Create multiple
profiles per verb for conflicting devices". This might change the names
of devices, profiles and ports so scripts might need to be updated.
- Upmixing is disabled again by default. We now ship config files that
distros can install to enable upmixing again. The reason being that PipeWire
should not apply fancy DSP processing to audio by default.
- Many cleanups and bugfixes, including some crashes and memory corruption
bugs.
- Various FreeBSD compilation fixes.
- Don't crash when calling _connect twice in stream/filter. (#3091)
- Links are now installed instead of compiling the pipewire binary
multiple times.
- There is now a new core event bound_props that augments the bound_id event
with the global properties. This can be used to get the global.serial among
other global properties. It also makes it possible in the future to let the
server allocate unique names or uuids.
- Fix a bug where the server could go into an infinite reconfigure loop when
the samplerate of a driver would change.
- When a samplerate was forced, restore the previous best samplerate when the
samplerate is no longer forced. (#2133)
- Rework how the states of the nodes in the graph are calculated. A more
refined algorithm is now used that only runs nodes that need to run.
- Rework how the quantum change is applied to the graph. Drivers are now
responsible for using the new updated rate/quantum before starting a new
cycle. This avoids starting a cycle with an old quantum first.
- pw-stream and pw-filter will now ensure that the Trigger event is called
from the main thread.
- node.force-rate=0 will now force the node.rate on the graph, forcefully
switching the hardware into the new rate if possible. (#3026)
- Additional checks were added to the thread-loop to check locking order.
- Additional checks were added to pw-stream and pw-filter to check if methods
are called from the right thread context.
- A new RTP session module was added. This uses the Apple MIDI protocol
to configure bidirectional MIDI (or audio) between machines.
- SAP support was removed from module-rtp-source and module-rtp-sink and
moved to a separate module. This makes it possible to use the RTP modules
without SAP support as well.
- The echo-cancel module now has support to save the signals to a wav
file for debugging purposes.
- The RTP modules now have support for the OPUS codec.
- The RAOP module was ported to new openssl encryption functions and handles
digest passwords correctly now.
- module-raop-discover now has match rules to be able to select the streams
and set properties.
- Module pulse-tunnel has improved rate matching and synchronization
support. (#3093)
- Fix potential memory corruption and infinite loops because
module-pulse-tunnel was unloaded from the wrong thread.
- The link-factory now ignores by default the link.passive property. This means
that tools like pw-link or jack clients and wireplumber can't make passive
links anymore. The reason is that there is now much more advanced logic in
PipeWire itself to handle passive links based on node and port properties.
- module-echo-cancel will now clear its buffers after a suspend to avoid
playing stray samples.
- module-raop-sink will now handle 0 timing_port replies. (#3133)
- The adapter module now has support for saving the raw audio to a wav
file for debugging purposes.
- The ACP code was updated with new PulseAudio UCM code: "Create multiple
profiles per verb for conflicting devices". This might change the names
of devices, profiles and ports so scripts might need to be updated.
- Upmixing was disabled again by default. We now ship config files that
distros can install to enable upmixing again. (#3081)
- audioadapter and audioconvert have seen improvements in the experimental
non-DSP/passthrough mode.
- Fix a potential race where the dummy drivers could fail to stop a timer
and cause endless warnings in the logs.
- The ALSA plugin has experimental support for IRQ based scheduling. This
should decrease latency for some (mostly USB) drivers. This should bring
latency within JACK latency. More work on this will be done before the
1.0 release later this year.
- Audioconvert now has support for volume ramping. (#3046)
- A new loop method was added the check if a thread is currently running the
loop.
- channelmix.disable and resample.disable now generate an error when true
and channelmixing or resampling is required in the converter.
- Fix a crash in some cases when a device was disconnected.
- Support async transport state changes. This avoids some lockups when the
bluetooth backend is having issues. (#3023)
- Align BAP sinks. This improves synchronization between earpieces.
- Improve properties in pw-top and pavucontrol.
- Improve error handling from pulse-tunnel.
- Generate silence correctly for unsigned formats as well.
- Review buffer params. The streams should now just work with 1 or 2
buffers.
- module-rtp-send and module-rtp-recv now have support for the OPUS codec.
- Make sure we don't call any callbacks anymore when deactivating. (#2781)
- Sort the device by priority in deviceprovider. (#3072)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.
- The loopback module and other couples streams will now not randomly
fail in some cases. (#3028)
- The RTP module now has support for sending and receiving MIDI as
well.
- The compress offload sink has seen many improvements. It now uses
ioctls directly to bypass limitations of tinycompress (to be able
to detect the available codecs, for example).
- Pulse server compatibility was improved for some apps by improving
the format parsing and FIX_ stream flag handling.
- The min quantum in the pulse server was changed from 256/48000 to
128/48000 to fix some issues with games that expect 5ms or less of
latency.
- The Bluetooth plugin has seen many improvements in packet scheduling
to attempt to reduce stuttering on some devices.
- The ALSA plugin now handles some impossible cases better. This fixes
recording in QEMU again. (#2971)
- SPDX tags were added to the code for copyright information.
- The random number functions were made more usable.
- The port property code was moved from the adapter to the port
implementation itself to make it more useful and unified for the
cases where no adapter is used (midi and video).
- Fix a potential overflow in mixer areas.
- Improve runnable state calculations of nodes. This is part of
ongoing work to avoid running nodes that should not need to run.
- The stream will now always call the process function when using
trigger, even if there are no buffers. This avoids stalls of the
processing graph in some cases. (#3028)
- Links are now marked as passive by PipeWire itself so that
the right thing happens in all cases.
- Implement the in/out/true values for the node.passive property.
Place a passive state on ports to make passive links on a port
by port basis.
- pw-cat has seen improvements in the encoded file playback case.
- The rtp module has support for MIDI now.
- DSCP is now configurable in the RTP module.
- The loopback module doesn't randomly fail to work anymore. (#3028)
- The null-audio sink can now be given a format and it will return this
instead of the default float ones. This makes it possible to make a
null-sink that has a given format.
- The compress offload sink has seen many improvements. It now no longer
uses tinycompress to be able to detect the available codecs.
- The ALSA plugin now handles some impossible cases better. (#2971)
- Fix compilation on older compilers. (#3050)
- The FIX_ flags are now implemented more correctly by fixating the
stream to the format of the sink/source they ask to be connected to.
There is now also an option to override the fixation based on rules.
- Format parsing was improved and should now support all format strings
supported by pulseaudio including upper and lower case variants
and shortcuts.
- Channelmap parsing was improved and should now reject invalid
channelmaps as well as support the shortcuts supported by pulseaudio.
- Escape codes in module arguments now work as it does in pulseaudio. (#3071)
- The min quantum was changed from 256/48000 to 128/48000 to fix some
issues with games that expect 5ms or less of latency.
- jack.passive-links can now be used to have a JACK client make passive
links and the node.passive property is no longer used for this because
it has a different function.
- The qsynth rule was updated to the new node.passive features. It is now
only passive on the output side.
- BAP delay and transport latency are handled now.
- A2DP and SCO can now use bigger buffers to improve quality when the
reception is jittery.
- The AT+BCC command is now implemented.
- Packet encoding now happens ahead of time when possible to avoid delays
before sending it.
- Source should now always produce complete (padded) buffers to avoid sync
problems.
- Don't set unnecessary socket options.
- The pipewiresrc now has an autoconnect argument.
- The metadata plane count is now handled correctly in more cases.
- Stream errors are now handled correctly to stop the GStreamer elements.
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.
- Fix a regression in the pulseaudio module-combine-stream because the new
module-combine-stream was not installed.
- PipeWire can now generate a limits.d config file with our recommended
settings for priorities and memlock.
- Avoid rate switches when the graph is idle.
- The rate selection algorithm was improved. This ensures minimal performance
and quality loss when resampling.
- The default min.quantum was set to 32 again after it got erronously changed
to (the too low) 16 in version 0.3.45.
- Fix compilation issues with rust bindings because of macros in defines.
Work around it for now. (#2952)
- Invalid file mappings are now refused (#2617 #2914 #3007)
- Modules, exec and objects can now be loaded depending on conditions. One
example is the X11-bell module that can now be disabled with a custom
property override.
- Filter now also supports _trigger_process() to drive the graph.
- TID is now added to the journald log.
- PipeWire generates and installs */etc/security/limits.d/25-pw-rlimits.conf*
that by default contains project's recommended settings. Creation of the
pipewire group is left to the distro or user ( `groupadd -r pipewire` ).
See the rlimits-* Meson options for controlling this behavior.
- Additionally there is now by default disabled Meson option that will
install */etc/security/limits.d/20-pw-defaults.conf* with the current Linux
default memlock value. Distros with only kernels >=5.16 or always using
systemd v251 or newer do not need this. But all other builds should set the
`-Dpam-defaults-install=true` Meson option to ensure that the memlock value
is always large enough. Thanks to Rickie Schroeder for pointing out that
the default Linux memlock value has been somewhat recently increased.
- Install module-combine-stream.
- RTP source now has support for custom channel names.
- RTP source will now stop when inactive.
- There is now
- Filter-chain has a new mysofa based spacializer plugin.
- The RTP modules can now use direct clock timestamps to send and receive
packets. This makes it possible to synchronize sender and receiver with
a PTP clock, for example.
- Filter-chain now has an invert plugin to invert the polarity of a
signal. (#3008)
- There is now an option to set the channels used for probing Pro Audio
devices. This could unlock more samplerates for some devices when they are
probed with fewer channels. (#2990)
- Support was added for other clocks than the MONOTONIC clock in the
driver nodes. This can be used to synchronize the graph to a PTP clock,
for example.
- The ALSA source has some more headroom when rate matching to avoid
stuttering when following another driver.
- libcamera controls are now mapped to standard PipeWire property values.
- The channelmixer has seen some improvements. MONO and undefined channel
layouts are now upmixed and downmixed more correctly. (#3010)
- Many BAP support fixes.
- The gstreamer elements now support buffer video metadata so that strides
are correctly handled.
- pipewiresrc will now error out correctly in more cases. (#2935)
- The frame to/from time functions are improved to also work with negative
time and frame offsets.
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Media Session 0.4.2 (2023-01-20)
This is a small release to keep the dead corpse walking... Repeated attempts to
shoot it in the head seem to have failed (We don't think it is running with a lot
of brains left). It does not look pretty and we don't know yet when it will finally
stay down. What we do know is that some creatures (humans?) have been secretly
feeding it with their brain cells and as such, here we are...
Anyway, it contains some minor patches for some organ (memory?) leaks. It also adds
some fixes to make things stumble on (compile?) and make disturbing slurping sounds
again (work?) with the latest PipeWire versions.
Seriously.. back off.. don't become a victim... use Wireplumber.
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.
- Add back the deprecated symbols but make sure a deprecated warning is
emitted for them. This fixes compilation issues in bindings.
- Fix an error in the AVX code that could cause crackling in filter-chain
when using the mixer.
- The convolver in filter-chain can now select an IR from a list of IRs
that best matches the current samplerate. Also resampling of the IR
has been improved.
- A new native module-combine-stream was added. You can use this to create
a 5.1 device from 3 stereo soundcards, for example, or direct the output
to multiple sinks at once.
- Support for Bluetooth MIDI was added. This requires a wireplumber
addition as well.
- An ALSA plugin rule was added to tweak the buffer settings in Davinci
Resolve so that it now runs with acceptable latency. (#1697)
- Support for compress offload was added using tinycompress. This allows
compressed formats to be decoded in hardware using ALSA on some devices.
- Many more buffixes and improvements.
- Add back the deprecated symbols but make sure a deprecated warning is
emitted for them. (#2952)
- Fix a regression when running older servers and newer clients (such as
flatpaks on older server) where the server would run clients too soon,
causing crashes. (#2964)
- Ensure that environment variables override any config values.
- pw-cli has received some improvements in the output.
- pw-cat can now use ffmpeg to demux streams for compress offload.
- The convolver IR volume is now preserved after resampling.
- Adapter ports can now have a custom prefix.
- module-rt now clamps the realtime priority to the user allowed one if
it is within an acceptable range. Before it would fall back to RTKit
immediately.
- The module-echo-cancel can now have per stream channel layouts which
makes it possible to link to specific audio ports on a device. (#2939)
- Fix an error in the AVX code that could cause crackling in filter-chain
when using the mixer. (#2965)
- The convolver in filter-chain can now select an IR from a list of IRs
that best matches the current sample-rate.
- module-pipe-* now better matches the pulseaudio properties. (#2973)
- A new combine-stream module was added to combine multiple sinks into
one sink. It is also possible to merge multiple sources into one.
- module-rtp-source now has match rules to select what SAP sessions
to stream from. There were also improvements to the buffering and
latency handling.
- module-rtp-sink now handles multicast loopback correctly.
- module-rtp-sink implements min-ptime and max-ptime to control the
send packet latency.
- A new modifier flag was added to the video format parser helper to
allow 0 (linear) as a valid modifier. (#2943)
- Params includes were reorganized to make it more scalable. Many compressed
audio formats were added.
- The alsa pcm plugin now handles invalid values from the driver
gracefully. (#2953)
- Fix some potential stuttering cause by wrong scaling and overflow
of the output buffers in audioconvert. (#2680)
- Debug output is now also sent to the log instead of stdout. (#2923)
- A debug context was added to debug macros to implement custom debug
handling. This is used to redirect the debug of pods to the debug log
instead of using some custom duplicated code.
- Fix some warnings for potentially undefined shifts in format
conversion.
- Support for compress offload was added using tinycompress. This is mostly
used on some embedded hardware where decoding of audio formats can be
done in hardware.
- Some fixes for LE audio were added.
- Support for Bluetooth MIDI was added. This requires a wireplumber
addition as well.
- Reply OK to empty commands.
- Improve compatibility with some devices that send stray \n such as
the Sennheiser HD 350BT. (#2991)
- Devices with unsupported formats (by the pulseaudio API) are now also
listed in the pulseaudio API (with invalid formats).
- The native module-combine-stream is used for module-combine-sink.
- Make jack.merge-monitor default to true to better match the jack1/2
behaviour. Add an exception for mixxx, which is more usable with
unmerged monitors. (#1760)
- The property handling in the ALSA plugin was improved. alsa.properties
and alsa.rules can now be added to the config file.
- A rule was added to tweak the buffer settings in Davinci Resolve so that
it can run with acceptable latency. (#1697)
- ALSA volume will now also use cubic volumes, like pulseaudio.
- The ALSA ctl plugin now also uses the client-rt.conf file.
- A new alsa.volume-method was added to configure cubic or linear volume.
This can be set per application using the rules.
- pipewiresrc will now advertize DMABUF support if the pipeline suports
this.
- pipewiresrc will now always be a live source unless told otherwise.
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
One of the module has -native in its name which causes it to be provided
by both pipewire and pipewire-native and we need to set preferred
provider just for that. The fine tailored packages is not needed for
native case anyway so disable it
Fixes
NOTE: Multiple providers are available for runtime pipewire-modules-protocol-native (pipewire, pipewire-native)
Consider defining a PREFERRED_RPROVIDER entry to match pipewire-modules-protocol-native
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
This avoid unnessary provider conflict with pipewire-native to
provide modules
NOTE: Multiple providers are available for runtime pipewire-modules-protocol-native (pipewire, pipewire-native)
Consider defining a PREFERRED_RPROVIDER entry to match pipewire-modules-protocol-native
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
pipewire 0.64 has removed [1] NODE_TARGET which is still used by pipewire-media-session
so enable deprecated features for now to get the definition of PW_KEY_NODE_TARGET [2]
[1] https://gitlab.freedesktop.org/pipewire/pipewire/-/releases/0.3.64#highlights
[2] https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2952
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.
- Clear old buffer memory on ports to fix some SIGBUS errors.
- It is now possible to assign custom port names to the ports from an
adapter. This feature is helpful to those who use a multichannel
interface with long-term connections. This way they can label each
port with its designation, such as an instrument name or anything else
to be displayed in a patchbay or DAW.
- Fix some issues with node suspend and quantum and rate calculations.
- Fix some regressions in pulse-tunnel and RTP-source adaptive resampling
that could cause synchronization problems.
- UCM devices now also have a Pro Audio profile.
- NODE_TARGET (with the object.id) is now deprecated, use TARGET_OBJECT
(with the object.serial, which is not reused and can avoid races).
- Clear all peer input port buffers when suspending. This fixes some
SIGBUS errors when some plugins were using old memory. (#2914)
- Fix a case where nodes that were not supposed to be suspended, were
kept suspended on a rate change. (#2929)
- Fix an error in the quantum and rate calculations that could cause
nodes to run with wrong quantum and rates when multiple rates were
allowed. (#2925)
- pw-dump will now sort dictionaries to make it easier to compare
different outputs.
- Improve output of pw-reserve.
- pw-loopback uses TARGET_OBJECT so you will need to use the serial
id (or better the name) as the target instead of the object id.
- The filter-chain modules has seen some cleanups, refactoring and
optimizations in the various DSP functions.
- The ROC module now supports setting a custom samplerate.
- ROC 0.2.X is now required.
- The pulse tunnel and RTP source were not updating the rate field
correctly which could cause synchronization problems. (#2891)
- The filter-chain now supports an arbitrary number of control
properties. (#2933)
- It is now possible to assign custom port names to the ports from an
adapter with the PW_KEY_NODE_CHANNELNAMES.
- Support was added for capture and playback props in echo-cancel.
(#2939)
- The ACP code now has an option to set the probe samplerate. (#1599)
- UCM devices now also have a Pro Audio profile.
- Filtering of Step ranges is now implemented.
- The channel-map is now set correctly on the echo-cancel module.
- source_master and sink_master are now correctly handled in module
echo-cancel.
- Fix a regression in DRAIN where resuming after a DRAIN would fail.
This caused problems for espeak. (#2928)
- TARGET_OBJECT is now used to make it possible to use the indexes
as a target.
- ladspa-source and remap-source can now also link to monitors.
- The ALSA plugin now handles the target.object correctly when set to
-1. (#2893)
- The v4l2 replacement library now also follows symlinks.
- Support for getting and setting controls was added.
- Support for G_PARM was added.
- The environment variable PIPEWIRE_V4L2_TARGET can be used to force
an application onto a specific camera.
- Fix compilation without ldac_abr.
- Fix a missing brace in CIND reply. This could cause some devices to
fail.
- Fix configuration of the initial latency.
- The device provider now supports setting an fd so that it can connect
to PipeWire sessions from the portal.
- DMABuf support was re-enabled in gstpipewiresrc.
Build with support for gsettings and libcamera
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
| |
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PipeWire 0.3.62 (2022-12-09)
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.
Highlights
A regression in screensharing was fixed. It was caused by a race when
activating links and driver nodes.
Video transform metadata was added so that cameras and screen sharing
can report the video orientation and transformations.
Support for the PulseAudio module-gsettings was added to make paprefs
work.
Support for bluetooth offloading was added. This allows for the bluetooth
reception, decoding and playback to happen completely in hardware.
This also requires some support in WirePlumber.
Many bugfixes and improvements.
PipeWire
More work on stopping nodes in a more controlled way.
Fix a race in starting nodes and drivers. In some cases the driver
node would already be started while the link to the peer node was not
ready yet. This caused regressions in screen sharing. The driver is
now only started after all the followers and links completed.
Fix a case where a slow capture stream would not recycle buffers
anymore and stall. (#2874)
Fix a subtle bug in pw_loop_invoke that could cause callbacks to be
delayed and cause crashes in some cases.
Fix a case where IPC was done from the data-thread and could cause
crashes.
Tools
Silence some expected errors in the pw-top output.
modules
The filter-chain has seen some optimizations in the copy plugin and
the convolver.
The zeroconf plugin will now only unpublish services from the server
that was removed.
Fix a potential crash when stopping pw-loopback.
Some harmless errors were turned into info messages.
Fix some cases where pw_stream methods were called from the data-thread
that could cause segfaults. (#2633)
SPA
There is now a video transform metadata that indicates how a video
frame was transformed (rotated/flipped). libcamera and the GStreamer
elements now have support for this metadata.
The SPA volume plugin is now disabled from the default build.
Handle missing control info in libcamera.
Handle errors from loop better, don't call the callbacks on errors.
Somewhat improve performance in some audioconvert AVX2 code for format
conversion.
Fix PortConfig and EnumPortConfig params in audioconvert and
audioadapter to reflect what is actually going on instead of using
hardcoded values.
Pass ignore-dB property correctly in all cases.
Probing is now done in 48KHz again. (#2857)
Pulse-server
IPv4 addresses are now added first to the list and exposed first with
zeroconf discover.
module-gsettings was added to make paprefs work.
The pulse.idle.timeout option was disabled by default and only enabled
for selected apps (speech-dispatcher) because it caused some problems
for other apps. (#2880)
JACK
Only process valid ports. Could fix some crashes. (#2863)
Bluetooth
Support was added for offloading bluetooth handling. Some hardware can
receive, decode and play the bluetooth audio directly in hardware.
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PipeWire 0.3.61 (2022-11-24)
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.
Highlights
Fix a bug in audioadapter that could cause crashes when switching
bluetooth profiles.
Fix sound in QEMU, deadbeef and openal again.
libcamera plugin fixes, dynamic add and remove should now work with
the next wireplumber version.
Fix a regression in pw-midiplay where the first buffer would not
play and some events would be missing.
The network module now doesn't export other network sources
anymore.
pulse-server now detects clients that keep underrunning for a long time
and will pause them to save power.
Many more bugfixes and improvements.
PipeWire
Optimize away some useless graph recalculations.
Increase alternative sample rates from 16 to 32.
FreeBSD and musl build fixes.
Silence some module loading errors when the error can be ignored.
Fix initial buffer requested size for pw-stream when operating in
async mode. This also indirectly fixes the first buffer in
pw-midiplay. (#2843)
Modules
Set the network property on pulse-tunnel streams so that they are
not exported anymore. (#2384)
Filter-chain has optimized mix functions now.
SPA
Handle some errors in libcamera better.
Fix libcamera remove events. Fix the id allocation for devices.
Fix a bug in audioadapter where it would not renegotiate after
a port reconfiguration, leading to crashes, especially when
automatically switching profiles in bluetooth. (#2764)
Do ALSA probing in 44100Hz again. Some devices seem to fail
otherwise for some unknown reason. (#2718)
Force playback start when the ALSA buffer is full. This fixes sound
in QEMU. (#2830)
Support Digital 5.1 AC3 for Asus Xonar SE.
Improve format renegotiation in audioadapter. This makes the ALSA
plugin work again for deadbeef. (#2832)
Fix latency reporting on adapter DSP ports.
pulse-server
Fix a bug where openal based applications would hang. (#2821)
Improve zeroconf publish. Only publish on the address of the first
running server. This avoids duplicate entries for IPv4 and IPv6.
Add support for republish entries when new servers are started.
Add a pulse.idle.timeout option (default to 5 seconds) to pause
streams that have been underrunning for this amount of time. Badly
behaving clients will then not keep the graph and device busy so
that devices can be suspended to save battery. This should give
better default behaviour with speech-dispatcher. (#2839)
JACK
Add an option to configure the filter character.
Fix connect_callbacks. It was only called once for output ports.
(#2841)
Add option to set node.passive on jack clients. Make some quirks
for qsynth to make it suspend and fade out better.
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
- switch PIPEWIRE_SESSION_MANAGER to wireplumber by default
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
| |
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PipeWire 0.3.57 (2022-09-02)
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.
Highlights
Support masking of conf.d/ files. (#2629)
Use org.freedesktop.portal.Realtime when available. This does the
correct PID/TID mappings to make realtime also work from flatpaks.
Fix rate adjustment logic in pulse-tunnel. This would cause
increasing delays and hickups when using tunnels. (#2548)
Add OPUS as a new vendor codec. Add OPUS-A2DP spec. PipeWire can now
send and receive OPUS data over bluetooth.
An AAC decoder was added so that PipeWire can now also function as
an A2DP AAC receiver.
Fix some issues where the wrong samplerate was used. (#2614)
Fix rate match for sources. This fixes an error where follower sources
would generate many resync warnings.
Many more bugfixes and improvements.
PipeWire
Support masking of conf.d/ files. (#2629)
Add some more debug info to memfd.
Improve data-loop invoke method. Also flush pending items. (#2631)
Add a filter-chain systemd service file than can be used to start
custom filters placed in ~/.conf/pipewire/filter-chain.d/ (#2553)
Improve triggered timestamps for remote nodes.
Fix some potential cross compilation problems due to wrong
host_machine.
Check return values of pw_getrandom().
Tools
Updates to pw-cli manpages. (#2552)
Remove the pw-cli dump command. It is mostly implemented as part of
wpctl status, pw-dump, pw-link, pw-top and others.
Clean up resource in pw-cat correctly on errors. (#2651)
Modules
Fix compilation of AVB on big-endian. Enable AVB only on Linux.
Use org.freedesktop.portal.Realtime when available. This does the
correct PID/TID mappings to make realtime also work from flatpaks.
Fix compilation of ROC module when headers are missing. (#2513)
Improve some error cleanup paths in protocol-native. Improve connect
and disconnect.
Fix a potential crash in FFT unload in filter-chain.
Implement PIPEWIRE_NOTIFICATION_FD for notification when the socket
is ready.
Try to use rtkit if set_nice() fails.
Fix rate adjustment logic in pulse-tunnel. This would cause
increasing delays and hickups when using tunnels. (#2548)
Handle disconnect in pulse-tunnel.
Bluetooth
Add OPUS as a new vendor codec. Add OPUS-A2DP spec. PipeWire can now
send and receive OPUS data over bluetooth.
An AAC decoder was added so that PipeWire can now also function as
an A2DP AAC receiver.
SPA
Tweak the resampler window function some more. (#2574)
Improve format convert performance in some fallback cases.
Fix rounding in format conversion on ARM NEON.
Fix libcamera build error. (#2575)
Fix some issues where the wrong samplerate was used. (#2614)
Don't wait for more samples that can fit in the ringbuffer in ALSA.
Improve buffer size handling in audioconvert, scale the buffers based
on the rate conversion and make things work with really large rate
conversions as well.
Add more and better debug for ALSA devices.
Improve channel mix: Filter FC and LFE when copying from a different
layout. Implement STEREO from FC. Avoid generating REAR from FC in PSD
mode.
Fix rate match for sources. This fixes an error where follower sources
would generate many resync warnings.
Improve ALSA format negotiation. If the ALSA node is not running and
there was a previously configured format, close and reopen the device
to enumerate and accept all possible formats again. (#2625).
ALSA
The alsa plugin will now also save the volumes set with the control
API. This saves the volumes set with alsa-mixer, for example.
Pulse-server
Flatpak apps with devices=all (Zoom) will now be granted Manager
permissions.
Small tweaks to the amount of data sent to clients to work around an
issue in freerdp.
JACK
Clean up the transport correctly when closing a client. (#2569)
Match context properties in addition to node properties for the jack
client rules. (#2580)
Make sure to return an error when disconnected from the server. (#2606)
Fix thread cast problem in jack_client_thread_id().
Increase jack_client_name_size() length and make sure we have space for
the \0 byte.
JACK clients from the same application will be added to the same group
so that they share the quantum and rate.
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
| |
- set pipewire-jack to be runtime recommended if it is built
- make media-session and wireplumber conflicting each other
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
Add the configuration to make pipewire work as a drop-in replacement for pulseaudio-server.
Add pipewire-media-session as a standalone recipe, since pipewire would fetch the code as a
subproject at do_configure.
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
There is only one provider, these should not be virtual.
Signed-off-by: Andrew Davis <afd@ti.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
- pipewire is by default built with lots of dependencies.
Reduce them for native/nativesdk
- add a backport patch to fix pipewire support in libsdl2
- allow native/nativesdk build
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a bugfix release. Notably, this makes pw-dot work again - it
required workarounds via pw-dump to output a non-empty dot graph in 0.3.49.
Full changelog:
https://gitlab.freedesktop.org/pipewire/pipewire/-/releases/0.3.50
0001-meson-Add-option-to-enable-disable-legacy-RTKit-modu.patch
is no no longer needed since it has been merged and is part of 0.3.50.
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ChangeLogs can be found here:
https://gitlab.freedesktop.org/pipewire/pipewire/-/releases/0.3.46
https://gitlab.freedesktop.org/pipewire/pipewire/-/releases/0.3.47
https://gitlab.freedesktop.org/pipewire/pipewire/-/releases/0.3.48
https://gitlab.freedesktop.org/pipewire/pipewire/-/releases/0.3.49
Main recipe change is about the RTKit module, which was deprecated and
replaced by the new RT module. The recipe disables the legacy rtkit
module (which exists for backwards compatibility with older existing
PipeWire installations that use rtkit in their configuration files).
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If PACKAGECONFIG contains pipewire-jack the following error was seen:
ERROR: pipewire-0.3.45-r0 do_package: QA Issue: pipewire: Files/directories were installed but not shipped in any package:
/usr/bin/pw-jack
/usr/share/pipewire/minimal.conf
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
pipewire: 2 installed and not shipped files. [installed-vs-shipped]
File /usr/bin/pw-jack is added to pipewire-jack package.
The removal of minimal.conf was conditional to not configuring 'pipewire-jack'.
Can not see any reason to make it conditional on that specific option and make
it always removed to avoid packaging error.
Errors introduced in 687483235b5542401245711cb610ec327b33c403
Signed-off-by: Peter Bergin <peter@berginkonsult.se>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Recipe changes:
* media-session is no longer built, since it is now a separate subproject,
and it is considered obsolete; WirePlumber is the alternative that
is recommended by upstream; see:
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/d2880ed23aa6e3df7038b311145f390e4f3428ef/README.md#pipewire-media-session
* new pipewire-v4l2 package that provides a virtual V4L2; contains
a new "pw-v4l2" script to LD_PRELOAD libpw-v4l2.so
device which transmits media data from/to a PipeWire graph
* pw-top needs ncurses, which is why this is added to DEPENDS
* pw-tools contains individual binary names to be able to separate
the pw-v4l2 script from pw-tools
* libcamera and ffmpeg features are usable now
* remove unnecessary EXTRA_OEMESON switches for enabling plugins
that are already on by default
* add avahi, libcanberra, webrtc-echo-cancelling, bluez-aac, libusb
packageconfigs
* fix systemd-system-dir path and explicitly set systemd-user-dir path
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
| |
This patch updates SRC_URIs using git to include branch=master if no branch is set
and also to use protocol=https for github urls as generated by the conversion script
in OE-Core.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pipewire project have config option to enable installation of systemd
user and/or system services. Before update of pipewire to current version
(02de7746) only system service files was added, after update both user
and system service files was added. This commit will make it possible to
configure which service files that is wanted. Default PACKAGECONFIG is
to add systemd service files as it was before version upgrade.
Yocto systemd class currently does not handle user service files during package
and those files are only installed in rootfs but user service is not enabled as a
system service is.
Another use case is where you want your own service files and can disable the
default ones from pipewire and add your own in a bbappend.
Signed-off-by: Peter Bergin <peter@berginkonsult.se>
|
|
|
|
|
|
|
|
|
| |
For the package pipewire-media-session there is a service file
specified with SYSTEMD_SERVICE:${PN}-media-session but the package
was not added to SYSTEMD_PACKAGES and not handled in do_package by
systemd bbclass.
Signed-off-by: Peter Bergin <peter@berginkonsult.se>
|
|
|
|
|
|
|
| |
The manpages feature is disabled and can not be configured through
PACKAGECONFIG. No need to inherit manpages bbclass.
Signed-off-by: Peter Bergin <peter@berginkonsult.se>
|
|
|
|
|
|
|
|
|
|
|
| |
Enable systemd user services as well as they are required for user
pipewire sessions
Turn pw-cat into a packageconfig
Enable systemd-user-service only for systemd
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Recipes shouldn't use the "virtual/" string in RPROVIDES and RDEPENDS.
That's confusing because "virtual/" has no special meaning in
RPROVIDES and RDEPENDS (unlike in PROVIDES and DEPENDS).
Instead, using "virtual-" instead of "virtual/"
as already done in the glibc recipe in OE-core
Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
This is the result of automated script (0.9.1) conversion:
oe-core/scripts/contrib/convert-overrides.py .
converting the metadata to use ":" as the override character instead of "_".
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a bugfix release that is API and ABI compatible
with previous 0.3.x releases.
- Fixes for alsa-lib 1.2.5
- New pulseaudio modules: module-avahi-zeroconf,
module-pipe-source, module-roc-sink, module-roc-source.
- JACK has seen massive stability improvements. Locking
and correctness wrt to callbacks has been reworked. Also
thread priorities have improved.
- Handle various crashes and lockups when running out of file
descriptors.
- Bluetooth now uses a hardware database to disable
non-working features on listed devices.
- Scheduling quantum and rate can now be changed dynamically
with pw-metadata.
- Many bugfixes and improvements.
- Improve cleanup of context in error cases.
- There is now a pw-test framework for improved unit tests.
- Improve property serialization to valid JSON.
- Fix some macros to work with better with coverity.
- Metadata permissions are checked now. Clients need the
M permission on an object to be able to set metadata for
it.
- The core metadata object will now remove metadata for
removed objects, the implementor does not need to worry
about that anymore.
- Audioadapter will now follow the rate of the graph with
the resampler adjusting itself dynamically.
- Core now has a metadata implementation helper. A context
will expose a metadata with settings that can be changed
at runtime. This can be used to change the loglevel or
graph quantum and samplerate on the fly.
- An infinite loop was fixed in the audio converter.
- Handle out-of-fds more gracefully. Handle truncated
control data by dropping the client connection.
- Fix profiler crash with many streams.
- Improve latency handling in pw-filter. There is now a
default handler and a ProcessLatency parameter to simplify
latency reporting.
- Latency reporting was improved in devices and streams.
- And example sink/source was added.
- hardware mute and volume are now properties on the
Route param to make things easier.
- More fixes for alsa-ucm 1.2.5.
- spa-json-dump now properly encodes string and keys.
- pw-dump now shows the correct subject of the metadata.
- Ensure the node.description is set, some applications
crash otherwise (TeamSpeak).
- Module loading and unloading was improved.
- module-avahi-zeroconf was implemented.
- module-pipe-source was implemented
- module-roc-sink and module-roc-source was implemented.
- The maximum amount of connections has been limited to 64,
like pulseaudio.
- Handle out-of-fds more gracefully.
- Fix overflow of read/write pointers.
- Source and sink state are now decoupled from the monitor
state and will report IDLE when not playing anything.
- Port switching should now happen to/from the port that
actually changed.
- The locking was reviewed. All callbacks are now emited
from the PipeWire thread with the lock released and
the process function will be disabled for the duration
of the callback. This ensures that no two callbacks are
called at the same time.
- Improve internal consistency and try to never call callbacks
with invalid objects.
- Monitor port can now be accessed with system:monitor_%d
- client threads are now created with SCHED_FIFO and module-rt
is used to create the other RT threads. This should avoid
SIGKILL from RTKit in some cases.
- Various bugfixes to improve connections to devices.
- Handle delayed UUID connection.
- There is now a hardware database that can disable features
in listed devices.
- Use libusb to detect availability of mSBC.
- The virtual device name can now also contain a media role.
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This is a bugfix upgrade.
Changelog:
https://gitlab.freedesktop.org/pipewire/pipewire/-/releases/0.3.30
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
| |
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
Due to 'stealing' from jack & pulseaudio the license was changed
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a bugfix upgrade with some necessary changes to the recipe itself.
Changelogs:
https://gitlab.freedesktop.org/pipewire/pipewire/-/releases/0.3.23
https://gitlab.freedesktop.org/pipewire/pipewire/-/releases/0.3.24
Fixes in the recipe itself:
- meson_options.txt now uses features for everything, so the
"=true" and "=false" packageconfig args were replaced by
"=enabled" and "=disabled", respectively
- "docs" packageconfig was incorrectly adding doxygen instead
of doxygen-native to the DEPENDS variable
- "man" packageconfig removed, since manpage generation requires
xmltoman, and that tool is not available
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Use a versioned recipe instead of _git
* Add more packageconfigs: alsa, docs, sdl2, sndfile, v4l2,
pipewire-alsa, pipewire-jack
* Split SPA and module packages dynamically to generate one package for
each SPA plugin and for each module
* Split pipewire library, shim PulseAudio daemon, main tools & SPA tools,
pipewire-alsa, pipewire-jack, ALSA card profiles, GStreamer plugin,
and example session manager into separate packages
* Set up a "pipewire" user and group to run the PipeWire daemon with that
user instead of root
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|