summaryrefslogtreecommitdiffstats
path: root/meta-multimedia/recipes-multimedia/pipewire
Commit message (Collapse)AuthorAgeFilesLines
* pipewire: update 0.3.66 -> 0.3.67Markus Volk2023-03-131-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* pipewire: update 0.3.65 -> 0.3.66Markus Volk2023-02-191-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* pipewire-media-session: update 0.4.1 -> 0.4.2Markus Volk2023-02-111-1/+1
| | | | | | | | | | | | | | | | | | | 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>
* pipewire: update 0.3.64 -> 0.3.65Markus Volk2023-02-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* pipewire: Do not split modules using PACKAGES_DYNAMIC for native caseKhem Raj2023-02-021-0/+1
| | | | | | | | | | | | | 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>
* pipewire: Split dymanic modules to target recipe aloneKhem Raj2023-01-281-0/+3
| | | | | | | | | | 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-media-session: Use PW_ENABLE_DEPRECATEDKhem Raj2023-01-211-1/+2
| | | | | | | | | | 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>
* pipewire: update 0.3.63 -> 0.3.64Markus Volk2023-01-171-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* pipewire: update 0.3.62 -> 0.3.63Markus Volk2022-12-231-2/+3
| | | | | Signed-off-by: Markus Volk <f_l_k@t-online.de> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* pipewire: update 0.3.61 -> 0.3.62Markus Volk2022-12-091-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: upgrade 0.3.60 -> 0.3.61Markus Volk2022-11-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* pipewire: upgrade 0.3.59 -> 0.3.60Markus Volk2022-11-231-2/+2
| | | | | | | - 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>
* pipewire: upgrade 0.3.57 -> 0.3.59Markus Volk2022-10-151-1/+1
| | | | | Signed-off-by: Markus Volk <f_l_k@t-online.de> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* pipewire: update 0.3.56 -> 0.3.57Markus Volk2022-09-082-60/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* pipewire: improve runtime dependency settingsMarkus Volk2022-08-271-3/+3
| | | | | | | | - 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>
* pipewire: update to v0.3.56Markus Volk2022-08-224-61/+117
| | | | | | | | | | 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>
* libsdl: The libsdl and libsdl2 are not virtualAndrew Davis2022-07-081-1/+1
| | | | | | | 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: reduce native/nativesdk dependencies; add backport patchMarkus Volk2022-05-242-2/+54
| | | | | | | | | | - 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>
* pipewire: Upgrade to version 0.3.50Carlos Rafael Giani2022-04-262-48/+2
| | | | | | | | | | | | | | | 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>
* pipewire: Upgrade to version 0.3.49Carlos Rafael Giani2022-03-302-4/+55
| | | | | | | | | | | | | | | | | 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>
* recipes: Update LICENSE variable to use SPDX license identifiersKhem Raj2022-03-041-1/+1
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* pipewire: fix build error when pipewire-jack is usedPeter Bergin2022-02-111-3/+5
| | | | | | | | | | | | | | | | | | | | | 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>
* pipewire: Upgrade to 0.3.45Carlos Rafael Giani2022-02-081-38/+79
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* recipes: Update SRC_URI branch and protocolsRichard Purdie2021-11-031-1/+1
| | | | | | | | | 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: rework PACKAGECONFIG for systemd service filesPeter Bergin2021-10-071-10/+10
| | | | | | | | | | | | | | | | | | 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>
* pipewire: also handle pipewire-media-session in systemd classPeter Bergin2021-10-071-0/+2
| | | | | | | | | 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>
* pipewire: remove manpages classPeter Bergin2021-10-071-1/+1
| | | | | | | 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>
* pipewire: Upgrade to 0.3.34Khem Raj2021-09-011-4/+6
| | | | | | | | | | | 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>
* meta-multimedia: stop using "virtual/" in RPROVIDES and RDEPENDSMichael Opdenacker2021-09-011-1/+1
| | | | | | | | | | | | | 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>
* Convert to new override syntaxMartin Jansa2021-08-032-49/+49
| | | | | | | | | | 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>
* pipewire: upgrade 0.3.30 -> 0-3-31Andreas Müller2021-07-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* pipewire: Upgrade to 0.3.30Carlos Rafael Giani2021-06-091-1/+1
| | | | | | | | | | | 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>
* pipewire: Add filter-chain files to modules-filter-chain packageCarlos Rafael Giani2021-06-091-1/+5
| | | | | Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* pipewire: upgrade 0.3.24 -> 0.3.29Andreas Müller2021-06-051-16/+17
| | | | | | | 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>
* pipewire: Package systemd unit file for pipewire-media-sessionKhem Raj2021-03-211-0/+2
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* pipewire: Upgrade to 0.3.24Carlos Rafael Giani2021-03-201-19/+24
| | | | | | | | | | | | | | | | | | | | | | 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>
* pipewire: Rework 0.3 recipe and upgrade to 0.3.22Carlos Rafael Giani2021-03-032-77/+273
| | | | | | | | | | | | | | | | * 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>
* pipewire: Move to meta-multimediaCarlos Rafael Giani2021-03-032-0/+142
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org> Signed-off-by: Khem Raj <raj.khem@gmail.com>