|
|
|
|
Changelog for pipewire-devel-1.2.0+287~git20241004.0db2171cd-1.1.x86_64.rpm :
* Sat Oct 05 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+287~git20241004.0db2171cd: * alsa: dynamically adjust the DLL bandwidth * tools: improve profiler -J output * Fri Oct 04 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+285~git20241002.e6bcc415f: * acp: Trim trailing whitespace in monitor name from HDMI ELD * impl-node: pass the RequestProcess command around as is * stream: add pw_stream_emit_event() * spa: fix event pod type * keys: improve comments and indentation * filter-chain: improve sofa plugin debug * loop: remove extra allocation * loop: free tss from the thread calling impl::clear * modules: fix flag setup in combine-stream * acp: do not overwrite properties of PCM with that of the card * filter-chain: accumulate node param changes * loop: improve tss cleanup * impl-node: make exported nodes complete state change sync * examples: improve the ring2 example * examples: add another ringbuffer example * pulse-server: set pulse.corked on streams * module-rtp: don\'t confuse time and samples * spa: initialize all fields explicitly * fmt-ops: add RVV optimizations for s32_to_f32d * Fri Sep 27 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+266~git20240927.0e5d8fdc3: * po: fix translation * properties: Fix memory leak * Thu Sep 26 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+264~git20240926.d8f0cc781: * jack: take the right locks when modifying globals. * jack: free ports and cached objects * module-rt: first join and then free memory * connection: fix fd leaks and confusion * fmt-ops: add RVV optimizations for f32d_to_s32 * jack: use the CPU max_alignment * rtp-sap: make the receive socket listen only to the configured sap.ip * rtp-sap: announce the source IP as the \"connection\" address in unicast * profiler: Add an option to reduce sampling interval * fmt-ops: add RVV optimizations for s16_to_f32d * RISCV: Improve scalar computation of f32d_to_s16 * spa: avoid C23 empty initializers in the headers * Wed Sep 25 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+252~git20240925.d42bfa56b: * acp: sync the mixer after selecting the port * jack: Improve transport BBT handling * acp: add api.alsa.disable-mixer-path * video-src: simplify the tag param construction * stream: emit the Pause command early * impl-link: also handle unprepared active links * docs: update pw-cli docs for do_link * pw-cli: implement unload_module * acp: disable path_select when using soft-mixer * examples: improve the ringbuffer example a little * pulse-server: add quirk to block record and playback streams * json-pod: add error checking version of json to pod * fmt-ops: add RVV optimizations for f32d_s16 * fmt-ops: add RVV optimizations for f32d_s16d * Fix test-functional compilation by including necessary header * Fix test-loop on FreeBSD by linking to epoll-shim * Use if_indextoname() instead of less portable ioctl(SIOCGIFNAME) * Move the ifr_ifindex FreeBSD definition into a header file to reduce code duplication * Include on FreeBSD to access pthread_setaffinity * meson: Search for and link to stdthreads * Use the \'thrd_success\' constant when checking for tss_create result * json-pod: return errors from spa_json_next() * ci: add elogind to alpine CI * spa: use a separate logind dependency separate from systemd * examples: free the event source * examples: add audio source with ringbuffer * stream: improve the docs * benchmark-fmt-ops: Fix test arg for f32_s16 * po: Update Slovenian (sl) translation * Fri Sep 20 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+223~git20240919.c07663b23: * impl-node: only process RequestProcess after state change * stream: update state based on node * impl-link: improve debug, add the node async state * modules: don\'t assume network addresses are numeric * spa: support: use feature macro from `config.h` * spa: alsa: avoid potential uninitialized variable use * pulse-server: calculate event mask from facility and type * spa: make helper to init spa_audio_info_raw from dict * fmt-ops: add R-V V optimizations for f32_s16 * spa/support: implement RISCV V CPU detection * json: add helper function to parse channel positions * Tue Sep 17 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+212~git20240917.911a601b9: * impl-node: only let the server send RequestProcess commands * spa: v4l2: Fix v4l2 SPA not working on camera with relative controls * doc: in user-facing config examples, indicate which file it goes into * gst: Stop trying to use DMA_DRM with MOD_INVALID * adapter: also forward the RequestProcess events * types: add function to convert audio channel short name to type * json: add and use spa_json_str_object_find() * json: rename json files * json: move utils to separate file * spa: add spa_json_object_next * spa: add spa_json_begin_array/object and relaxed versions * spa: add spa_json_begin * Thu Sep 12 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+200~git20240911.08057e032: * gst: deviceprovider: Signal default devices * meson: Fix typo in GStreamer dependencies mapping * spa: v4l2: Use systemd-logind to listen for access changes * spa: v4l2: Remove start_inotify() call from impl_on_fd_events() * Update Polish translation * module-raop: add ProcessLatency support * params: add function to compare process_latency_info * module-loopback: add ProcessLatency support * stream: Add support for setting ProcessLatency * module-rtp-sap: Make sure we don\'t publish a null refclk * audioadapter: clear the handle as well to avoid leaks * audioadapter: improve convert plugin loader * jack: emit buffer_size during jack_activate() * jack: improve debug * videoadapter: sync with audioadapter * audioadapter: dynamically load the audio converter * audioadapter: improve format negiotiation * impl-link: silence some debug * adapter: improve format parsing some more * audioadapter: use generic audio format parsing * videoconvert: add an ffmpeg based video converter * stream: enable videoadapter in all cases * videoadapter: sync with audio adapter * audioadapter: pass the config mode around * alsa-pcm: unlink pcm when driver is changed to a different pcm * audioadapter: handle port flags better * global: avoid recursive destroy calls * v4l2: queue dropped first buffer again * format: SPA_POD_Fraction takes a pointer to a fraction * audioadapter: move some checks around * audioadapter: remove redundant statement * impl-link: handle errors better * libcamera: reset ringbuffer when clearing buffers * videoconvert: Start dummy plugin in passthrough mode * client.conf: Search videoconvert spa plugin * videoconvert: Add dummy plugin * jack: Implement jack_get_client_pid() * jack: make jackctl_server_close() succeed (still dummy) * jack: make jackctl_server_stop() succeed (still dummy) * jack: Fix crash when pw_context_connect() fails in jack_client_open() * jack: add jackserver.pc * jack: set current pipewire version in jack.pc file * modules-netjack2-driver: add source.ip and source.port * modules: improve docs some more for snapcast-discover * module-rtp: More u64 format fixes * Wed Aug 28 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+155~git20240828.0956fc088: * tools: try to parse float values better * modules: for format string for u64 * jack: use pipewire version for minor/micro/proto * docs: document negotiation of explicit sync * modules: add an example of a downmix source in loopback * module-rtp: Clamp buffer fill level check on send side * module-rtp: Allow aes67 send with a non PTP clock * module-rtp: Increase write timestamp tolerance * modules: remove FIXME * modules: implement mixing in combine stream * modules: improve node names of combine-stream * alsa: improve midi port.name * modules: improve snapcast discover docs * pw-cat: add support for streaming * midifile: remove MIDI1 message requirement * midifile: use the meta.offset to get to the metadata * pw-cat: add dsd and encoded long options * tools: also list some midi properties * pw-cat: redirect verbose output to stderr * jack: ignore port_set_mix INVALID for destroyed ports * jack: improve error reporting * Wed Aug 21 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+134~git20240821.b5d0532a7: * impl-node: improve compatibility with older clients * doc: expand on the syncobj negotiation for sync_timeline * Revert \"spa: support: loop: do not call control hooks on blocking invoke\" * doc: add some small docs updates * module-rtp-sap: Initialise send fd when first needed * modules-sap: fix uninitialized variable when close in error * m-rtp-sap: add sap.announcer option to disable the send socket * impl-node: only increment pending when not async * Wed Aug 14 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+126~git20240813.d4de97a47: * impl-link: fix error message memory leak * bluez5: backend-native: Handle AT+CCWA command * pw-top: Limit length of formatted shortname to resolve build error * Thu Aug 08 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+123~git20240808.89bf8b856: * impl-node: improve driver activation counter calculation * impl-node: Do xrun check a bit better * impl-node: always INACTIVATE a node when stopping * impl-node: improve debug * impl-node: improve xrun debug * impl-node: don\'t overwrite node state when finished * resampler: Precompute some common filter coefficients * spa: v4l2: Remove start_watching_device() loop from start_inotify() * spa: v4l2: call start_monitor() before enum_devices() * ci: Add workflow rules to avoid duplicate branch/MR pipelines * Tue Aug 06 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+113~git20240806.00a8ce8db: * spa: libcamera: Increase devices_str[] buffer size * loop: don\'t usleep when queue is full * spa: support: loop: do not call control hooks on blocking invoke * spa-node: always set clock.quantum-limit property * po: add slovenian translation * alsa: add DSD format support * module-ffado: implement freewheeling * module-ffado: separate rt booleans from non-rt * conf: increase priority of dummy and freewheel driver * bluez5: Parse \'broadcasting\' state * modules: use the right module name in the docs * alsa-pcm: Lower the frequency of USB gadget rate updates * meson: allow fallback to find_library for readline detection * pw-cli: support arbitrary large params and commands * module-ffado: add some docs * module-ffado: keep the configured rate in sync with params * module-ffado: Improve samplerate and periodsize handling * Wed Jul 31 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+96~git20240730.f4b285477: * impl-node: include config.h to define HAVE_MALLOC_TRIM * Tue Jul 30 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+95~git20240730.5cc7e583e: * impl-node: reset pending state when moving driving node * development is 1.3.0 * loop: release queue lock before calling invoke function * doc: document node/device disabled property * doc: move configuration index to a separate page * doc: document some more device properties * require newer alsa 1.2.10 for UMP support * alsa: fix compilation wirh -UFASTPATH * ump: handle f0 .. f0 f7 .. f0 f7 .. f7 packets * doc: update some MIDI docs * midifile: add support for UMP * modules: accept and produce UMP only * audioconvert: only accept UMP on the control port * alsa: add UMP support * filter: Use the stream DSP format to negotiate control types * control: add support for mixing to UMP * jack: Add UMP to MIDI conversions * spa: add some helpers to convert MIDI to and from UMP * spa: Add UMP control type * Mon Jul 29 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+76~git20240729.bb82b2e49: * impl-port: improve IO_Buffers management on ports * audioconvert: set IO_Buffers only when buffers are negotiated * doc: rename pipewire-devices.7 and move stream properties into it * doc: drop the links to configuration wiki pages * bluez5: Update default sync_factor * CI: build docs also for 1.2 branch, and show them on main page * Mon Jul 22 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+70~git20240722.57b495f77: * module-netjack2: support local.ifname for manager * modules: fix doc * impl-link: make async link when on e of the nodes is async * loop: signal when queue is full * module-rtp: fix ptime and target_buffer checks * link-factory: destroy all links in error * module-netjack2: implement netjack2.connect * module-netjack2: stop follower when setup io errors out * module-netjack2: improve port names * jack: jack_get_time() returns microseconds * jack: don\'t check timestamps in mixdown * fix compilation * modules: don\'t unload module on stream error * impl-node: always INACTIVATE when stopping * spa: alsa: Fix stale function name in comment * module-jack-tunnel: Properly propagate error from dlopen() * spa: libcamera: uncomment setting integer controls * spa: match camera property types with libcamera * pw-profiler: Move clients\' legend away from graph data * pw-profiler: Add more explanatory text to profile graphs * impl-node: Document timing-related pw_node_activation fields * module-rtp: Make max SAP sessions configurable * bluez5: backend-native: Send error for not supported event only as AG * pw-profiler: add -n and -J options * Fri Jul 12 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+46~git20240712.d4515378e: * node-driver: 5 seconds of freewheel timeout is enough * node: add a clock XRUN_RECOVER flag * module-raop: remove unused deprecated header * Tue Jul 09 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+43~git20240709.4baa94fce: * thread: make it possible to set a custom create function * v4l2: Improve format and control enumeration * v4l2: use a dynamic pod builder to handle larger PropInfo * module-snapcast: don\'t hardcode the JSON message id * module-rtp: Minor robustness improvement to PTP socket reading * module-rtp: Allow setting session ID/version as parameters * module-rtp: Allow overriding session version * module-rtp: Allow overriding session ID * module-protocol-simple: use interface address as server address * alsa-card-profiles: reduce priority of HDMI/AC3 profiles * spa: alsa: recognize plug+a52 as a52 device strings * spa: utils: explicitly preserve errno in spa_cleanup handlers * spa: alsa: fix multiple %f in node device strings of nodes * conf: fix context.exec args parsing * module-rtp: Update SAP session if stream properties change * Thu Jul 04 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+28~git20240703.2d0bc982b: * impl-node: set INACTIVE state on server * module-rtp: Allow updating sess.name from params * impl-node: disable async for driver nodes * gst: stream: Destroy stream before clearing variable * Tue Jul 02 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0+24~git20240702.226440382: * gst: src: Reset transform on stream stop * Rename sample config that prevents checkout on Windows * Define `setlinebuf` for MSVC * Add spa/utils/endian.h * Avoid using interface as a variable name * Port videotestsrc to LoopUtils * tests: don\'t iterate all possible values * context: improve sync group handling some more * context: Fix node collect with groups and sync enabled * module-raop: only set softVolume when valid * impl-node: fix required state for async driver nodes * alsa: remove unused variables * treewide: fix more `-Wformat` issues * meson: fix conflicting use of feature-based dependency lookups * loop: fix update_timer handling of solo repeat argument * alsa-pcm: add basic bind-ctl write functionality * meson.build: enable `-Werror=format` * pw-container: use smaller path for temporary file * spa: utils: use `SPA_N_ELEMENTS` in for-each macros * audioconvert: avoid even more precision loss in F32 to S32 conversion * audioconvert: avoid even more precision loss in S32 to F32 conversion * audioconvert: somewhat avoid precision loss in S32 to F32 conversion * audioconvert: somewhat avoid precision loss in F32 to S32 conversion * audioconvert: introduce s25_32 type, f32<->s25 cast is lossless * Thu Jun 27 2024 virtuousfoxAATTgmail.com- Update to version 1.2.0~git20240627.7b4c0dd5e: * 1.2 * impl-node: increment async driver nodes required field * pipewire: module-raop-sink: use `uint32_t` for sample rate * module-rtp/stream: Fix setting marker_on_first prop for RAOP * module-raop-sink: Fix setting sess.ts-direct prop * spa: aec: webrtc: Fix multichannel processing * Tue Jun 25 2024 virtuousfoxAATTgmail.com- Update to version 1.1.83+24~git20240625.7674b15fa: * pipewire-v4l2: move `open *()` flag check into function * impl-port: add port.group property * Update oc.po * pw-cli: Dump object info on events * Fri Jun 21 2024 virtuousfoxAATTgmail.com- Update to version 1.1.83+20~git20240621.8cd857733: * module-rtp: Check if packet receive works to track receiving state * bluez5: make node.group valid JSON * bluez5: bap: Rework broadcast code length check * bluez5: bap: Fix parsing of broadcast code * gst: pipewiresink: wait for activated buffer pool before updating buffers * gst: pipewiresink: extract gst_pipewire_sink_update_params * gst: pipewirepool: print buffer type with numeric value * pipewire: module-roc-sink: explicity specify sender packet encoding * spa: revert peer_enum_params node event again * gst: pipewiresink: decrease log level of on_process to LOG * gst: pipewiresink: print stream state as string * module-rtp: Drop redundant include * module-rtp: Propagate cleanup.sec to module-rtp-source * module-rtp: Set receiving state on stream as a property * Tue Jun 18 2024 virtuousfoxAATTgmail.com- Update to version 1.1.83+6~git20240618.41691f8bc: * module-vban: fix some implicit float conversions * module-rtp: fix fmodf usage * modules: fix compilation * spa: fix volume plugin compilation * fix compilation some more * vulkan: fix compilation * 1.1.83 * Fix compilation with -Werror=float-conversion * impl-node: move node_peer functions to impl-node * impl-node: set active_driver_id * gst: src: disable active state when only going to PAUSED * Tue Jun 18 2024 virtuousfoxAATTgmail.com- Update to version 1.1.82+69~git20240617.a07f73ce8: * impl-node: add more backwards compat * spa: bluez: fix crash when receiving signal from modemmanager * impl-node: add compat with old nodes * impl-node: handle node <-> driver links with node_peer * bluez5: bap: Use a string instead of int array to set Broadcast code * Fri Jun 14 2024 virtuousfoxAATTgmail.com- Update to version 1.1.82+64~git20240613.b7af52e3f: * impl-node: partially revert target rework * doc: clarify the dither.noise * buffer: add that the mapoffset is page aligned * examples: fix mapoffset in examples * pw-dump: sync on metadata change so that changes are displayed soon * Wed Jun 12 2024 virtuousfoxAATTgmail.com- Update to version 1.1.82+59~git20240612.d04a28dae: * impl-node: clean up the configuration of the Position io area * jack: queue free of old mem in node_set_io as well * gst: sink: Disable active state setting when going to PAUSED * gst: fix JPEG format * gst: pipewiresrc: move correct brace under HAVE_GSTREAMER_DMA_DRM * jack: don\'t call free_link from the data thread * pw-link: avoid crash when proxy was already destroyed * pw-link: avoid memleak when proxy create fails * gst: use G_DECLARE_FINAL_TYPE for all classes * gst: reference the GstPipeWireStream from the pool & the clock * gst: factor out the stream management and some common variables in a new class * v4l2: improve logging a little * bluez5: bap: Enable control of Broadcast Encryption * meson: fix webrtc-audio-processing dependency ignoring configure args * Mon Jun 10 2024 virtuousfoxAATTgmail.com- Update to version 1.1.82+45~git20240610.c85e7cadf: * impl-node: async driver nodes need to activate targets * Revert \"context: add loader.rules\" * module-spa: evaluate node and device rules * JACK: remove useless io_data member * JACK: check the io of the right cycle * context: add loader.rules * add alsa plugin profiles for HDMI/AC3 (Fix #3832) * v4l2: support meta_videotransform on buffers * spa: add enum type info for transformation * alsa-pcm: check if bound ctls are valid before using it. * Fixed two small typoes in documentation: conneced -> connected. * v4l2: fix string size * impl-node: improve xrun debug * impl-node: add backwards compat for old clients * Rework how targets are managed * loop: clarify the pw_main_loop_run returned value * jack: rename a function * jack: update the eventfd from the data loop * module-ffado: keep track of transfered data * profiler: Decrease memory usage * Add broadcast sink support for multiple BISes * ci: bump fedora version to 40 and alpine to 3.20 * gst: src: Improve DMA_DRM caps selection * gst: Add helper to fixate DMA_DRM caps * gst: src: Indentation fix * gst: sink: post an element error when all buffers are removed abruptly * gst: pool: remove unused variable of unknown type * gst: sink: improve debug messages related to buffer management * gst: pool: add explicit remove_buffer method * gst: pipewirepool: remove dead code * bluez5: bap: Support Mono Channel Allocation * impl-node: update required state atomically * gst: sink: Fix some object-less debug messages * gst/src: Check for 0 framerate before setting duration * stream: Fix reference to pw_time.now in pw_stream_get_nsec() docs * gst/src: Set buffer duration * alsa: Use hw:X for accessing card ctl * Mon May 27 2024 virtuousfoxAATTgmail.com- Update to version 1.1.82+8~git20240527.5be2f5e09: * Resolve problems found on review * Apply 1 suggestion(s) to 1 file(s) * Remove device and transport for broadcast source on interfaces_removed * Add support for the broadcast source multiple BIS implementation in BlueZ. * impl-node: resume peer targets when unlinking * impl-node: some cleanups * module-ffado: set next_nsec to something better * gst: Check for video/ caps before parsing for info * Fri May 24 2024 virtuousfoxAATTgmail.com- Update to version 1.1.82~git20240524.7eeb657d3: * 1.1.82 * snapcast-discover: add snapcast discover module * protocol-simple: remove old debug line * impl-node: don\'t move unprepared nodes * Wed May 22 2024 virtuousfoxAATTgmail.com- Update to version 1.1.81+8~git20240522.ccb9f8934: * ffado: add priority.session property * protocol-simple: handle IPv6 * Fix typos * acp: handle some errors better * spa: fix integer overflows etc. in spa_pod_compare_value * bluez5: use initial SCO RX wait workaround only for USB controllers * Thu May 16 2024 virtuousfoxAATTgmail.com- Update to version 1.1.81+2~git20240516.b3bd02669: * pipewire: remove `cleanup.h` * NEWS: fix spelling mistake * 1.1.81 * pipewire-v4l2: redirect to correct functions from fortified variants * modules: add options to discover local services as well * impl-port: update added flag from rt thread * raop: use pw_net utils to parse address * pulse-server: message: use union to store event data * pulse-server: client_queue_subscribe_event(): check message allocation * spa: libcamera: remove unused includes * spa: libcamera: remove two unused members * spa: libcamera: remove wrong prefix from log message * spa: libcamera: remove unnecessary snprintf() * spa: libcamera: don\'t calculate id twice * Fix review comments, added METADATA_VALUE_MAX_LEN and removed entry_key in configure_bis. * bluez5: cleanup bluez5.bcast_source.config parsing * bluez: on metadata, parse remove the length field, and deduce the length from the value plus type * Add code to fix problem found at review * bluez: Configure the BlueZ broadcast source * impl-node: Expose driver id in node.props * protocol-simple: add per stream properties and formats * alsa-seq: configure pool sizes better * alsa-seq: warn when receive fails * Sat May 11 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+788~git20240510.cdc150a2c: * jack: copy events to right offset * control: use quantum_limit for midi buffer size * alsa-seq: try to not overflow the output buffer * control: warn when we overflow the control buffer * tools: queue the buffer again in all cases * alsa-seq: handle large control events * alsa-seq: improve midi encode some more * Thu May 09 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+781~git20240509.1c056661b: * alsa-seq: handle fragmented midi messages * control: also handle ANY ports for enum_param * v4l2: add bus_info in v4l2_capability if we have it * impl-node: update rt flags from rt threads * loop: flush items in the order they were added * impl-port: swap io areas instead of doing cycle math * impl-port: input ports read from io cycle & 1 * parametric-equalizer: Use field widths in sscanf * Fix doc build pipeline failing with parametric-equalizer module * doc: update some more * Apply 1 suggestion(s) to 1 file(s) * Restructured overview.dotx * alsa: remove racy atomic operations * Add a module for loading Parametric EQ * doc: document some more audioconvert properties * alsa: use semaphore semantics for the eventfd * pulse-server: add pulse.allow-module-loading option * pulse-server: implement describe-module with core message * spa: libcamera: fix RGB mappings * pw-dump: destroy all objects not just those matching the pattern * pw-dump: fix string memory leak on error * gitattributes: mark test/data/ *.txt as text files * json: fix high surrogate escapes * test: fix loading json test data * alsa: read hw synced ring buffer position when caller is not the same pcm * core: handle import errors better * pw-mon: Add --print-separator option to help streaming parser * stream: copy position before going to STREAMING * conf: an empty condition should evaluate to true * pw-mon: fix type confusion in core event handler * treewide: fix C++20 compilation error wrt. designated initializers * gst: fix stream params memory leak * context: use first data-loop class when unset * gst: handle some more errors * pulse-server: show warning about snap kernel features only once * treewide: fix errno assignments * impl-node: ensure same data loop inside the node * impl-node: optimize invoke usage * remove from driver in driver data-loop * jack: pass client to get_mix_buffer instead of port * stream: only overwite node.loop.class when unset * alsa: add sync.id in acp properties * alsa-pcm: don\'t force quantum for iec958 formats * loop: improve in_thread handling of invoke queue * loop: create a per-thread queue * loop: move invoke queue to separate object * journal: prepend code location to messages at debug log levels * module-rt: fix compiler warning * filter-chain: fix arguments of calloc * combine-stream tag forward * Add album to tag metadata * test: add two minimal tests for `pw_strv_parse()` * pipewire: utils: pw_strv_parse(): fix freeing in case of error * conf: handle array of arguments in context.exec * utils: improve pw_strv_parse * doc: Some clarifications in Overview * doc: Add more details in the Overview section * impl-node: avoid bitfield races * impl-node: remove redundant variable * meta: add explicit sync metadata and data type * client-node: simplify some things * context: delay starting the loop until acquired * context: use acquire logic to fill data-loop in support * context: handle NULL data loops * treewide: fix some format string issues * conf: warn when match actions are missing * meson.build: add `-Werror=incompatible-pointer-types` * module-protocol-simple: handle \'node.name\' property * doc: fix workaround for old doxygen versions * context: only use FNM_EXTMATCH when defined * thread: use pthread_setaffinity_np * keys: add and use some loop keys * module-ffado: only start after ports are configured * stream: add functions to get the assigned data loop * modules: use acquire/release loop * loop: move the loop name to pw_loop * context: reuse logic for pw_context_get_data_loop * data-loop: add functions to get name and class * context: fill basic properties early * impl-port: only go through mixer for IO * combine-stream: fix latency-compensate with resample.disabled=true * spa: proxy tag and latency to peer of the mixer * context: add support for multiple data loops * profiler: remove unused data-loop * data-loop: support custom name and affinity * thread: add support for thread affinity * context: remove redundant variable * Thu Apr 18 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+694~git20240418.e1e0a886d: * stream: improve async handling * Thu Apr 18 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+693~git20240418.34be6c76a: * v4l2: fix printf format * spa: v4l2: encode device id into a json array * spa: libcamera: encode device ids into a json array * impl-node: implement async scheduling * spa: add SPA_IO_AsyncBuffers * impl-port: query all params through the mixer * impl-link: log error when activate fails * impl-port: implement port_enum_param on mixers * node: add an event to enumerate the peer port params * impl-port: set position io on the mixer nodes * spa: give meaning to port_enum_params with SPA_ID_INVALID port_id * impl-node: add cycle to debug * impl-port: avoid doing work when the port is destroyed * impl-port: refactor check_params * impl-port: use 0 size when clearing IO * stream: log a warning when media.class and direction mismatch * rtp_stream: Use the log topic of the module * module-loopback: only enable delay with valid rate and channels * properties: only count valid property updates * module-rtp-sink: Send all remaining packets when stopping * pulse-server: use `memcpy()` to write string into message * pulse-server: message_dump(): fix `format_info` memory leak * pulse-server: ignore unsaveable values when deserializing property list * pulse-server: stricter length checking when deserializing property list * alsa: fix race when updating the eventfd * Tue Apr 16 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+668~git20240415.232f4f01e: * protocol-native: fail when security context init fails * tests: don\'t crash when security context is not available * audioconvert: also clamp monitor volume to min/max * pipewire: document and improve -v option * doc: add -P option to docs * combine-stream: actually make use of resample.disable * combine-stream: check module arguments for syntax errors * Sat Apr 13 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+661~git20240413.cd166ac89: * bluez5: don\'t use spa_invoke from data loop to main loop * bluez: initialize variable to avoid warning * bluez5: iso-io: track and apply corrections to tx latency * bluez5: iso-io: drop RX data when source is not running * bluez5: move spa_bt_ptp to rate-control.h * bluez5: bap: use priority from conf table in PAC selection * Thu Apr 11 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+655~git20240410.66ba147bf: * filter: fix -UFASTPATH compilation * pipewire: add a -P option to set context properties * protocol-native: cleanup when starting a server fails * stream: use the pw_impl_node implementation details * impl-node: improve set_io some more * impl-node: only become driving when we are a driver * mem: MAPPABLE -> UNMAPPABLE * protocol-native: send debug to right topic * gst/src: fix crash when current_caps is NULL * spa: handle empty values better * v4l2: handle empty properties gracefully * client-node: pass the right object to functions * impl-node: keep some state consistent * vulkan: Complete vulkan_pass * vulkan: Cache buffer_type * vulkan: Move vulkan_pass handling to filter * vulkan: Split buffer import into CPU and GPU part * vulkan: Introduce vulkan_pass for blit operations * vulkan: Sync buffers on in and export in blit * vulkan: Export functions to handle implicit_fd * alsa-pcm: set threshold to final value before set_swparams is called * alsa-pcm: start playback immediately if there is start delay set * alsa-pcm: use headroom to calculate minimum available frames for non time scheduling * alsa-pcm: do not allow headroom plus threshold be bigger then the alsa buffer * alsa-compress-offload-device: notify observers when profile changes * alsa-pcm-device: notify observers when profile changes * vulkan: Sync renderer for blit filters * vulkan: Name params * Tue Apr 09 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+627~git20240408.34c832298: * impl-node: count missed wakeups as xruns * impl-node: run recovery cycle immediately * CI: fix pages build stage * alsa-pcm: Fix copy-pasto while listing ctls * ci: Avoid running pages build on merge requests * ci: Switch only/except to rules * ci: Make syntax highlighting a bit happier * impl-node: set_io on the port mixers * impl-node: set info.id as well * impl-node: add pw_impl_node_set_io() * impl-node: improve node activation * impl-node: don\'t report xrun when pending <= 0 * impl-node: fix debug of do_move_nodes * node: add a cycle counter to the position * Wed Apr 03 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+613~git20240403.f36616727: * settings: remove link.min-buffers option again * settings: add link.min-buffers option * client-node: fix array length debug * impl-node: improve xrun handling * module-ffado: add ffado.rtprio and ffado.realtime * Wed Apr 03 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+608~git20240402.986de9252: * buffers: add support for mandatory metadata * buffers: do some cleanups * buffer: add GenericFd memory type * examples: set the MAPPABLE flag for MemFd * mem: add a PW_MEMBLOCK_FLAG_MAPPABLE flag and pass it around * stream: only unmap data that was mapped and mappable. * stream: handle node.name fallback better * Update 90-pipewire-alsa.rules with support for Astro Mixamp Pro TR. * bluez5: bap: determine SDU interval from codec frame duration * bluez5: bap: no need to check for mtu, kernel fragments as needed * CI: put docs from both 1.0 and master on pages * libcamera: add camera rotation property on nodes * gst/src: Avoid unnecessary renegotiations during streaming * gst/src: Cleanups for src_negotiate() * v4l2: Drop the first frame after camera startup * Sat Mar 30 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+593~git20240329.a9911f68a: * client-node: free port io memmap also if port gone * gst: Always use Choice-pod for modifiers * spa: improve null-audio-sink channels * context: add context.modules.allow-empty property * conf: only count modules, objects and exec when added * conf: add more error checks * gst: simplify modifier extraction * gst: Re-enable handling of single long modifiers * properties: rework properties * filter-chain: debug SOFA error codes better * filter-chain: report more parsing errors * json: fix SPA_JSON_STATE * Wed Mar 27 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+581~git20240327.27ccf3203: * spa: fix spelling * spa: deal with non-null terminated strings in spa_error_location * context: make error line debug a little better * spa: improve JSON error reporting in spa-json-dump * test: add tests validating all json conf files * conf: unmap on errors * spa: Improve JSON error reporting * test: fix some compiler warnings * conf: log errors for json content errors * spa-json: return value from spa_json_next() * spa-json: also check for len <= to avoid compiler warning * daemon/conf: fix more JSON syntax * tools: check properties given by user for syntax errors * treewide: check for JSON parse errors * properties: add pw_properties_check_string for checking parse errors * spa: spa-json-dump: read also from stdin, and report syntax errors * spa: json: check object key-value pair parity during parsing * spa: json: allow only ascii in bare values * test: add \"strict\" JSON tests * spa: json: \\x7f is allowed unquoted in JSON * spa: json: propagate parse error in spa_json_container_len * spa: json: more parsing errors & add spa_json_get_error * spa: json: fix string function usage in spa_json_parse_float/int * daemon/conf: fix bad JSON syntax * module-echo-cancel: Don\'t call _run() when inactive * bluez: print a nicer warning when the bluez service is not available * spa plugins: Include Linux headers on Linux only * conf: add some warnings when keys are invalid and ignored * filter-chain: improve json parsing error reporting * module-rtp: save errno before doing pw_log_error * module-rtp: handle state change errors better * client-node: small cleanups * alsa: add option to skip the busy check * examples: add some more debug to video-play * v4l2: set latency on port * log: init topic_init function * tools: print ??? when the quantum is unknown * spa: a quick fix for compiling with -Werror=shadow * module-ffado: add some more debug * module-ffado: make sure we close and open when suspend * Tue Mar 19 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+541~git20240318.0e380de80: * conf: improve matching rules a bit more * utils: use memmove when src and dst can overlap * alsa: improve acp device/node object paths * acp: move acp_dict_lookup to public header * acp: add more properties for the card * module-raop-sink: explicitly include * v4l2: unset _TIME_BITS in addition to _FILE_OFFSET_BITS * Fri Mar 15 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+534~git20240315.2c0d73ab4: * gst: handle latency in the pipewiresrc * gst: refactor some of the param handling * gst: parse the audio rate from caps * include: install new header * tests: cleanup correctly to avoid leaks * protocol-native: clean up security context on unload * tests: add right include for close/unlink/pipe2 * test: handle running without a server * conf: support property rules * conf: handle !null checks * tests: update unit test for added field * gst: fall back to buffer time when no header * stream: add time field to pw_buffer * Fri Mar 15 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+521~git20240314.46e6fd2ae: * spa: alsa: Read ctl events instead of doing a global diff * protocol-native: update the properties correctly * stream: improve the timing info * Wed Mar 13 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+518~git20240313.1d8a96d24: * stream: update some docs * tools: improve error reporting * tools: add pw-container tool * protocol-native: improve security context properties * protocol-native: don\'t allow recursive security context * protocol-native: add security context API * protocol-native: add props to the sockets keys * Wed Mar 13 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+511~git20240312.e86a68db3: * gst: add a clock to gst pipewiresink * gst: only remove port once * jack: improve midi buffer handling * jack: set the output buffer size correctly * module-ffado: add more port properties * settings: add default.clock.quantum-floor property * Tue Mar 12 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+505~git20240311.e784de393: * spa: use log topics everywhere * module-ffado: disable pause on idle * audioconvert: add monitor.passthrough option * module-ffado: copt link.group property * doc: add options to change what /usr and /etc paths are shown * doc: minor documentation improvements * jack: fix multiple midi input ports * module-ffado: make the event buffer per port * module-ffado: handle MIDI correctly * Thu Mar 07 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+496~git20240307.7d0ca2d10: * spa: node-driver: always put CLOCK_MONOTONIC values to clock->nsec * pw-top: only check terminal size in non-batch mode * spa: alsa: fix clang build * gst: Fix sanitization of non-writable caps * Specify \"Audio\" in gstreamer sink/src metadata to fix autodetect * module-ffado: implement MIDI send and receive * Thu Mar 07 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+490~git20240306.f3d9b823b: * module-ffado: various fixes to make things work * alsa-pcm: add_bind_ctl_param: add support for array * alsa-pcm: bind_ctl: add better ctl name matching * Tue Mar 05 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+487~git20240305.8a271a87b: * gst: Sanitize caps before translating * gst: Add support for DMA_DRM / explicit modifiers * jack-tunnel: convert JACK time to MONOTONIC * Mon Mar 04 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+484~git20240304.f4e391dd4: * stream: add pw_stream_get_nsec() to get current time * alsa-pcm: snd_ctl_open: remove device suffix * alsa: Use hi-res timestamps in irq mode when available * Sat Mar 02 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+481~git20240301.0cfe57f33: * Add SOC-style jack names to HDMI audio paths * gst: remove timeouts when autoconnect=false * node: add node.sync-group and node.sync * node: use new node.transport property to start/stop transport * profiler: add transport state in the profile block * jack: when leaving freewheel, set property to empty string * jack: handle freewheel property a little better * node: add the current driver id to the node activation * audioconvert: handle invalid ports better * audioconvert: handle port remove * pw_context_parse_conf_section: use the conf argument instead of the context\'s conf * pw-link: do argument check before sync * pw-link: do not leak memory * pw-link: use the `regex_t` objects in `struct data` * pw-link: make mode a proper enum * pw-link: use a simple boolean flag to control monitor mode * pw-link: use union for type specific data * pw-link: use proper enum for object types * pw-link: pass `false` instead of `NULL` for `bool` parameter * pw-link: free `target_link` objects at the end * stream: FORCE_RATE should just contain the rate * jack: FORCE_RATE should just contain the rate * modules: prefix network-utils methods with pw_net * Support IPv6 link-local addresses * po: Update the POT file * Update Turkish translation * examples: add MIDI example * doc: fix up example dependencies in meson * Sun Feb 25 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+453~git20240223.86af9de73: * adapter: remove factory.mode property * conf: add pulse-server option to minimal.conf * bluez5: add per-device option for BAP unicast stream group ID * jack: set global_mix safely * jack: sync threads by pausing the core * Tue Feb 20 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+448~git20240220.18aeddbe8: * doc: some updates * alsa: Added handle for controlling htimestamp autodisable * doc: use-chmap is enabled by default * doc: disable dot graphs in API docs again * doc: add sections to index, clarify discussion of properties * pulse-server: Make sure peer_sink name is filled * pipewire-alsa: Propagate errors from eventfd(). * alsa: restart the node on hw_param change * audioadapter: recheck formats when EnumFormat changes * audioadapter: clear buffers when format is reconfigured * stream: add n_buffers to debug log * audioconvert: fix debug when -UFASTPATH * doc: remove stray \\code * docs: add node.rules and device.rules * doc: move config man pages under config/ * doc: add some more coverage * doc: add reference docs + index for config and env variables * doc: fix DoxygenLayout.xml for doxygen 1.10 * logger: minor performance improvement to avoid syscall done by isatty * Sat Feb 17 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+429~git20240216.a5419ea67: * resampler: Only use copy when rate is 1.0 * resample: use a float phase in update_rate * conf: fix override directory order * module-rtp: fix SAP header parsing for IPv6 * module-rtp: fix debug log * Update .gitlab-ci.yml file * Update .gitlab-ci.yml file * Update .gitlab-ci.yml file * module-rtp: improve ipv5 support * Update .gitlab-ci.yml file * Update .gitlab-ci.yml file * module-rtp: only stop timer when it was running * module-rtp-sink: improve source.ip default * module-rtp: handle ipv6 sap.ip * meson: add options to set server and client RT priority * Thu Feb 15 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+414~git20240214.2833ff127: * alsa: split irq and timer wakeup functions * alsa: Reduce jitter in irq based software timestamping * jack: add jack.other-connect-mode property * impl-node: add node.rules and device.rules * pipewire-aes67: clarify comments * pw-dot: group nodes by node.link-group * pw-dot: truncate escaped string values to 128 * audioadapter: copy original props * acp: also install a local error handler * audioconvert: remove some construct time properties * adapter: move node.params to impl-node.c * impl-device: set quantum-limit correctly * alsa: allow setting profile by name * impl-device: add support for adapter * impl-device: add device.object.properties * impl-device: add device.id to objects * modules: avoid invalid properties access * adapter: move adapter.auto-port-config to adapter * pw-link: improve port and node names * Mon Feb 12 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+395~git20240212.532bc878f: * spa: use errno values in warnings * metadata: Added context monitor for removed globals * metadata: handle removed globals in impl * node-driver: suggest user to check clock device permissions * Use portable shebang in input-filter-h.sh * Fix uninitialized variable usage * Fix build of vulkan/dmabuf_fallback.c * FreeBSD compatibility for module-rtp-sap * Fix building module-netjack2 on FreeBSD * spa: alsa: react to \"new\" udev action as well * spa: alsa,v4l2: avoid double access check on inotify events * spa: v4l2: handle `IN_IGNORED` events from inotify * spa: alsa,v4l2: avoid double lookup on inotify events * spa: v4l2: use proper log topic in udev monitor * spa: alsa,v4l2: use proper enum for action * spa: alsa: handle `IN_IGNORED` instead of `IN_DELETE_SELF` * spa: alsa,v4l2: simplify inotify read loop exit condition * spa: v4l2: remove `ignored` flag * pw-dot: fix modules not being linked correctly * Fri Feb 09 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+376~git20240209.02050ae81: * pw-dot: support properties with quotes * pw-dot: improve allocation of the DOT data string * Ensure all globals have PW_KEY_OBJECT_SERIAL prop * metadata: handle removed globals as well * tools: improve indentation * buffer: add MAPPABLE data flag * module-rtp: Add source/destination.ip to props * Jack: Added missing lock to jack API call * protocol-native: use props in server and data * protocol-native: set error when add_event fails * metadata: fix indentation * Wed Feb 07 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+365~git20240207.44b8a03c4: * Jack: Fix jack_remove_property(ies) to use proxy id * v4l2: include config.h to check for udev * meson: fix compilation when spa-plugins is disabled * meson: fix build with missing libudev-devel * tutorial: fix s16 scale and add some docs * pw-cli: set quit flag on -EPIPE * loop: fix clang compilation * spa: bluez: fix whitespaces * pipewire: module-rt: add missing `static` * spa: support: add missing `static` * loop: sleep and retry when the invoke queue is full * bluez5: aptx-ll: produce 7.5ms packets * module-protocol-simple: do not cleanup client when send returns EAGAIN or EWOULDBLOCK * pipewire: module-rt: make dbus reply checking stricter * pipewire: module-rt: do not retrieve dbus message serial numbers * pipewire: module-jackdbus-detect: do not autostart jackdbus * pipewire: module-portal: watch only relevant NameOwnerChanged signals * pipewire: module-portal: do not repeat portal service name * pipewire: module-jackdbus-detect: watch only relevant NameOwnerChanged signals * pipewire: module-rt: use dbus helpers * pipewire: module-rt: get rid of unused `DBusError` * pipewire: module-jackdbus-detect: cancel pending dbus call on module destroy * pipewire: module-jackdbus-detect: use dbus helpers * pipewire: module-portal: cancel pending dbus call on module destroy * pipewire: module-portal: use dbus helpers * spa: move dbus helpers out of bluez plugin * bluez5: lc3: clean up some sanity checks * bluez5: support Google\'s Opus A2DP vendor codec * bluez5: disambiguate the two Opus codecs * bluez5: reset A2DP codec shared endpoint status on disconnect * bluez5: SBC-XQ does not need its own endpoint * Sun Feb 04 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+334~git20240204.c387506f6: * client-node: clear buffers always when freeing mix * client-node: handle releasing mix for destroyed port * doc: add \'Configuration\' page * stream: fix param emission for Props * vulkan: Update logging in compute plugins * vulkan: Add vulkan-blit-dsp-filter * vulkan: Add vulkan-blit-filter * vulkan: Add blit utils * vulkan: Return early in use_buffers * stream: conditionally wrap video streams with adapter node * bluez5: show only codec profiles also for HFP/HSP * bluez5: backend-native: ensure we no transports are leaked * bluez5: ensure transport->codec is set also for HSP * mem: track fd invalidation of imported memblocks * snap-policy: fix memory leak * snap-policy: ensure audio works with .deb snapd * Fri Feb 02 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+318~git20240201.16479acc6: * alsa: fix version check * module-pipe: resync when ringbuffer too full * module-pipe: warn underrun only once * pw-link: handle link proxy removal * pw-link: handle link proxy destruction * pw-link: --wait: allow linking with nodes * pw-link: listen to link info events to detect link creation * pw-link: add --wait option * pw-link: refactor do_link_ports() to not run the event-loop * pw-link: move output/input option checking before main event loop run * alsa: always reevaluate matching when driver changed * bluez5: deprioritize AAC-ELD since it\'s untested * conf: escape AATTDEFAULT_SINKAATT * Wed Jan 31 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+305~git20240131.07f7bda1f: * jack: fix version check * module-rtp: Add some sender latency validation * pipewire-aes67: re-enable sess.latency.msec for sender * filter-chain: connect atom ports to an empty atom * module-raop: don\'t start record in state change * alsa: use debug types instead of custom function * snap-policy: Manage ENOPROTOOPT error in aa_getpeercon() * Update German translation * module-rtp: add packet timer * node-driver: Log when we resync * v4l2: probe EXPBUF and disable alloc_buffer flag * v4l2: clear support for alloc_buffers on failure * pipewire-aes67: temporarily disable sess.latency.msec * doc: disable deprecated list * doc: fix some doxygen warnings * doc: bluez5: document some internals in media-codec * doc: put new pulse modules to right place * doc: filter some constructs that confuse doxygen * doc: Fix typo \'statis\' -> \'static\' * vulkan: Support MemPtr as import for compute * vulkan: Add function to upload data to a staging buffer * vulkan: Add functions to create staging buffers * examples: Add video-dsp-src example * param: clarify the internal latency * doc: explain clock/latency more * bluez5: lowball fallback delay values * bluez5: sco-sink: more accurate latency values * bluez5: media-sink: more accurate latency * bluez5: media-sink: fix wrong clock * bluez5: support api.bluez5.internal flag also for sco * bluez5: backend-native: fix all rfcomm lookups to check profile * context: move registry generation checks to context methods * module-netjack2: improve channel positions * module-rtp: use sess.latency.msec also for sender * module-rtp: use helpers to convert between samples and msec * module-rtp: Fix framecount vs ptime check * alsa: use chmap by default when using UCM * bluez5: further HFP cleanups * bluez5: clean up SCO code a bit * bluez5: support LC3-SWB in SCO sink/source * bluez5: support LC3-SWB in HFP RFCOMM & add codec id for it * pipewire-aes67: resync when offset is more than 1.5 ms * node-driver: allow fractional resync-ms * support: add resync.ms option to node.driver * conf: add freewheel.wait option, defauls to 10 * thread: Change warning to info * Wed Jan 24 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+259~git20240124.f0304f45a: * jack: make sure jack clients are ALWAYS_PROCESS * jack: improve running check * pulse-server: the device changed when EnumRoute changes * pipewire-jack: remove unused field graph_callback_pending * pulse-server: implement subscribe in device-restore * pulse-server: reset spa_param_info.user after events * pulse-server: implement stream-restore EVENT * pulse-server: move extension to modules * bluez5: prefer 16khz input for LE Audio duplex configurations * bluez5: lc3: pick qos values from BAP spec tables * bluez5: indicate to LC3 plugin whether endpoint is sink/duplex * bluez5: determine available BAP profiles from remote endpoints * bluez5: pick right codec when multiple ones share the endpoint * module-rtp-sap: use autobind * module-rtp-sap: sanity check PTP response * Apply 1 suggestion(s) to 1 file(s) * module-rtp-sap: fix strncpy bounds * module-rtp-sap: fix fd leak * module-rtp-sap: review * module-rtp-sap: support PTP management protocol * bluez: fix compilation some more * bluez5: fix compilation * bluez5: add ELD support check * bluez5: correct endpoint name * bluez5: avoid adding new codec endpoint * bluez5: refactor ELD check * bluez5: add AAC-ELD codec * vulkan: Add pixel-formats to query format properties * vulkan: move format enumeration into utils functions * vulkan: create validation function for dmabuf properties * vulkan: use extension VK_EXT_QUEUE_FAMILY_FOREIGN * vulkan: Move vulkan_stream into vulkan-compute-utils * vulkan: Move vulkan_fence_create to vulkan-utils * vulkan: namespace functions in compute-utils to spa_vulkan_compute * videoconvert: Enable loading external converter plugins * videoconvert: apply changes from audioadapter * Mon Jan 22 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+223~git20240122.846f994ac: * alsa: increase buffers when using small buffer * alsa: improve max-latency property * spa: mark constant parameters as such * Sun Jan 21 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+220~git20240117.490558f3d: * v4l2: improve filter with missing format * v4l2: fix format enum with unsupported framerate * stream: debug added params * Wed Jan 17 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+217~git20240116.cee92e08a: * bluez5: lc3: fix wrong enum_config * stream: delay emit param changes when inside emit_param_changed * impl-port: res > 0 means the param was modified * pod: don\'t iterate 0 sized children * module-rtp: clarify some docs * module-rtp-source: Use source.ip for unicast * audioconvert: remove unnecessary casts * bluez5: move no-HFP fast connect checks to better place * audioconvert: fix rare unaligned load exceptions * stream: rename requested to size in pw_time * audioconvert: also place resample output in rate_io * audioconvert: implement resample_out_len() * Mon Jan 15 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+205~git20240115.a1ecfc8d7: * tests: fix ABI check for new pw_time * stream: add resample size to pw_time * audioconvert: update initial resampler rate match * bluez5: add quirk for SoundCore mini2 * bluez5: more informative warning with unknown transports * bluez5: add quirk for Rockbox Brick * Fri Jan 12 2024 virtuousfoxAATTgmail.com- Update to version 1.0.0+199~git20240112.10fe33c4f: * Trigger ubuntu rebuild * Better meson_options description * Replace even more spaces with tabs * Replace more spaces with tabs * Replace spaces with tabs * Fix spacing when calling functions * Apply 1 suggestion(s) to 1 file(s) * Move add_permission definition inside block * Move context variable definition inside block * Move variable definition inside block * Better error logging if getting connections fails * fix possible leak * Apply 1 suggestion(s) to 1 file(s) * Use assert to check client is not NULL * Apply 1 suggestion(s) to 1 file(s) * Apply 1 suggestion(s) to 1 file(s) * Add missing files * pipewire-pulse: add snap permissions support * array: improve pw_array * docs: Multiple clarifications to documentation * pw-top: use `media.name` as display name * pw-top: update name when it changes * modules: move some spa_debug_mem to the log * spa: libcamera: bump minimum supported version to 0.2.0 * spa: libcamera: use `CameraConfiguration::orientation` * pulse-server: improve message debug * spa: small cleanups * support: fix freewheel timeout in node-driver * spa: small cleanups * bluez5: fix node initialization to init all nodes * bluez5: lc3: prefer 7.5 ms frame duration * spa: Fix sign conversion in SPA_IS_ALIGNED * pw-reserve: fix potential DBusMessage memory leak * pw-reserve: use `arg0namespace` for dbus match rule * bluez5: support multiple BAP transports per device * bluez5: bap: support ChannelAllocation parameter from BlueZ * bluez5: lc3: workaround bad Supported_Max_Codec_Frames_Per_SDU * bluez5: backend-native: handle multiple commands in RFCOMM input * modules: add reconnect support to module-pulse-tunnel * doc: clarify rlimits conf file * spa: remove some references to unimplemented items * meson_options: pass proper boolean values to boolean options * pulse-server: add pipewire-pulse:log-level message * log: add pw_log_topic_custom_enabled() * log: store log level in topics * journal: copy log level to chained logger * Draft: Allow calling trigger_done from the RT thread * log: make pw_log_topic_register/unregister threadsafe * log: make pw_log_set_level_string public API * spa: support: remove log pattern support * log: make PW_LOG_TOPIC / PW_LOG_TOPIC_STATIC magical * test: fix test error message check * pipewire: register/unregister log topics from SPA plugins * log: support dynamic log levels for registered log topics * spa: use only static log topics * spa: export log topic enumerations * spa: define symbols for log topic enumeration * spa: spa_strbuf_init should null-terminate * pulse-server: call update_object_info in manager_added * protocol: don\'t allow NULL event or command * INSTALL.md: Add WIREPLUMBER_DEBUG env variable * pipewire: module-loopback: fix delay buffer memory leak * Thu Dec 28 2023 virtuousfoxAATTgmail.com- Update to version 1.0.0+137~git20231226.0227a30bc: * spa: Bounds-check pointers before dereferencing them * pipewire: log: fix concatenation in log topic macros * spa: utils: add `SPA_CONCAT()` macro * bluez5: update bluez-hardware.conf to ignore sbc-mq on Primark earbud * gstpipewiresrc: break out of wait_started() also on STATE_UNCONNECTED * Mon Dec 25 2023 virtuousfoxAATTgmail.com- Update to version 1.0.0+132~git20231221.03173530d: * gst/pipewiresink: fix dts_offset * spa: add spa_ptrinside * impl-node: handle priority.driver changes * module-rtp-sap: refactor channelmap generation * module-rtp-sap: properly serialize custom channelmaps * module-rtp-sap: only override NTP value in the timing line * module-rtp-sap: add session number to the NTP value * module-rtp-sap: set source-filter up * module-rtp-session: remove outdated FIXME * pipewire-aes67: default to NTP 0 * module-rtp-sap: allow overriding NTP value * TODO: module-rtp: buffering for sender * module-rtp-sap: add a way to add extra attributes to SDP * module-rtp: improve logging priorities * module-rtp-sap: add notices about different channelmap formats used by different hw * module-rtp: handle framecount attribute * module-rtp-sap: parse ptime from incoming streams * module-rtp-sap: send out a default channelmap if none specified * pipewire-aes67: improve the config * module-rtp: add framecount to the SDP * pipewire-aes67: use interface name as default PHC * pipewire-aes67: recommend using ifname * node-driver: open PHC as readonly * pulse-server: fill in active port for monitors * Add a build option to specify whether pulse gsettings schema should be installed * Add pulseaudio gsettings schema * Fri Dec 15 2023 virtuousfoxAATTgmail.com- Update to version 1.0.0+106~git20231214.ecf4b071e: * gst: keep track of node ports * gst: remove unused pending list * pulse-server: handle errors in echo-cancel geometry * modules: place floats in properties in JSON format * module-raop-discover: Skip tunnel creation for link-local addresses * module-raop-sink: Destroy module on RTSP error * module-raop-discover: Remove unused raop.ip.version prop * jack: handle -ENOENT from the core * ALSA: Remove alsa timer from IRQ scheduling * module-pipe-tunnel: avoid bitfield data race * audioadapter: improve state check * audioconvert: avoid bitfield data races * pipewire: data-loop: set thread name * Revert \"alsa: also use interpolated time as nsec in IRQ mode\" * jack: improve current_usec calculation * raop: use default 1500ms latency again * raop: add option back to set custom latency * raop: use 1500ms of latency as fallback * stream: make empty objects remove the PARAM * modules: make sure we don\'t overrun our array * modules: always add the Props param * modules: reuse the same code for setting properties * modules: add source ip and port in stream props * modules: return -EINVAL on invalid port * po: Update Bulgarian translation * doc: include pipewire-pulse modules explanations also on man page * doc: add pw-v4l2.1 and spa- *.1 * bluez5: use only one input route * pulse-server: update all params only after enumeration complete * context: support letter codes for log.level * doc: add pw-reserve.1 * conf: fix comment node.always-driver -> node.always-process * bluez5: Add support for 32KHz for lc3 codec * bluez5: Add support for 32KHz sampling frequency * bluez5: media-sink: keep one more buffer free * bluez5: drop queued data on node stop * bluez5: set io status properly when sink is not going to consume * module-x11-bell: force pulse backend * gst/pipewiresink: remove special case for size 0 * gst/pipewiresink: replace tabs with spaces * gst/pipewirepool: change acquire/release to log messages * gst/pipewirepool: print buffer type as debug message * alsa: fix rate matching in the sequencer * alsa: reset dll when we reprogram the timers * acp: Disable active UCM profile before enabling Pro Audio profile * acp: Don\'t sync hardware volumes while UCM device is disabled * alsa-ucm: Replace port device UCM context assertion with an error * alsa-ucm: Check UCM verb before working with device status * alsa-ucm: Fix more instances of profile-verb conflation * alsa-ucm: Consider devices using the same PCM as incompatible * alsa-ucm: Disable old modifiers when switching profiles of same verb * alsa-ucm: Add enable, disable, status helpers for modifiers * alsa-ucm: Create multiple profiles per verb for conflicting devices * alsa-ucm: Disable old devices when switching profiles of same verb * alsa-ucm: Make mapping UCM contexts have only one modifier * alsa-ucm: Make mapping UCM contexts have only one device * alsa-ucm: Make ports store only one device * alsa-ucm: Remove combination port generation logic * alsa-ucm: Make one input/output mapping per UCM device * alsa-ucm: Split out helpers for device set name, description, priority * alsa-ucm: Fix device conformance check * alsa-ucm: Rewrite conformant device group generation with idxsets * acp: Add idxset comparison and reverse search operations * alsa-ucm: Split profile creation into verb and profile parts * alsa-ucm: Make mapping creation independent from indvidual profiles * alsa-ucm: Stop conflating profile name with UCM verb name * alsa-ucm: Let profiles know their associated UCM verb * alsa-ucm: Set profiles by their struct instance, not their name * alsa-ucm: Add enable, disable, status helpers for devices * alsa-ucm: Make modifiers track conflicting/supported devices as idxsets * alsa-ucm: Always create device conflicting/supported device idxsets * alsa: ucm: Fix spurious mixer path removal on initial profile set * alsa-util: Fix pa_alsa_get_supported_formats fallback. * alsa-util: Perform format and rate detection before setting HW params * alsa-util: Dump probed rates * alsa-util: Add more standard sample rates * alsa-mixer: extend pa_alsa_mixer_find with the subdevice check * alsa-mixer: fix the re-attach code for the mixer control element * alsa-mixer: allow to re-attach the mixer control element * alsa-ucm: remove extra space from the device.intended_roles property * avoid compiler warning * 1.1.0 * acp: avoid copying structure into itself * pipewire: module-filter-chain: dsp_ops_init(): take cpu_flags * pipewire: module-filter-chain: builtin_plugin: fix filename leak * spa/meson.build: Look for udev rules in /usr by default * Thu Nov 30 2023 virtuousfoxAATTgmail.com- Update to version 1.0.0+20~git20231130.a532c2abd: * acp: add support for hiding profiles and ports * alsa: clamp buffer_frames correctly * alsa: handle period events * Thu Nov 30 2023 virtuousfoxAATTgmail.com- Update to version 1.0.0+17~git20231130.94f898ddc: * stream: check requested before use * stream: don\'t confuse frames/samples in docs * module-pulse-tunnel: don\'t block the main thread * pipewire: mem: try to create non-executable memfds * Wed Nov 29 2023 virtuousfoxAATTgmail.com- Update to version 1.0.0+13~git20231129.9fdf22170: * doc: internals/access: update documentation vs current state * module-access: recognize \"allowed\" as legacy alias for \"unrestricted\" * Bluez5: backend-native: HSP AG release SCO link on AT+CKPD=200 * alsa: Correctly bail if pitch ctls are not available * aes67: bump PTP0 driver priority * module-loopback: improve channel remapping support * stream: notify caller of partial set_param success * client-node: keep target fd up to date * po: Update Russian translation * pw-reserve: require valid name + check rd_reserve_new errors * meson.build: fix compile with -Dexamples=disabled * jack: allow OSC messages inside JACK MIDI * alsa: place defaults in properties as fallback * 1.0.0 * doc: internal/protocol: explain registry generation and protocol footers * meson.build: separate options for installing man pages or docs * meson.build: set install tags on doc/man * evl: add fds to pollfd from rt thread * stream: pass properties to context_new * bluez5: deal with too small Supported_Max_Codec_Frames_Per_SDU * bluez5: add some debug to bap-codec-lc3 * pipewire: module-roc-{sink,source}: add rudimentary ROC_INTERFACE_AUDIO_CONTROL support * pipewire: module-roc-source: use `SPA_NSEC_PER_MSEC` instead of hard-coding * pipewire: module-roc-{sink,source}: do not remove from argument property list * pipewire: module-roc-{sink,source}: pass 0 to `pw_properties_get_uint32()` * pipewire: module-roc-{sink,source}: remove `props` member * pipewire: module-roc-{sink,source}: deduplicate protocol selection * pipewire: module-roc-{sink,source}: port to ROC v0.3.X * pipewire: daemon: do not set `G_LOG_DOMAIN` * docs: add some more doc about the threads * impl-client: don\'t log warning when updating ignored keys * docs: add some more docs * rtp-stream: Set rtp.ptime on senders not receivers * pipewire: module-filter-chain: fix buffer memory leaks * pipewire: remove `pw_in_valgrind()` * pipewire: impl-module: respect `PIPEWIRE_DLCLOSE` * CI: bump fedora to 39 * doc: make all manpages with Doxygen * modules: fix doc * alsa: Move ctl sources to a main loop * Fix a warning * jack: handle concurrent jack_port_get_buffer() * module-rt: Protect setrlimit() with mutex * jack: optimize one buffer case * doc: fix xdg-desktop-portal documentation links * meson.build: make pandoc optional * Fix some warnings * jack: fix crash with fastpath debug * jack: enunerate Latency only for DSP ports * libcamera: add latency param query * jack: improve transport and times handling * alsa: also use interpolated time as nsec in IRQ mode * pulse-server: add stream/device state in dev_info * pulse-server: rename combine sinks option * man: add pipewire-pulse.conf.5 * doc: man: add see also in pipewire-pulse * modules: add Module Name section to the module reference docs * doc: add documentation for pipewire-pulse modules * client-node: handle port_buffers errors better * CI: install pandoc for module manpage generation * doc: generate man-pages also for pipewire modules * man: add pw-loopback.1 * man: add pw-dump.1 * doc: reorganize files * modules: strip \"PipeWire Module:\" from Doxygen page name * client-node: store mix in pw_map so that they are not copied * Sat Nov 18 2023 virtuousfoxAATTgmail.com- Update to version 0.3.85+1~git20231117.44bfeaac6: * client-node: close fds in port_buffers() error case * 0.3.85 * bluez5: avoid compiler warning * Revert \"gstpipewiresrc: break out of wait_started() also on STATE_UNCONNECTED\" * module-rt: Remove RLIMIT_RTTIME while trying rt policy * alsa: the default poll_descriptors is good now * alsa: update pollfd from poll_revents() as well * modules: add tunnel.may-pause option for pipe-tunnel * modules: add pause support for pipe-tunnel * alsa: return 0 from successful resume * alsa: handle poll error * alsa: remove err argument in alsa_recover() * alsa: improve debug * jack: fix compilation with -UFASTPATH * bluez5: set BAP QoS RTN correctly * modules: make better media.name for RAOP sink * bluez5: media-sink: set node.group for ISO group nodes * bluez5: iso-io: get proper group id for broadcast * bluez5: make iso_io ISO groups transport-specific * Sun Nov 12 2023 virtuousfoxAATTgmail.com- Update to version 0.3.84+34~git20231110.03b1d9589: * modules: Check for opus custom functions in addition to headers * alsa: reset ready_offset when we clear the queue * jack: Add jack_port_t * <-> object helpers * jack: make 0 an invalid object type * spa: alsa: fix leaks in `get_data_path()` * gstpipewiresrc: break out of wait_started() also on STATE_UNCONNECTED * gst: avoid reporting error twice * acp: Respect XDG base directory spec when loading configs * alsa: Prevent pitch element probe from stepping on bind ctls * alsa: Fix ctl device cleanup order * jack: fix midi events from peer port * Fix set state not seated on linked transport * alsa: Add a mechanism to bind ALSA controls as prop params * alsa: Share node/port info emission code between sink and source * module-protocol-native: emit error on bad concurrency * Tue Nov 07 2023 virtuousfoxAATTgmail.com- Update to version 0.3.84+19~git20231106.b832a94f5: * pipewire: utils: make `pw_strv_find()` take a `const char *` * spa: libcamera: get rid of an unnecessary `snprintf()` call * spa: alsa: compress-offload: use `spa_assert_not_reached()` * spa: debug: log: use `SPA_CONTAINER_OF()` * alsa: remove redundant snd_pcm_recover() * systemd: Limit system manager socket permissions * context: stop scanning on feedback links * alsa: disable resample when pitch element is available * module-rt: enable setting UCLAMP_MIN and UCLAMP_MAX values * spa: bluez: fix -Walloc-size * doc: link \\page and \\group by \\see * doc: hide useless indices in doxygen output etc. fixes * doc: use b->requested in tutorial4 * Sat Nov 04 2023 virtuousfoxAATTgmail.com- Update to version 0.3.84+6~git20231104.49668a9b2: * doc: fixup some Doxygen autogen issues * spa: explicitly mention that volumes are linear * context: limit recursion in run_nodes * impl-link: reset state to INIT if not destroyed * Thu Nov 02 2023 virtuousfoxAATTgmail.com- Update to version 0.3.84+2~git20231102.38157a893: * pw-top: fix version constant used for pw_node_events * jack: fix PW_VERSION_ * constant used with pw_ *_events structs * 0.3.84 * Thu Nov 02 2023 virtuousfoxAATTgmail.com- Update to version 0.3.83+38~git20231102.bdb7f3adc: * gst: don\'t stop streaming when paused * jack: do sync when starting client * Wed Nov 01 2023 virtuousfoxAATTgmail.com- Update to version 0.3.83+36~git20231031.353efbd79: * context: fix indentation * impl-node: support multiple link-group and group * utils: add some utility functions for working with strv * alsa: remove device properties when closed * context: when forcing rate/quantum don\'t limit latency * pipewiresink: use maximum size of buffers to configure pool * gst: update buffer size only if format defines a size * pipewiresink: copy metadata into pipewirepool buffers * pipewiresink: fix type of SPA_META * conf: fix videotestsrc example configuration * conf: set description for test nodes * videotestsrc: implement impl_node_set_io to fix segfault while loading * Wed Oct 25 2023 virtuousfoxAATTgmail.com- Update to version 0.3.83+24~git20231024.b7e863b8c: * bluez5: fix logic error in device set leader selection * bluez5: add more debug for device sets * jack: add jack_set_sample_rate() extension * module-rtp-sap/sink: try to bind sockets to an explicit interface * tools: make pw-dump/mon/top try to connect to the default manager socket * module-protocol-native: multiple names to try in PW_KEY_REMOTE_NAME * filter-chain: add mult and sine plugin * alsa: guard agaist NULL areas * example: fix invalid free() operation in bluez-session * examples: add props to bluez-session to prevent quirk parse error * filter-chain: add linear operation to dsp * filter-chain: add more math functions * Sat Oct 21 2023 virtuousfoxAATTgmail.com- Update to version 0.3.83+12~git20231021.528c7c0f2: * bluez5: set BAP Locations/Context endpoint properties * gst: mark streams async * module-echo-cancel: playback and source are async * filter-chain: remove some debug * filter-chain: add linear transform filter * filter-chain: also handle notify ports as dependencies * impl-link: fix log * impl-link: refactor function to update busy_count * impl-link: ensure busy_count and busy_id stay in sync * stream: improve queued_buffers reporting * conf: add missing = * jack: refactor function to get buffer data * 0.3.83 * jack: only set io in NEED_DATA after complete * jack: don\'t require global-mix in prepare_output * meson: add FASTPATH again * alsa: force the rate and quantum for iec958 formats * Thu Oct 19 2023 virtuousfoxAATTgmail.com- Update to version 0.3.82+46~git20231018.42418bece: * impl: destroy node and device in global free * alsa: don\'t limit reads to avail * alsa: limit read to available frames * alsa: after a resync, reset the dll * alsa: improve headroom calculations * alsa: only use avail_update when woken up with IRQ * combine-stream: add support for \"on-demand\" streams * Tue Oct 17 2023 virtuousfoxAATTgmail.com- Update to version 0.3.82+39~git20231017.69d0f586b: * jack: use a separate thread for notify * jack: don\'t wait for mix_set_io * module-access: add access.socket option + legacy mode, remove other options * module-protocol-native: use two-socket server by default * Mon Oct 16 2023 virtuousfoxAATTgmail.com- Update to version 0.3.82+35~git20231016.67c32ec3c: * audioadapter: don\'t clear format when EnumFormat changes * context: relax quantum change conditions * Mon Oct 16 2023 virtuousfoxAATTgmail.com- Update to version 0.3.82+33~git20231016.7ecea07a6: * audioconvert: use alternative store to avoid ASAN errors * audioconvert: use spa_write_unaligned * jack: make option to make input writable * modules: the combined streams are always async * alsa: don\'t try to link when prepare fails * Revert \"jack: use a private writable mapping on input\" * build: increase required vulkan version * build: Restructure vulkan dependency handling and assert headers * test: avoid left shift on signed values * audioconvert: avoid unaligned read * audioconvert: avoid unaligned reads using memcpy * audioconvert: avoid unaligned writes and left shift of neagtives * audioconvert: avoid unaligned writes * audioconvert: don\'t left shift negative values * audioconvert: fix unaligned writes * Revert \"audioconvert: fix unaligned address\" * audioconvert: fix unaligned address * audioconvert: fix unaligned writes * Try to fix ci * bluez5: use bigger fallback SCO mtu if kernel doesn\'t tell us * spa: support: allow spa_log_xxx(NULL, ...) again with UBSan * spa: deduplicate test-helper.h * ci: set some ASan and UBSan options * alsa: Ignore PCM devices with udev env ACP_IGNORE * jack: use a private writable mapping on input * Fri Oct 13 2023 virtuousfoxAATTgmail.com- Update to version 0.3.82+8~git20231013.c94d5d9d3: * audioconvert: improve allocation * tweak number of buffers * audioadapter: alloc at least 2 buffers when async * module-ffado: remove hardcoded quantum_limit * netjack2: remove hardcoded buffer size * filter-chain: remove some hardcoded limits * buffer: remove some hardcoded buffer size limits * jack: remove fixed buffer size limit * Fri Oct 13 2023 virtuousfoxAATTgmail.com- Update to version 0.3.82~git20231013.8a9117567: * 0.3.82 * jack: schedule all jack clients in the same group * alsa: Do not attempt to prepare linked PCMs * aes67: add clock.interface example and update the documentation comment * node-driver: use interface name to get PHC index of PTP clock * node-driver: warn if the specified clock can\'t be opened * conf: add new alsa option * alsa: add alsa.deny to fail init of the PCM * Thu Oct 12 2023 virtuousfoxAATTgmail.com- Update to version 0.3.81+53~git20231012.e940361c9: * alsa: don\'t check early wakeup when PCM stopped * alsa: don\'t resync capture when linked * alsa: handle errors from get status * alsa-seq: set priority.driver to 1 * alsa: always read/write follower samples * spa: expose utils/cleanup.h for external users * pipewire: add PW_KEY_SEC_SOCKET and set it in protocol * module-protocol-native: add module argument \'sockets\' * spa: use dynamic builder where we can * pod: add spa_auto support for dynamic builder * pod: handle realloc failure * Wed Oct 11 2023 virtuousfoxAATTgmail.com- Update to version 0.3.81+42~git20231011.a9659d9dc: * alsa: add Tag set and enum support * alsa: clean up some latency param handling * pulse-server: place stream media. * keys as Tag * pw-cat: don\'t overrun our param array * alsa: add extra checks * jack: fix midi events in destination buffer * filter-chain: fix typo * env: PIPEWIRE_QUANTUM now uses FORCE_RATE and FORCE_QUANTUM * filter-chain: explain volumes a little better * Tue Oct 10 2023 virtuousfoxAATTgmail.com- Update to version 0.3.81+33~git20231009.4b940100b: * impl-node: rework resume after rate switch * acp: only disable tsched when linking * rtp-stream: senum -> seqnum * module-raop-sink: Port to rtp-module/stream * module-rtp/stream: Add support for RAOP * module-rtp/stream: Add getter for pw_stream state * module-rtp/stream: Add setter for property * module-rtp/stream: Add getter for property * module-rtp/stream: Add param_changed method * module-rtp/stream: Add ability to set marker on first packet * module-raop-sink: Simplify rtp send functions * module-raop-sink: Drop the RTSP FLUSH request * context: allow non-power-of-2 quantum when forced * acp: only join and link when 1 capture and 1 playback * acp: fix compilation * alsa: add api.alsa.auto-link option * impl-client: fix client property update access check * hurd: Rather use hurd_thread_self * module-access: move EACCES check to pw_check_flatpak * pulse-server: use `spa_autofree` with `open_memstream()` * pipewire: log: remove `_pw_log_topic_new()` * pulse-server: prefix nonstandard messages with pipewire-pulse: * pulse-server: add /core message handlers for memory debugging * pulse-server: pass the client to message handlers * pulse-server: pass `FILE` to message handlers * pulse-server: remove unnecessary check * pipewire: map: allow lookup and iteration on const maps * spa: remove unnecessary indirection for some `spa_log_topic`s * spa: bluez: fix SBC encoder/decoder leak * Fri Oct 06 2023 virtuousfoxAATTgmail.com- Update to version 0.3.81+4~git20231006.96a280497: * spa: support: log: always set `spa_log_topic::has_custom_level` * spa: support: log: remove `spa_log_level_enabled()` * spa: support: log: convert `spa_log_level_topic_enabled()` to a function * spa: support: log: convert `spa_log_topic_init()` to a function * 0.3.81 * filter-chain: add scale property to volume * filter-chain: fix default control values * pw-cli: avoid NULL deref * impl-node: keep separate elapsed time * Revert \"node-driver: ensure position doesn\'t jump\" * filter-chain: improve mute handling * pw-cli: handle some allocation failures or NULL info * filter-chain: fix volume controls * bluez5: adapt to further BAP API changes in BlueZ * filter-chain: fix volume controls handling * meson: use major version in versions * module-raop: fix stray ! * check if malloc_trim() is available * impl-node: do malloc_trim() after destroying a node. * audioconvert: warn -> debug * audioconvert: handle realloc errors * module-raop-sink: don\'t let mute change the volume * module-raop-sink: Fix volume calculation * pulse-server: module-echo-cancel: set `pulse.module.id` * filter-chain: add nofail flags * filter-chain: add custom volume support * pw-cat: add DFF file suppport * audioadapter: always pass Start when passthrough * alsa: do playback sync even when alsa is paused * context: use smallest fraction for largest rate * bluez5: adapt to changes in BlueZ BAP API * spa: debug: log: add missing includes * loop: rate limit xrun messages * pipewire: rtsp-client: use flexible array member for outgoing message content * pulse-server: reorder initialization to make proper cleanup possible * modules: fix compilation on clang * impl-link: recalc graph after destroy prepared link * filter-chain: have separate control values per handle * filter-chain: fix gain when mixing 1 source * audioconvert: silence some debug info * module-raop-sink: Send POST /feedback every 2 seconds * module-raop-sink: Use \"PipeWire/$VERSION\" as UserAgent * module-raop-sink: Set DACP-ID header * module-raop-sink: Uppercase Client-Instance header * module-raop-sink: Add Apple-Challenge only if RSA encrypted * module-raop-sink: Rename a bunch of things * conf: fix regex matching * conf: lower pulse client priority * stream: add EARLY_PROCESS flag * module-raop-sink: Use rtp_header for RTP messages * Add GNU/Hurd support * node-driver: Cope with missing CLOCK_BOOTTIME * module-pipe-tunnel.c: Include to get struct iovec * utils.h: Include to get ENODATA * bluez5: deprioritize audio-gateway if remote is HFP HF + A2DP sink * bluez5: backend-native: fix codec handling with simultaneous HF & AG * alsa: silence an error after resync * pulse-server: emit stream changed after Latency param change * node-driver: ensure position doesn\'t jump * audiomixer: Correctly initialise data_loop * context: handle force quantum like force_rate * context: also reconfigure when quantum was forced * alsa: fix recover logic * alsa: set the driver rate in the clock io * alsa: link driver and follower * jack: sync after setting metadata * alsa: sync followers from the driver * alsa: rework the state sync code * alsa: keep states in global list * modules: add quotes around hw:0 * treewide: use `spa_assert_not_reached()` instead of `assert(false)` * treewide: try to use `const char *` for string literals * spa: alsa: mark `spa_alsa_silence()` static * spa: utils: cleanup: only have one version of `spa_clear_ptr()` * spa: utils: cleanup: remove unnecessary cast * pipewire: module-profiler: mark event vtable `const` * spa: utils: cleanup: fix GCC version check * spa: utils: spa_exchange(): try to evaluate argument only once * Fri Sep 15 2023 virtuousfoxAATTgmail.com- Update to version 0.3.80+20~git20230915.71808454e: * alsa: add and remove sources from data_loop * alsa: IRQ based scheduling wakes up after finishing 1 period * alsa: fix warning when compiling without FASTPATH * Fri Sep 15 2023 virtuousfoxAATTgmail.com- Update to version 0.3.80+17~git20230915.c8db951d6: * alsa: some cleanups * alsa: small cleanups * alsa: refactor read and write functions * audioconvert: silence some debug * jack: setting the Latency to NULL clears the latency * context: add some more debug * alsa: add spa_alsa_prepare() * alsa: make sure we recalculate config when samplerate changes * pipewire-jack: Disable LD_LIBRARY_PATH when libjack is in libdir * ci: ShellCheck preprocessed scripts separately * alsa: improve debug * alsa: set_timeout is only called when tsched is enabled. * alsa: update the clock name when we can * alsa: with IRQ we can use avail_update() * aec: support both webrtc versions * Thu Sep 14 2023 virtuousfoxAATTgmail.com- Update to version 0.3.80+2~git20230914.a4f3b78df: * conf: enable jackdbus support by default * pulse-server: remove pending_streams list * 0.3.80 * pulse-server: avoid emitting changes for unused params * bluez5: minor BAP broadcast fixups * bluez5: fix device supported codec checks * Wed Sep 13 2023 virtuousfoxAATTgmail.com- Update to version 0.3.79+77~git20230913.6abc6e669: * jack: mark client active a little earlier * pulse-server: add an option to check module arguments * handle NULL latency param * jack: safely update the mixer io areas * Tue Sep 12 2023 virtuousfoxAATTgmail.com- Update to version 0.3.79+73~git20230912.18f29bd84: * jack: make sure we emit port registration events * jack: always emit buffer frames after activate * jack: emit connect unregister before port unregister * pw-top: add missing options to man page and improve --help output * pw-mon: add filter param to hide props and/or params * node: clarify port_set_io and SPA_IO_Buffers * alsa: small cleanup * stream: fix datatyp on copied object * ratelimit: missed -> suppressed * Thu Sep 07 2023 virtuousfoxAATTgmail.com- Update to version 0.3.79+64~git20230907.1837654a4: * impl-port: only log changes * audioconvert: don\'t use -Ofast on alpha * modules: fix page ref * modules: forward tag param * audioconvert: improve tag and latency handling * impl-node: make sure we always clear params * alsa: redirect dict debug to log * spa: v4l2: use a separate watch for each device * Revert \"v4l2: don\'t set inotify on /dev\" * Revert \"v4l2: handle inotify errors\" * pw-cat: set default properties after setup * meson: remove -ffast-math * Wed Sep 06 2023 virtuousfoxAATTgmail.com- Update to version 0.3.79+52~git20230906.c842ef707: * aec-webrtc: Bump to webrtc-audio-processing-1 * context: scan peers in both directions * conf: set description for test nodes * node-driver, null-audio-sink: Fix EAGAIN check * alsa-compress-offload: Add device object and udev based autodetection * alsa-pcm-device: Minor logging improvements * alsa: Rename spa_alsa_device_factory to spa_alsa_pcm_device_factory * spa: Add node.description key * module-filter-chain: don\'t use i for single filename * Clarify in man page that pipewire-pulse runs its own pipewire process * Fri Sep 01 2023 virtuousfoxAATTgmail.com- Update to version 0.3.79+42~git20230901.ccc591ae0: * alsa: use target_rate from the position * alsa: round to next power of 2 for max period_size * alsa: report latency in the samplerate domain of the graph * Thu Aug 31 2023 virtuousfoxAATTgmail.com- Update to version 0.3.79+39~git20230831.21392d898: * alsa: improve xrun clock field calculation * bluez: fix port flags * alsa: get rid of non-portable isinf use * meson: better check for module dlopen dir * vulkan: fix uninitialized writeDescriptor * vulkan: download buffer to MemPtr * vulkan: spa_vulkan_use_buffers support datatype MemPtr * vulkan: Track spa_buffers for stream * vulkan: Only allocate buffers when DMABUFS are used * vulkan: Synchronize in and out buffers * vulkan: Add dmabuf sync helpers from wlroots * vulkan: vulkan_compute fixate modifier * vulkan: announce SPA_PARAM_BUFFERS wrt. modifiers * vulkan: use capability flags to enumerate formats * vulkan: vulkan_compute enumerate format with modifiers * vulkan: vulkan_compute initialize base on plugin creation * vulkan: Add {spa_,}vulkan_fixate_modifier * vulkan: split spa_vulkan_use_buffers into separate allocation and import functions * vulkan: Add wait functions * vulkan: limit supported modifiers with DMABUF_MAX_PLANES * vulkan: Add function to query format and modifier information * vulkan: Add format convertion functions * vulkan: split vulkan-utils into generic and compute part * vulkan: use SPDX tags to specify copyright information * vulkan: log if buffer is added in vulkan-compute-source * pipewire-vulkan: Start vulkan nodes via pipewire proxy server * Correct a typo in pipewire.conf.5.rst.in * alsa: scale the default period with the rate * pipe-tunnel: support pipe-source as a driver * pulse-tunnel: fix index after overrun * Thu Aug 31 2023 virtuousfoxAATTgmail.com- Update to version 0.3.79+9~git20230830.9f66c42d1: * pipe-tunnel: rework the source * pulse-server: support use_system_clock_for_timing * pulse-server: rename a variable to avoid confusion * pulse-tunnel: Make sure we send available data * jack: mark object registered when emit is suppressed * pulse-server: allow monitors when selecting source by index * Port: Add tag param * alsa: refuse quantum/rate changes when driving irq based * context: take current target when not updated * 0.3.79 * Revert \"impl-node: improve suspend\" * node: add xrun counter in clock io * impl-node: improve debug * alsa: add device.profile.pro property * impl-node: suspend before clearing format * Sat Aug 26 2023 virtuousfoxAATTgmail.com- Update to version 0.3.78+32~git20230825.26ecde20b: * pw-mon: check stdout, not stderr for tty * jack: support jack_port_tie * context: scan link groups in both directions * Revert \"audio-src: test stream timings\" * conf: add example empty stream.rules template * conf: support ! to negate the match * conf: handle regcomp errors and warn * jack: make sure we can always find our own ports * Fix problems found in the review of the broadcast sink support. * Add suport for braodcast sink * Fix problems found in the review. * Check if the adapter supports bap broadcast before registering the broadcast endpoint. * Add support for bluez5.roles for broadcast source. * Create the fake device with the actual adapter DBus path. * bluez5: Add LE Audio BAP broadcast source support Once Pipewire is started it will try to register a BAP broadcast source media endpoint on UUID 00001852-0000-1000-8000-00805f9b34fb if the media codec that supports BAP and the adapter indicates LE Audio is supported. When the endpoint is detected (over DBus) by Pipewire and it has a broadcast sink UUID, a new device will be created with the address 00:00:00:00:00:00. This device will be our simulated remote device. This is done because a broadcast source emitting device does not need any connection to start transmitting the audio. This device is set as connected. When the SetConfiguration DBus method is called and the spa_bt_transport structure with the profile BAP broadcast source is created we switch the device from the one read from DBus to the one created by us. This is done because in BlueZ, when the transport is created, at the Device property, BlueZ sets the adapter as the device that the transport is connected to. Here the device will have the newly created SPA_BT_PROFILE_BAP_BROADCAST_SINK profile connected. Added code that allows to create a node in the graph for a device connected to the SPA_BT_PROFILE_BAP_BROADCAST_SINK profile. * audioconvert: fix typo in neon function * impl-node: improve suspend * Revert \"impl-node: improve suspend\" * Wed Aug 23 2023 virtuousfoxAATTgmail.com- Update to version 0.3.78+14~git20230823.88e4a6976: * jack: emit latency notify when buffer_frames changes * alsa: reflow some code * bluez5: fix BAP profiles showing * alsa-card-profiles: simplify adding custom profiles * pw-top: add \'batch-mode\' and iterations known from top * pw-top: format \'show_help\' and sort options * pulse-server: add alsa source and sink module * conf: 0 is no longer the default * client-rt: add some examples for alsa properties * stream: improve docs a little more * stream: add some \\code markers around code blocks * audioconvert: add queued input to the delay * audio-src: test stream timings * alsa: improve property handling * 0.3.78 * v4l2: handle inotify errors * impl-node: improve suspend * Mon Aug 21 2023 virtuousfoxAATTgmail.com- Update to version 0.3.77+23~git20230821.cd24fe2fe: * bluez5: A2DP and BAP profiles to enumerate only codec profiles * Fri Aug 18 2023 virtuousfoxAATTgmail.com- Update to version 0.3.77+22~git20230818.8f6d26663: * bluez5: reacquire transport always for playing for A2DP * po: Update Swedish translation * Sun Aug 13 2023 virtuousfoxAATTgmail.com- Update to version 0.3.77+20~git20230809.7b40ca4f2: * pod: Fix spa_pod_builder_control() return type * evl: fix timerfd read * meson: change EVL include paths * evl: Use complete API to create xbufs * Tue Aug 08 2023 virtuousfoxAATTgmail.com- Update to version 0.3.77+16~git20230808.86bd0eb70: * logger: Add a mechanism to force colourised logging * evl: update to Xenomai4 r46 * pulse-server: set all change_mask flags when removing * spa: set MANDATORY flag when building video format with modifier * doc/dma-buf: Use references and other small fixes * Update ka.po * jack: handle node.always-process = false jack nodes * jack: ports become visible when the registration is queued * module-vban: tweak rate adaption a little * module-vban: read the right amount of samples * module-profiler: handle undefined max_align_t * acp: try to set a verb before probing pro-audio devices * Update FSF address * module-rtp-sap: don\'t use deprecated inet_aton * Fri Aug 04 2023 virtuousfoxAATTgmail.com- Update to version 0.3.77+2~git20230804.1daae4c36: * context: Don\'t stop setting runnable when meeting the driving node * gst: Prevent a crash when stopping device provider * 0.3.77 * doc/dma-buf: Document usage of SPA_VIDEO_FLAG_MODIFIER flags * jack: always do graph update when link changes * module-x11-bell: protect libcanberra calls with a mutex * Wed Aug 02 2023 virtuousfoxAATTgmail.com- Update to version 0.3.76+29~git20230802.da464853e: * jack: handle port registration events for jack clients * impl-node: add client.api to global properties * conf: check for valid config name * audioconvert: remove requirement for data_loop * module-profiler: make sure we don\'t overrun the flush buffer * pipewire: module-profiler: fix misaligned access * audioconvert: rate limit the out-of-buffer logging * audioconvert: only dequeue a buffer when queued * v4l2: check for format support * modules: add vban midi support * modules: make sure we increment the n_frames correctly * Use 0.3.PWVER for soname versioning, instead of 0.PWVER.0 * Tue Aug 01 2023 virtuousfoxAATTgmail.com- Update to version 0.3.76+17~git20230731.88f0dbd6f: * v4l2: don\'t set inotify on /dev * alsa: don\'t change avail when unchanged * pulse-server: keep track of sink/monitor changes * spa: bluez: backend-hsphfpd: actually free endpoint * spa: bluez: backend-hsphfpd: remove unnecessary NULL checks * spa: bluez: use some more spa_auto * * spa: bluez: use spa_auto for DBusError * spa: bluez: add `send_with_reply()` dbus helper * spa: bluez: use spa_autoptr for DBusMessage * spa: fixes for dereferencing pointer to incomplete type in __typeof__ * pulse-server: improve device lookup * pulse-server: move the changed counter internally * pipewire: allow setting metadata on more objects * perm: add a new L permissions * pipewire: document permissions needed for methods * core: X permissions is needed to destroy a global * perm: add permission mask to global * Fri Jul 28 2023 virtuousfoxAATTgmail.com- Update to version 0.3.76~git20230727.9bcc90fdc: * 0.3.76 * man: improve pw-cat man page formats * pw-cat: exit when we are unconnected * pulse-server: improve network and virtual node checks * stream: flags should not override properties * alsa: disable htimestamp by default * modules-vban: add vban sender and receiver * protocol-pulse: document 2 other quirks * audioconvert: add option to disable volume updates * meson.build: enable LC3 by default * pipewire: add missing stdbool.h include to version.h.in * thread-loop: only signal when option is set * Sun Jul 23 2023 virtuousfoxAATTgmail.com- Update to version 0.3.75+1~git20230722.55812195c: * module-rt: error out on load if no bus is available * 0.3.75 * module-rt: first destroy the loop and then rtkit * module-rt: fall back to some defaults in case of error * module-rt: use lock for thread lookup and invoke * module-rt: wait for thread start * thread-loop: signal when started * impl-link: only check permission changes for owners * client-node: don\'t set io on our internal mix * module-rt: make sure we change nice of main_pid * module-rt: do rtkit from a thread-loop * module-profiler: use an event to send out data * dbus: add some more debug * audioconvert: improve EMPTY flag on output buffers * improve some debug * module-rt: don\'t block on method calls * test: fix test * module-profiler: use per-driver ringbuffer * profiler: use rt_events * impl-node: add rt_events * spa: libcamera: add libcamera version check for properties::SystemDevices * spa: v4l2: get the device number of the v4l2 device * spa: libcamera: consume the device numbers libcamera property * spa: add some more docs * stream: reorder property rules evaluation * impl-link: enforce permissions in links * spa: bluez: upower: keep track of pending call * spa: bluez: add `steal_reply_and_unref()` helper * spa: bluez: add `cancel_and_unref()` dbus helper * spa: bluez: remove some unused `DBusError`s * spa: bluez: backend-hsphfpd: use `const char *` for string literal * spa: bluez: backend-native: remove unnecessary array of DBusMessageIter * spa: bluez: backend-native: fix DTMF string leak * spa: bluez: fix spelling of HAVE_REALLOCARRAY feature macro * spa: Add SPA_VIDEO_FLAG_MODIFIER_FIXATION_REQUIRED * Fri Jul 14 2023 virtuousfoxAATTgmail.com- Update to version 0.3.74+11~git20230713.abe8c3581: * spa: bluez: free `spa_bt_transport::configuration` * module-raop-sink: bump latency to 1.5sec * module-raop/rtsp-client: Pass content to reply function * module-raop-sink: Always log reply status * Revert \"module-raop: zero uppet timestamp bits\" * module-raop-discover: Two small fixes * spa: add atomic.h and port macros to it * private: we only ever decrement activation with 1 * pipewire: add method to check linked library version * thread: expose pw_thread_fill_attr() * jack: avoid using private fields * 0.3.74 * Revert \"modules: enforce equal library and compiler versions\" * client-node: create global mix for initial ports * spa: fix compilation * modules: enforce equal library and compiler versions * protocol-pulse: remove private.h include * client-node: do check for data_loop * modules: remove include of private.h * spa: add spa_ratelimit * protocol-native: move compat_v2 to protocol * pulse-server: fix remove proplist command * gitignore: do not ignore the \".gitlab\" directory * treewide: add some examples for the `spa_auto *` macros * spa: utils: add scope based resource cleanup * impl-node: remove the node from the target peers * remote-node: don\'t init/release our special mix * client-node: clear resource after freeing mem * improve debug * impl-node: first remove, then add ourselves * spa: warn out of buffers * module-raop: zero uppet timestamp bits * protocol-native: give an error when loading twice * module-rtp: support sess.ignore-ssrc globally * rtp: add option to ignore SSRC * jack: create mix explicitly * client-node: create mix explicitly * Wed Jul 12 2023 virtuousfoxAATTgmail.com- Update to version 0.3.73~git20230706.44deacbc6: * * Fri Jul 07 2023 virtuousfoxAATTgmail.com- Update to version 0.3.73~git20230706.44deacbc6: * * Mon Jul 03 2023 virtuousfoxAATTgmail.com- Update to version 0.3.72+40~git20230703.c34a98707: * pulse-server: add option to disable fix_ flags * bluez: allow buffers with maxsize < duration *frame_size * module-rtp: don\'t use sap port as src port * Sat Jul 01 2023 virtuousfoxAATTgmail.com- Update to version 0.3.72+37~git20230630.eaaa0cd99: * modules: improve some docs * filter-chain: simplify biquads * pw-cat: only override properties when not already set * pulse-server: use the fixed rate for graph rate * pulse-server: debug the fixed format/rate/channel * pipewire: core: static assert member order requirement * pipewire: pw_proxy_init(): take pointer to core * pipewire: log: do not generate parentheses around variable decls * pipewire: core: remove redundant member * pulse-server: module-combine-sink: remove redundant member * spa: bluez: backend-native: fix a memory leak * pipewire: impl-metadata: replace open-coded vasprintf() * pipewire: parse_pw_debug_env(): split in place * pipewire: parse_pw_debug_env(): simplify empty string check * Thu Jun 29 2023 virtuousfoxAATTgmail.com- Update to version 0.3.72+23~git20230629.2963e7fd4: * alsa: disable htimestamp when it seems to error too much * alsa: add option to disable htimestamps * alsa: warn when the htimestamp seems wrong * filter-chain: move sofa and lv2 to external modules * meson: clean up echo-cancel sources * Wed Jun 28 2023 virtuousfoxAATTgmail.com- Update to version 0.3.72+18~git20230628.ab8e67e88: * filter-chain: improve error reporting * filter-chain: only reset rate when suspended * pulse-server: make sure we have a card_name * filter-chain: support notify to control links as well * module-loopback: recalc delay when starting * filter-chain: instantiate graph when starting * filtet-chain: instatiate only once * stream: don\'t emit process when disconnecting * modules: add example filter * alsa: try to recover when mmap_begin fails * modules: add ASYNC flag * stream: add ASYNC flag * Mon Jun 26 2023 virtuousfoxAATTgmail.com- Update to version 0.3.72+6~git20230626.88bb0bd7c: * alsa: Allow to augment ucm port properties * src/modules/meson: ensure Opus libs were actually found, too * spa/plugins/bluez5/meson: removed some unneeded redefines * context: avoid segfault when no fallback driver * cleanup unused variables * audioconvert: don\'t negottiate rate when resample is disabled * 0.3.72 * alsa-compress-offload-sink: Fix format renegotation * Fri Jun 23 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+173~git20230623.de2d7a583: * alsa: Actually write out pitch elem value during initial reset * impl-port: avoid doing port calls when destroying * stream: don\'t call process when we have no buffers * impl-port: clear port Format when no mixers * Fri Jun 23 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+169~git20230623.b464d2145: * pulse-server: don\'t override initial volume/mute * module-jack: init latency correctly * impl-port: renegotiate format after a port was unused * Thu Jun 22 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+166~git20230622.1ce94628e: * client-node: rework mix_info * jack: set peer_port to NULL in mix * alsa: improve audio output to multiple devices * module: disable resample when following graph rate * Revert \"module-loopback: request renegotiation when suspended\" * Revert \"audioadapter: renegotiate when EnumFormat changes\" * remote-node: remove IO_Buffers before releasing the mix * Wed Jun 21 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+159~git20230621.2c5a3e959: * module-loopback: request renegotiation when suspended * audioadapter: renegotiate when EnumFormat changes * Revert \"module-loopback: request renegotiation when suspended\" * stream: keep calling process when there is data * impl-link: block some actions when destroyed * impl-port: only add and remove the mix info once * client-node: rename confusing id to mix_id * Wed Jun 21 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+152~git20230620.85af2bdef: * jack: set peer_id correctly * impl-node: make node not-runnable when destroying * context: a node is runnable only when active * remote-node: refactor init/create/ensure mix * impl-port: improve debug * filter-chain: add link to biquad help page * pipewire-aes67: move the PTP driver to AES67 process * node-driver: allow specifying both PHC and ID * module-rtp-sap: get source.ip from network interface if not supplied * module-rtp-source: fix crash on stream deletion * rtp-stream: do not set false ptime values * pipewire-aes67: improve default config * module-rtp-sap: bind transmission socket * Mon Jun 19 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+139~git20230619.f2ba4caaf: * alsa: silence ctl probe errors * alsa: ratelimit impossible timeout messages * module-ffado: don\'t read/write twice * module-jack: fix jack scheduling * module-node-factory: add option to export object * core: ensure we don\'t remove and disconnect twice * jack: don\'t update srate/bufsize when there is a callback * stream: add some docs * stream: PIPEWIRE_AUTOCONNECT env overrides config * Sat Jun 17 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+130~git20230617.abb300750: * alsa: Implement playback/capture rate control for USB gadgets * Sat Jun 17 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+129~git20230616.2919b55f7: * impl-link: don\'t set io in mix * properties: improve containter serialize * modules: build virtual sink/source * pulse-server: add virtual-sink and virtual-source * module-combine: always use last input buffer * module-loopback: always dequeue the last capture buffer * Thu Jun 15 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+123~git20230615.a0a32af38: * pulse-server: add 2 quirks to block sink/source updates * audioconvert: add channelmix.mix/max-volume param * module-session-manager: use dynamic builder * module-loopback: request renegotiation when suspended * audioconvert: improve debug * stream: remove READ flag when removing params * module-loopback: keep separate info for the delay rate/channels * src/modules/meson: make Opus custom modes optional for NetJack2 * impl-node: improve debug * resample: improve debug * impl-port: make the rt.mix_list private * stream: data_loop is NULL when not connected * stream: remove and check callbacks safely * module-zeroconf: fix compilation * module-zeroconf: Fix deduplication * module-raop: Avoid props creation for duplicates * module-netjack2: improve OPUS fallback * module-netjack2: fix compilation without OPUS * module-netjack2: start follower after START message * module-netjack2: support int and opus in driver * module-netjack2: add int support * module-netjack2: add opus support * module-raop: set min-latency correctly * pulse-server: handle special device names in play/record * pipewire: thread-loop: print thread id as pointer * pipewire: module-raop-sink: check asprintf return value * module-netjack2: handle NULL socket * examples: fix indent * Update Catalan translation * module-profiler: ignore peer targets * module-netjack2: do some more checks * module-netjack2: samples are transmitted in little endian * module-netjack2: add MIDI send and receive * mixer: add some more debug * module-raop: add default 1 sec of latency * raop: log last error on connection failure * examples: add another example * docs: clarify writefd in transport * doc: clarify proxy/resource * doc: small improvement * module-raop: fix deduplication * Mon Jun 05 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+82~git20230605.6b6f3432f: * alsa: htimestamp needs an operation to sync with hw * alsa: enable htimestamp mode * alsa: fix impossible timeouts * alsa: decouple delay from avail * module-netjack2: handle driver reconnect * module-protocol-native: close fds from zombie clients * docs: add netjack2 manager * module-netjack2: fix driver name * module-netjack2: lock and force rate and quantum * module-netjack2: set latency param * module-ffado: fix latency configuration * module-netjack2: refactor * module-netjack2: use frames from graph and sync * module-netjack2: clear empty buffers * module-netjack2: improve node names * module-netjack2: small improvements * module-profiler: add per client xrun count in profiler data * Thu Jun 01 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+65~git20230601.9727bf3c4: * modules: fix some compiler warnings * pipewire: introspect: do not leave `spa_param_info`s uninitialized * pipewire: module-ffado-driver: don\'t have labels at the end * module-netjack2: add netjack2 manager * module-netjack2: small improvements * filter: add support for TRIGGER * ci: fix quotation in `MESON_OPTIONS` * doc: update with netjack2 driver * ci: add `-UFASTPATH` to build_all * ci: install `libffado-devel` on fedora * module: add a netjack2 driver module * module-ffado: fix compilation with -UFASTPATH * module-ffado: add docs * module-ffado: set playback buffers as well * modules-ffado: add properties * modules: add ffado driver module * Update Polish translation * Update Turkish translation * bluez5: do not delay transport release if it is not active * Thu May 25 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+46~git20230525.2ee7996cf: * impl-node: improve stats * impl-node: drivers run remotely now * audioconvert: fix monitor port latency * remote-node: only signal graph end when profiling * filter: fix warning * stream: do fast calls for the process function * pulse-server: improve debug * Wed May 24 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+39~git20230524.3605eae6a: * impl-node: fix compilation * impl-node: only copy relevant fields from target * impl-node: add id and name to pw_node_target * Fix jackdbus-detect module name in comment * rtp-sap: use correct property key to get channel names * rtp-sap,AES67: reorder sdp records to be compatible with Dante/AES67 devices * rtp-sap: use the ptime from the stream in the announcement and omit the decimal ms if they are 0 * rtp/stream: calculate and format the ptime property as float * Wed May 24 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+31~git20230523.b74f2e19a: * impl-node: remove duplicated fields * doc: fix pod sizes * doc: update * gst: fill default stride in metadata * Mon May 22 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+27~git20230522.b8fe83218: * impl-node: run the remote driver node logic remotely * Revert \"impl-node: run the remote driver node logic remotely\" * jack: also allow signaling ourselves. * fix -UFASTPATH compilation * impl-node: remove warning * client-node: make old driver nodes work * client-node: signal graph complete * impl-node: do stats at the end of the cycle * impl-node: run the remote driver node logic remotely * impl-node: update xrun_count of late nodes * test: test-logger: fix systemd journal usage * context: don\'t use fallback driver if priority_driver <= 0 * context: add method to add/remove context listener * pulse-server: module-gsettings: check schemas exist before starting * bluez5: media-sink: include codec into media.name * Audio Pro A26: disable hw-volume feature, because volume was being reset to 100% on each reconnect * Fri May 19 2023 virtuousfoxAATTgmail.com- Update to version 0.3.71+11~git20230519.e3d9d9c9f: * audioadapter: warn !started and scheduled only once * impl-node: always resume non-driver nodes when finished * remote-node: update some internal state * impl-node: improve graph xrun detection * filter: return better value from process() * stream: improve debug * doc: Some minor fixups to the scheduling doc * bluez5: check if we have any codecs before trying to register * audioconvert: suggest to inline some functions * jack: update bufsize and samplerate when skipping notify * jack: align sample rate callbacks with buffersize callbacks * 0.3.71 * Wed May 17 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+194~git20230517.05f5e416e: * filter-chain: include unistd for getcwd * pulse-server: add server.dbus-name option * stream: fix state changes * module-filter-chain: do better error reporting * stream: keep error res around * module-filter-chain: give better error when load fails * context: Don\'t stop at driver nodes, only driving nodes * doc: add more docs * docs: document some more * doc: improve formatting * doc: improve formatting * docs: add more docs * docs: document some more * doc: document registry events and methods * doc: add more docs * Mon May 15 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+179~git20230515.736e9cc94: * null-audio-sink: make it possible to override node.driver * impl-node: add some comments * man: update man page some more * module-rtp: sync session unlink with data thread * module-rtp: fix sess.media usage * module-rtp: set default sess.media in properties * doc: fix comment * doc: add some more docs * module-rt: improve messages * impl-link: only activate links between runnable nodes * Sat May 13 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+169~git20230512.a25c02107: * jack: don\'t fill aliases by default * module-roc-source: make sure we don\'t overflow target_latency * module-rtp-sap: ttl is uint32_t * rtp-sink: fix ttl property which is NOT a bool * jack: only emit register notify in pairs * jack: restore previous global thread_utils * impl-node: move signalfd into pw_node_target * module-raop: only send volume when recording * properties: fix serialization of values * pulse-server: include rate/format for tunnel * pulse-server: remove / when no target object * pulse-server: improve channel formatting * Thu May 11 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+157~git20230511.41ec84185: * jack: make a real notify queue * spa: make latency struct to compare const * pulse-server: pending-sample: handle client disconnection correctly * pulse-server: pending-sample: add `on_` prefix to event handlers * pulse-server: add `operation_free_by_tag()` * pulse-server: pending-sample: only start operation if not replied already * pulse-server: pending-sample: factor out freeing logic * pulse-server: pending-sample: only send reply once * pulse-server: pending-sample: set `replied` flag on error * pulse-server: pending-sample: rename `ready` to `replied` * pulse-server: move sample playing into pending-sample.c * aes67: adapt aes67 default config file to use the rtp-sap module * rtp-sap: use correct audio format string for L24 mime * rtp-sap: decrement session counter when a session is freed * module-jack: make stream ports physical * jack: don\'t emit portregistration when inactive * impl-node: optimize peer activation * jack: destroy port only after emitting the portregistration * jack: only emit graph order changes for new links * jack: use refcount for freezing callbacks * Wed May 10 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+137~git20230510.ccece8316: * jack: Don\'t call callbacks from blocking function * audioconvert: use target_rate/quantum when starting * jack: only emit callbacks when active * Tue May 09 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+134~git20230509.5485db09d: * jack: Assign unique name to client_name * chore: fix warnings shown by Clang 16 * context: Also add driver to always_process inactive nodes * module-jack: add midi support. * alsa: avoid division by 0 * module-jack: add volume control * module-jack: also search in PREFIX * module-pipe: reword docs from the perspective of the module * improve module docs * module-rt: limit nice level based on rtkit min nice * module-rt: add some more error to errno mappings * impl-node: improve signal_time * impl-client: check global id registry generation in client.error method * Sat May 06 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+121~git20230506.2ed65a7e3: * profiler: improve profiler stats * module-combine-stream: fix race when destroying streams * filter: fix compilation with -UFASTPATH * spa: make node callbacks fast * hooks: add and use _fast callback function * audioconvert: exit early to ask more data * filter: remove some unused code * loop: clear rmask after dispatching all sources * filter: don\'t copy position info * data-loop: optimize iterate dispatch * loop: add optimized non-cancellable iterate * move some trace to trace_fp * module-jack: load libjack.so.0 with dlopen * pulse-server: add some module docs * jack: emit a warning when disabled * client-node: clean up useless node object * module-pulse-tunnel: avoid using NULL module * impl-node: don\'t do output mix for remote nodes * impl-node: add some SPA_LIKELY * impl-node: avoid division by zero better * pulse-server: remove some warnings * pipewire-pulse: add module-jackdbus-detect * pulse-server: rework audioinfo argument parsing * improve debug of commands and events * module-jack: add jack.connect option * module-jack: add jack.client-name option * module-jack: handle non-duplex case * module-jack: fix compilation without fastpath * Thu May 04 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+93~git20230503.55fc2ac7e: * stream: ignore latency of monitor stream ports * impl-port/audioconvert: add PORT_IGNORE_LATENCY * module-access: add missing include * impl-node: restore previous signal_time * module-jack: implement with pw-filter * filter: add more possible params * client-node: take data_loop and system from node * spa: bluez: modemmanager: fix DBusMessage leaks * spa: bluez: modemmanager: do not log message sender as warning * spa: bluez: backend-native: use correct pointer * spa: bluez: modemmanager: remove unused member * spa: bluez: backend-hsphfpd: fix dbus type * spa: bluez: backend-hsphfpd: use `dbus_bool_t` for `DBUS_TYPE_BOOLEAN` * spa: bluez: do not check if service is running * spa: bluez: initalize DBusError object * pulse-server: combine-sink: add latency_compensate option * module-combine-stream: add option to add delays for latency compensation * module-jack: don\'t crash when NULL source/sink * impl-node: work around old clients * jack-tunnel: use cycle_wait/cycle_signal * remote-node: don\'t send signal/awake time in ready * impl-node: call implementor of node on xrun * impl-node: process_node now always run on the implementer * module-raop-sink: Add default PW_KEY_DEVICE_ICON_NAME prop * client-node: activate using the node eventfd * impl-node: use the added boolean to add/remove source * module-combine-stream: add latencyOffsetNsec prop * jack: don\'t emit callbacks from do_wait() * impl-node: implement pw_impl_node_trigger * impl-node: always wake up nodes with the eventfd * node: small cleanups and debug improvements * stream: move from dequeued to queued for capture stream flush * impl-node: call process_node directly * impl-node: fix timing for client-nodes using trigger * Tue May 02 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+59~git20230501.c23c27b56: * module-raop: fix warning on uninitialised res variable * raop: Deduplicate sink creation * module-access: determine trusted application executable * impl-node: handle ready callback correctly * module-combine-stream: propagate latency * bluez5: make set transport volume calls async * bluez5: unref pending calls after cancel * meson: fix filename * modules: add jackdbus-detect module * jack-tunnel: let client cleanup continue in on_shutdown * impl-node: set driving state correctly * Fri Apr 28 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+48~git20230428.7c5b61295: * JACK: update to newer headers * Revert \"jack-tunnel: run graph from JACK thread\" * jack-tunnel: run graph from JACK thread * context: hide data_loop_impl * filter: implement set_active() * stream: move pw_impl_node to private.h * loop: keep loop and system around * audioconvert: clear format and buffers on start error. * Thu Apr 27 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+40~git20230427.9e7921b37: * module-jack: improve xrun reporting * module-jack-tunnel: improve some docs * audioconvert: always allow peaks resampler * doc: add jack-tunnel to docs * jack-tunnel: add a new 0-latency JACK sink/source module * private: improve ensure_loop debug message * protocol-native: don\'t remove all fds in clear * jack: improve error reporting * impl-node: calculate stats at cycle start * impl-node: improve profile reporting * impl-node: refactor gettime * impl-node: initialize the driving state correctly * client-node: pass the ready status in the activation state * client-node: update the driving node status * bluez5: select BAP audio locations in SelectProperties * jack: improve jack-sink and jack-source * audioconvert: use a new boolean to check if ready * Tue Apr 25 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+23~git20230425.ecbb1b0c4: * pipewire-alsa: Propagate stream errors * impl-node: don\'t move rate/quantum when moving drivers * Tue Apr 25 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+21~git20230424.78e54b1b2: * jack: make spa_return macros log a warning * jack: we don\'t need a completed link in jack_port_connected * jack: activate/deactivate should trigger port register * jack: avoid registering same port names twice * Add 3M WorkTunes Connect to bluez-hardware.conf * bluez5: media-source: remove unnecessary workaround * Sat Apr 22 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+15~git20230422.f7b57d87d: * bluez5: backend-native: fix off-by-one in at+xevent * raop-sink: only set volume when connected * filter-chain: improve debug * module-echo-cancel: set rec/source/play_info fields correctly * jack: on do shutdown on EPIPE * mixer: increase mixer ports from 128 to 512 * client-node: remove hardcoded limit for io areas * jack: Add jack.max-client-ports config option * protocol-native: add some more debug * jack: add jack.show-midi option * jack: fix some jack test errors * bluez5: AT+XEVENT input validation, cleanups & respond OK * bluez5: Add battery level reporting via AT+XEVENT * pod-builder: move some code around to help gcc 13 * Thu Apr 20 2023 virtuousfoxAATTgmail.com- Update to version 0.3.70+1~git20230420.83d2e85f4: * parser: add extra check to make coverity happy * 0.3.70 * pw-config: fix include for isatty * man: fix underline in pw-config man * man: add pw-config man page * properties: add color support for dumping properties * module-rtp: just log generic sendmsg error debug log * gst/pipewiresrc: Let GstBaseSrc handle pseudo-live calculations * tools: add pw-config * properties: add some more features to properties serialize * conf: expose some internal methods * conf: always fail when loading specified config name * bluez5: media-source: transport not started is not an error * bluez5: media-sink: don\'t fail A2DP duplex sink if remote idles * v4l2: add support fot G_CTRL * module-raop: implement remote volume * gitlab-ci: hopefully fix the CI failures after base image bumps * gitlab-ci: update Fedora image from 35 to 37 * gitlab-ci: update Alpine image to 3.17 * gitlab-ci: update the version of Ubuntu used to 22.04 * examples: fix type of getopt_long return value * logger: add special stdout and stderr filenames * support: don\'t set linebuf on stderr * pulse-tunnel: proxy volume/mute * stream: expose pw_stream_set_param() * audioconvert: handle recursive Props set_param * module-x11-bell: move error to info * conf: shortcut failure * pipewire.conf: add condition for exec and modules * alsa: hopefully fix compilation on ubuntu CI * filter-chain: improve error reporting * filter-chain: config is only required for bq_raw * Sat Apr 15 2023 virtuousfoxAATTgmail.com- Update to version 0.3.69+17~git20230414.9d7d3599d: * bluez5: output silence if no data for some ISO sinks * bluez5: wait for all pending transports in CIG before marking active * alsa: also define area_addr when version check missing * alsa: include version.h to get the version macros * alsa: handle old alsa version * bluez5: fix glib signal disconnect * alsa: fix area pointers * Revert \"alsa-mixer: allow to re-attach the mixer control element\" * doc: mention .conf extension for config files * metadata: add support for initial metadata * pw-metadata: add -l option to list available metadata * metadata: return pw_metadata from factory create * module-rtp: silence some debug * context: improve state calculations * gst: implement renegotiation * pulse-server: improve echo-cancel aec_args parsing * aec-webrtc: support beamforming * 0.3.69 * Thu Apr 13 2023 virtuousfoxAATTgmail.com- Update to version 0.3.68+37~git20230412.94a1531ec: * thread-loop: remove callbacks in destroy * Revert \"alsa: UCM conflicting devices changes\" * pipewireclock: Disable clock_reset() for now * man: pipewire.conf(5): fix rendering of quotes in JSON * man: pw-cli: remove empty examples section * man: pw-metadata: add examples * man: pw-metadata: document --name option * man: pw-metadata: fix display of --delete and remove unnecessary paragraph * bluez5: iso-io: larger idle time * bluez5: lc3: use high-reliability QoS defaults * bluez5: refresh device set leader when current one disconnects * bluez5: media-sink: fix reference time vs. resampling delay * context: handle non-passive driver links to itself * module-echo-cancel: support different channels per stream * aec: add new init2 method to initialize with different formats * context: make driver runnable when we add a runnable node * Mon Apr 10 2023 virtuousfoxAATTgmail.com- Update to version 0.3.68+21~git20230410.5d1782760: * bluez5: media-sink: resync ISO streams on playback start * alsa: separate max_error and max_resync * alsa: also set period size when using IRQ mode * alsa: fix capture timings and drift * jack: refactor get_time_ns function * alsa: fix rate match when using IRQ * bluez5: emit BAP device set nodes as needed * bluez5: wait for devices in the same set before emitting nodes * bluez5: parse device set information via dbus * bluez5: iso-io: get BAP interval from dbus, not getsockopt * bluez5: iso-io: ensure streams are initially marked idle * bluez5: set BAP channel location from transport if unset * bluez5: lc3: number of blocks is not the number of channels * bluez5: add some debug for media-sink * alsa-profiles: SB Audigy: stereo mixer paths * alsa-profiles: SB Audigy: rename path config file * alsa-profiles: SB Audigy: remove absent elements * bluez5: backend-native: add two missing OK HFP replies * alsa-profiles: use SB Audigy PCM mixer controls * filter-chain: fix bq_raw activate * module-filter-chain: add raw biquad * Thu Apr 06 2023 virtuousfoxAATTgmail.com- Update to version 0.3.68~git20230406.950c4487e: * 0.3.68 * pulse-server: add enable_opus support in rtp-send * module-sap: add opus to sap receiver * modules: update docs * spa:bluez5: fix compilation * Replace ru.po * test: add more lossless tests * fix compilation * audioconvert: implement mix/resample_disabled * adapter-control: avoid the divide by zero while generating sequence. * audioconvert: donot return errors in the volume ramp setparams * module-raop: handle 0 timing_port * private: don\'t block context related problems, just emit a warning * support: add support for checking loop context * stream: move some code around * thread: use pthread_equal to compare thread ids * thread-loop: only restore recurse on error * thread-loop: add some additional check * thread-loop: small cleanup * echo-cancel: reset buffers in suspend * context: Only activate runnable nodes * audioconvert: fix return values * spa: move audio props to audio section * audioconvert: add a invalid value for scale * adapter-control: bundle the volume ramp parmeters with volume * audioconvert: make volume ramp parameters non-sticky * audioconvert: grow the volume ramp buffer * adapter-control: add support of scale volume ramp param * audioconvert: add support of volume ramp scale parameter * adapter-control: add support for volume ramp time params * audioconvert: add support for volume ramp time params * adapter-control: add CLI options * adapter-control: use the volume ramp parameters to ramp volume * audioconvert: add volume ramp parameters * audioconvert: parameterize channelmix_process_control() function * adapter-control: add more debug messages * adapter-control: enable SPA debug logs * bluez5: media-sink: use iso-io for BAP * bluez5: add spa_bt_iso_io that does the low-level part for ISO * bluez5: add rate matching for BAP to media-sink * bluez5: split rate control out of decode-buffer * bluez5: don\'t set bluez timeout on transport release * bluez5: use release timeout for all transport types * context: also follow link-groups * Revert \"context: handle link-group nodes\" * stream: don\'t crash when _set_control is given 0 values * keys: update comment * impl-node: add support for node.force-rate=0 * volume: Fix inverted check for buffer validity * context: don\'t try to restore rate on !runnable nodes * Thu Mar 30 2023 virtuousfoxAATTgmail.com- Update to version 0.3.67+214~git20230330.108715ebf: * alsa: add tsched use to info log * stream: invoke RequestProcess in the main loop * examples: fix adapter control * buffers: add new ASYNC flag * audioconvert: pass the NODE_ASYNC flag correctly * audioadapter: clear rate matching when not using converter * improve logging * pulse-server: improve Buffer param * Thu Mar 30 2023 virtuousfoxAATTgmail.com- Update to version 0.3.67+206~git20230329.495a227e5: * jack: don\'t call callbacks when deactivating * alsa: only update alsa sources when added to the data loop * alsa: start playback right away in IRQ mode * alsa: setup sources from the data thread * alsa: in IRQ mode, disable sources while we wait * alsa-pcm: use full period size in IRQ mode * alsa: add disable-tsched to params * alsa: Implement period-based wakeups * impl-link: only make passive links with suspendable peers * Revert \"impl-link: make passive link if both ports are passive\" * Revert \"impl-node: assume Sink/Source nodes are passive\" * module-pipe-tunnel: remove extra whitespace * context: handle link-group nodes * module-link-factory: ignore link.passive by default * impl-node: assume Sink/Source nodes are passive * impl-link: make passive link if both ports are passive * context: init flags before starting recalculate * impl-node: only update the trigger node state once * module-rtp: free the avahi client as well * module-pulse-tunnel: don\'t unload module from pulse thread * camera: work around target_ mishandling * stream: we should not update clock automatically * src/daemon: move the optional drop-ins to conf.avail * spa: fix wrong meson check for BAP * bluez5: do transport release synchronously * bluez5: set right transport active when acquiring linked * pipewire-pulse: generate silence on underflow correctly * Fri Mar 24 2023 virtuousfoxAATTgmail.com- Update to version 0.3.67+179~git20230324.369859348: * spa: reuse code to clear the timers * node-driver: fix position calculation * support: sync timers with data loop * bluez5: do rate matching before next timeout * plugins: simplify target_ handling * Fri Mar 24 2023 virtuousfoxAATTgmail.com- Update to version 0.3.67+174~git20230323.f30954381: * context: update the duration/rate directly when node idle * node: update the duration/rate from the target * alsa: update rate/duration from target * node: add target_rate and target_duration in io_clock * context: rename current_quantum/rate to target_ * * Thu Mar 23 2023 virtuousfoxAATTgmail.com- Update to version 0.3.67+169~git20230323.25f5165e4: * acp: return EEXIST when seeing a linked device * alsa: improve properties * module-combine-stream: improve docs * context: restore driver rate when no longer forced * context: don\'t reconfigure when already pending * modules: clean up USAGE arguments * audioconvert: use spa_strbuf * audioconvert: fix test * audioconvert: disable upmix by default again * acp: fix pa_strbuf * module-echo-cancel: null check playback stream * filter-chain: add docs * protocol-native: emit bound_id and bound_props from protocol * core: add bound_props event * impl-core: store hello version in core resource * alsa: avoid assert * alsa: fixup after merge * alsa: use pa_strbuf * alsa: ucm: Fix spurious mixer path removal on initial profile set * alsa-ucm: Fix more instances of profile-verb conflation * alsa-ucm: Consider devices using the same PCM as incompatible * alsa-ucm: Disable old modifiers when switching profiles of same verb * alsa-ucm: Add enable, disable, status helpers for modifiers * alsa-util: Fix pa_alsa_get_supported_formats fallback. * alsa-util: Perform format and rate detection before setting HW params * alsa-profiles: rename mappings for Xonar SE * alsa-util: Add more standard sample rates. * alsa-mixer: extend pa_alsa_mixer_find with the subdevice check * alsa-mixer: fix the re-attach code for the mixer control element * alsa-ucm: remove extra space from the device.intended_roles property * alsa-ucm: Create multiple profiles per verb for conflicting devices * alsa-ucm: Disable old devices when switching profiles of same verb * alsa-ucm: Make mapping UCM contexts have only one modifier * alsa-ucm: Make mapping UCM contexts have only one device * alsa-ucm: Make ports store only one device * alsa-ucm: Remove combination port generation logic * alsa-ucm: Make one input/output mapping per UCM device * alsa-ucm: Split out helpers for device set name, description, priority * alsa-ucm: Fix device conformance check * alsa-ucm: Rewrite conformant device group generation with idxsets * alsa-ucm: Split profile creation into verb and profile parts * alsa-ucm: Make mapping creation independent from indvidual profiles * alsa-ucm: Stop conflating profile name with UCM verb name * alsa-ucm: Let profiles know their associated UCM verb * alsa-ucm: Set profiles by their struct instance, not their name * alsa-ucm: Add enable, disable, status helpers for devices * alsa-ucm: Make modifiers track conflicting/supported devices as idxsets * alsa-ucm: Always create device conflicting/supported device idxsets * alsa-mixer: allow to re-attach the mixer control element * bluez5: backend-native: fix getsockopt/fcntl error code handling * bluez5: align audio output of all BAP sinks * bluez5: backend-native: make SCO acquire asynchronous * bluez5: use nonblocking i/o for SCO * bluez5: don\'t try to acquire if we are getting errors * bluez5: don\'t rely on bluez event ordering for acquire * bluez5: acquire all BAP transports in a CIG at the same time * bluez5: parse BAP transport CIG/CIS properties * bluez5: hsphfpd: make transport acquire async * bluez5: backend-native: set state on synchronous acquire/release * bluez5: ofono: set transport state on synchronous acquire/release * bluez5: make A2DP/BAP transport acquire/release async * bluez5: change sink/source run state follow transport state * stream: don\'t allow _connect twice * bluez5: allow disabling sink or source endpoints * bluez5: ensure nodes are removed on disconnect * module-filter-chain: use pw_split_walk correctly * module-raop: fix compilation * module-adapter: remove dead code * alsa: fix uninitialized value * pw-cli: avoid property leak * module-avb: free the right source object * module-avb: handle NULL string * audioconvert: check return value of pod parse * handle some uninitialized variables * module-rtp: fix fd leak in error case * handle some error cases * audioconvert: fix passthrough PortConfig enum * pulse-server: handle NULL args in load-module * modules: avoid some leaks in error paths * module-combine-stream: make sure str is != NULL * module-rtp: don\'t deref io_position when NULL * modules-raop-sink: improve error handling * pulse-tunnel: improve rate matching * module-pulse-tunnel: fix rate correction sign for capture * module-raop: add audio rate in SDP * docs: add rtp-sap and rtp-session modules to docs * Fix rtp modules build on FreeBSD. * Fix module-zeroconf-publish.c build on FreeBSD. * Fix node-driver.c build on FreeBSD. * Add IPTOS_DSCP definition for !Linux platforms. * Fix rt-module.c build on FreeBSD. * Move ENODATA definition into the utils.h header for more visibility. * Disable alsa plugin on !Linux platforms. * Remove CirrusCI-based FreeBSD CI. * module-raop: fix compilation * module-raop: add match rules for discover * module-raop: use newer openssl API when we can * module-raop: fix memory leak * module-raop: remove unused include * module-raop: Use new openssl methods * module-raop: improve properties * module-rtp: fix writing of audio samples * module-rtp: include config.h to get HAVE_OPUS * module-rtp: add opus to mDNS * pulse-tunnel: translate pulse error to spa error * module-rtp: fix compilation without opus * module-rtp: add opus encoding * module-rtp: move stream init to specific media types * meson.build: remove explicit `install_dir` * Sun Mar 12 2023 virtuousfoxAATTgmail.com- Update to version 0.3.67+60~git20230311.1664df2c8: * bluez5: guard against processing when errored or not started * gst: deviceprodiver: Sort devices by session priority * po: Update Belarusian translation * meson.build: install symbolic links instead of compiling multiple times * module-rtp: fix sender latency * impl-link: use spa_aprintf when we can * module-rtp: send journal feedback * ci: add job that builds with ASan and UBSan * ci: use meson to compile * ci: use meson to install build artifacts * ci: use meson to run tests * ci: do not omit \"setup\" from the meson command * pipewire: module-rtp: fix compilation with UBSan * pipewire: module-rtp: add missing include * fix compilation * jack: avoid division by 0 * wav: fix build * echo-cancel: add wav debug file support * audioconvert: add debug.wav-path to save wav * module-rtp: data and ctrl socket have different initiator * module-rtp: add timer for ck requests * module-rtp: fix direct timestamps * module-rtp: fix compilation * module-rtp: keep track who initiated the session * module-rtp: improve session setup * module-rtp: fix docs * module-rtp: use default source.ip * module-rtp: fix rtp.media property * module-rtp: fix loading of source * module-rtp: port source and sink to new stream * docs: improve docs * pipewire-pulse: port module-rtp-send * pipewire-pulse: port module-rtp-recv * module-rtp: use new random functions * module-rtp: improve SSRC, seq and timestamp randomness * module-rtp-sap: handle session timeout * module-rtp-sap: add default rules * module-rtp: fix SAP multicast send/recv * module-rtp: fix some memory leaks * module-rtp: don\'t autoconnect midi * module-rtp: make source from module * move SAP in separate module * module-rtp: improve properties and some cleanups * module-rtp: improve properties * module-rtp: make the streams sink/source * module-rtp: handle state of stream better * module-rtp: improve node name and description * module-rtp: add and check session parameters * module-rtp: add audio params to avahi txt * module-rtp: only create sessions with avahi * module-rtp: listen only for compatible sessions * module-rtp: listen to all available session types * module-rtp: improve session setup * module-rtp: improve session setup * module-rtp: fix sender timestamps * module-rtp: improve properties * module-rtp: move avahi in rtp-session * module-rtp: add new rtp-session module * doc: add custom node bog post by bootlin * 0.3.67 * Thu Mar 09 2023 virtuousfoxAATTgmail.com- Update to version 0.3.66+67~git20230308.10d82faa1: * jack: update qsynth to the new passive handling * impl-node: implement mode node.passive property values * jack: don\'t abuse the node.passive property * impl-link: handle passive nodes * impl-node: rename passive to runnable * context: make a copy of group and link_group * pulse-server: fix comments * pulse-server: reduce min quantum to 128/48000 * module-echo-cancel: improve docs * pulse-server: add doc about pulse.cmd section * Wed Mar 08 2023 virtuousfoxAATTgmail.com- Update to version 0.3.66+57~git20230307.92c4a916f: * stream: always call the process function when triggered * Improve debug log a little * pulse-server: escape module values * clarify that buffers remain alive until the remove_buffer callback returns * context: improve handling of passive state better * module-rtp-sink: use sess.media for media type * bluez5: don\'t set unnecessary socket options * Update Polish translation * Sun Mar 05 2023 virtuousfoxAATTgmail.com- Update to version 0.3.66+49~git20230304.a21da3802: * client-node: the id must be strictly smaller than MAX_AREAS * spa: support single argument static assertions in older standards * Fri Mar 03 2023 virtuousfoxAATTgmail.com- Update to version 0.3.66+47~git20230303.57a89e572: * module-rtp: Add configurable DSCP support * alsa: improve target delay in ALSA * po: Update Swedish translation * bluez5: sources should produce full buffer every cycle * impl-port: improve port properties * audioconvert: copy follower port flags * Wed Mar 01 2023 virtuousfoxAATTgmail.com- Update to version 0.3.66+41~git20230301.ab94a71e3: * pulse-server: improve channel_map parsing * pulse-server: improve format parsing * pulse-server: error on invalid format * pipewire-jack: indent with tabs to avoid clang-tidy warnings * treewide: print `pthread_t` as a pointer * pipewire: module-protocol-simple: cast argument of `accept4()` * spa: alsa: fix `spa_log_trace_fp()` args * bluez5: media-sink: write packets exactly on time * bluez5: media-sink: encode next packet as soon as possible * Fri Feb 24 2023 virtuousfoxAATTgmail.com- Update to version 0.3.66+32~git20230224.031f99298: * alsa-compress-offload-sink: major sink rework * pw-cat: Keep track of excess playtime when playing encoded audio * pw-cat: Rework encoded audio support to use libavformat to parse frames * pw-cat: Enable libavutil logs * bluez5: backend-native: implement AT+BCC * gstpipewiresrc: Set stream error on caps negotiation failure * pulse-server: improve FIX_ flag handling * pulse-server: refactor channel position parsing * null-sink: accept our custom format as well * audioconvert: log params to error as well * pulse-server: pass format to the null-sink * spa: allow passing audio.format to null-sink * pulse-server: move fix function to format functions * pulse-server: use pulse.fix. * keys * bluez5: media-source: allow using bigger A2DP receive buffers * pulse-server: add support for overriding fix format * pulse-server: fix return value * utils: handle random_r fallback * pipewire: add pw_random() * gstpipewiresrc: Do not alter meta plane count * Add autoconnect parameter to pipewiresrc element * context: free properties on allocation failure * bluez5: handle BAP presentation delay and transport latency * bluez5: dup transport fd, in case media-sink is using it * module-rtp: reset ringbuffer on resync * module-rtp: add rate matching for the source * meson.build: promote two warnings to errors * spa: bluez: include gio/gunixfdlist.h * ci: install libbluetooth-dev on ubuntu * Thu Feb 16 2023 virtuousfoxAATTgmail.com- Update to version 0.3.66+3~git20230216.fbd068977: * module-rtp: Add rtp-midi support * treewide: use SPDX tags to specify copyright information * Improve NEWS * 0.3.66 * jack: use 32 bits for frame times * gstpipewiresrc: make stream errors permanent * module-rtp: clear ringbuffer in resync * module-rtp: resync after paused state * pw-cat: remove useless code * pw-cat: don\'t read more than the requested frames * RLIMITs: add support for generating limits.d files * src/modules/meson.build: fix indentation and remove obsolete comment * spa: support: send TID to systemd journal * test: add another channelmix test * audioconvert: improve channelmix with unknown layouts * pipewire: impl-core: actually return created object * filter: support pw_filter_trigger_process() * filter: change_mask is 64 bits * filter: clean up param indexes * log: improve format debug log * spa: improve param doc * i18n: Update Ukrainian translation * Update Occitan translation * meson: drop unnecessary option * meson: allow building libcamera from source as a subproject * meson: libcamera: remove libdrm dependency * spa: libcamera: remove unused `libcamera-client.c` * jack: improve frame to and from time functions * bluez5: fix BAP current profile * filter-chain: support single copy plugin * filter-chain: add invert plugin * conf: fixup config comments * conf: add conditions to modules, exec and objects * Tue Feb 07 2023 virtuousfoxAATTgmail.com- Update to version 0.3.65+50~git20230206.b9999b292: * channelmix: improve mixing setup * bluez5: don\'t claim sbc is supported when there\'s no A2DP at all * bluez5: fix BAP profiles for source/duplex cases * gst: correct buffer & meta offset calculation * module-combine-stream: add missing proxy event version * bluez5: fix dependency checking * libcamera: map controls to standard ids * utils: remove () around variable declaration * pipewire: mem: refuse invalid file mapping * filter-chain: add example configs for spatializer * keys: don\'t use macro to define keys * conf: revert to 32 min-quantum * gst: add buffer video meta support * thread-loop: constify timespec argument * Fri Feb 03 2023 virtuousfoxAATTgmail.com- Update to version 0.3.65+36~git20230202.04e769ff3: * Add source example for the loopback module * alsa: keep more headroom when rate matching * module-rtp-sink: handle buffer offset and size correctly * module-rtp: use timestamps as ringbuffer index * module-rtp: remove some useless debug * module-rtp-sink: improve sync * module-rtp: support direct clock timestamps * support: Handle supported clocks with timerfd * support: add support for other clocks * Wed Feb 01 2023 virtuousfoxAATTgmail.com- Update to version 0.3.65+27~git20230131.2681d7e3e: * acp: add option to set Pro Audio channels * filter-chain: fix spatializer rate changes * filter-chain: review comments * filtet-chain: fix compilation without sofa * filter-chain: fix warning * filter-chain: remove mutex * filter-chain: make sofa changes lockfree * filter-chain: add method to notify control changes * spatializer: free old convolvers immediately * spatializer: interpolate IRs * spatializer: move to sofa_plugin * spatializer: do not initialize convolvers in init * spatializer: move coords to control ports * filter-chain: add spatializer * filter-chain: don\'t leak config * bluez5: fix supported codecs when as BAP Server * Fri Jan 27 2023 virtuousfoxAATTgmail.com- Update to version 0.3.65+11~git20230127.fb43a7154: * bluez5: SupportedUUIDs is an adapter-specific property * bluez5: separate object manager for A2DP and BAP * context: avoid excessive upsampling * context: improve rate selection * module-rtp-source: use simple boolean to check activity * module-rtp-source: touch session on RTP * aes67: build pipewire-aes67 binary * module-rtp-source: close socket while idle * module-rtp-source: set custom channel names if available * Thu Jan 26 2023 virtuousfoxAATTgmail.com- Update to version 0.3.65+2~git20230126.cb2cc28da: * context: don\'t switch driver rate when nothing is running * modules: also install module-combine-stream * 0.3.65 * bluez5: fix uninitialized value warning * module-rtp-source: increase SAP timeout some more * bluez5: backend-native: fixup HFP command handling * bluez5: backend-native: HFP should reply OK to no commands * module-rtp-source: increase overrun watermark a little * pipewiresrc: Make it live by default * module-rtp-sink: use min-ptime and max-ptime * client-rt: add rule for Davinci Resolve * module-rtp-source: improve buffer handling * module-rtp-sink: add tool and ptime attributes * module-rtp-source: add match rules * pipewire: add conf.h to standard includes * module-rtp: handle property failure better * module-rtp-sink: fix net.loop * module-rtp-source: lower priority of frequent messages * module-rtp-source: lower overrun log level * module-rtp-source: make incoming RTP messages more elaborate * module-rtp-source: set node name * module-rtp-source: make SAP cleanup interval configurable * jack: make jack.merge-monitor default true * audioconvert: make sure shifts are defined * Tue Jan 24 2023 virtuousfoxAATTgmail.com- Update to version 0.3.64+111~git20230124.c8850f876: * env vars should override everything * pulse-server: use module-combine-stream for module-combine-sink * module-combine-sink: remove listener before core_disconnect * combine-stream: also set DONT_RECONNECT * bluez5: a few more -Werror=strict-prototypes fixes * alsa-compress-offload-sink: Miscellaneous clean up * pw-cat: Add fallback for the older libavcodec channel layout API * pw-cat: Check for pw_cat_ffmpeg flag instead of HAVE_ALSA_COMPRESS_OFFLOAD * meson: Set default compress-offload option value to \"disabled\" * meson: Rework FFmpeg / tinycompress detection and add pw-cat-ffmpeg option * Rename \"compressed-offload to \"Compress-Offload\" in the code * pw-cat: Add support for compressed formats * gst: Accept MP3 and FLAC for compressed sink * Add support for ALSA compressed offload * spa: Add ENCODED audio format to compressed format builder results * spa: add APE format * spa: add FLAC format * spa: add ALAC format * spa: add AMR type * spa: add Real Audio format * spa: add WMA type * spa: add vorbis type * spa: add AAC format * spa: add mp3 type * spa: add bitrate and blockAlign format props * bluez5: dbus-monitor: call remove hooks always * bluez5: use spa_debug_log_mem, not spa_log_hexdump * bluez5: fixup BLE MIDI selinux README * bluez5: add info key indicating glib mainloop is usable * bluez5: prevent unloading spa-bluez5.so * bluez5: use GDBus in midi-node * bluez5: use GDBus in midi-server * bluez5: use GDBus in midi-enum * bluez5: add GDBus-based object monitor framework * bluez5: remove libdbus object manager wrappers * bluez5: midi: refcounting and other correctness fixes * bluez5: add comments on possible SELinux + BLE MIDI issues * bluez5: midi: put node nick in GATT Characteristic User Description * bluez5: midi-node: implement server role * bluez5: add MIDI server/peripheral implementation dbus part * bluez5: implement Bluetooth MIDI nodes * bluez5: Add BLE MIDI parser/writer tests * bluez5: implement BLE midi data writer * bluez5: implement BLE MIDI parser * bluez5: implement Bluetooth MIDI device enumeration * bluez5: add convenience helper for dbus pending calls * bluez5: add abstraction for remote DBus objects * bluez5: add abstraction for local DBus object manager * pw-cli: add -m option to help * module-combine: destroy stream when unconnected * module-combine-stream: safely add/remove stream from data thread * modules: add combine-stream module * conf: factor out pw_conf_match_rules() * pw-cli: silence port changes outside of monitor mode * pw-cli: suppress some output * pipewire: expose pw_impl_module_schedule_destroy() * remove pipewire/private.h includes when possible * Fri Jan 20 2023 virtuousfoxAATTgmail.com- Update to version 0.3.64+54~git20230120.ee55df9f9: * alsa: add option to change the volume-method * alsa: also use client-rt.conf for the mixer * alsa: clean up volume min/max values * alsa: add mathlib dep * alsa: make displayed ALSA volume match PulseAudio volume * Fri Jan 20 2023 virtuousfoxAATTgmail.com- Update to version 0.3.64+49~git20230119.6af85f237: * alsa: fix compilation * alsa: improve property handling some more * client-node: iterate the buffer datas correctly * alsa: rework config and properties * alsa: free properties * Thu Jan 19 2023 virtuousfoxAATTgmail.com- Update to version 0.3.64+44~git20230119.d11fb766c: * module-pipe: improve properties on nodes * stream: handle the case where io is NULL * filter-chain: simplify a little * module-filter-chain: fix array size * convolver: parse array from filename * filter-chain: review suggestions * filter-chain: allow multiple filters for convolver * spa: Minor documentation copy-pasto fix * spa: add debug log context * spa: add context to debug functions * fix includes * spa: redirect adapter log to logfile * bluez5: fix reported BAP profile index * bluez5: disable LE Audio if using legacy bluez API * bluez5: lc3: handle multiple PACs in capabilities * Tue Jan 17 2023 virtuousfoxAATTgmail.com- Update to version 0.3.64+29~git20230117.37a5dca31: * module-echo-cancel: update docs with monitor.mode property * pulse-server: add remaining formats * keys: don\'t remove deprecated symbols by default * filter-chain: fix AVX dsp_sum index increment * spa: Fix audioconvert overflow when scaling * Mon Jan 16 2023 virtuousfoxAATTgmail.com- Update to version 0.3.64+24~git20230116.32a7c85c8: * alsa: guard against some invalid values * module-echo-cancel: allow per stream AUDIO_POSITION settings * module-rt: improve rt settings * Mon Jan 16 2023 virtuousfoxAATTgmail.com- Update to version 0.3.64+21~git20230116.28aa9ebe6: * pulse-server: add more valid formats * pulse-server: split device info validation into dedicated function * adapter: support custom prefix for device ports * doc: specify Doxygen OUTPUT_DIRECTORY as an absolute path * convolver: add gain when resampling to preserve volume * filter-chain: use equal rate for capture and playback * cpu-arm: Fix incorrect free * spa: fix documentation for SPA_FORMAT_AUDIO_position * adapter: only add port name override when not empty * spa: fix switch on media_subtype * Add support for GSX 1000 v2 * spa: fix includes * spa: reorganize params * doc: remove duplicate FULL_PATH_NAMES field * man: fix typo in pw-link: Whithout -> Without * man: fix typo in pw-cat: seperator -> separator * Thu Jan 12 2023 virtuousfoxAATTgmail.com- Update to version 0.3.64+5~git20230112.6bf47e0bf: * pipewiresrc: Always advertise support for DmaBuf * gst: Log buffer memory type * libcamera: Check format info for correct flags and modifier * video: Add SPA_VIDEO_FLAG_MODIFIER flag * cpu: clean up * 0.3.64 * v4l2: support setting target source * Revert \"video: Add extra field indicating if modifier value is valid\" * Revert \"libcamera: Implement proper dmabuf negotiation support\" * libcamera: Implement proper dmabuf negotiation support * video: Add extra field indicating if modifier value is valid * Wed Jan 11 2023 virtuousfoxAATTgmail.com- Update to version 0.3.63+61~git20230110.cab3e3c1c: * clarify deprecated use of NODE_TARGET * keys: move NODE_TARGET to deprecated properties * clarify PIPEWIRE_NODE * use TARGET_OBJECT instead of the deprecated NODE_TARGET * gst: don\'t set the deprecated path anymore * tools: clarify the target param * pulse-server: handle .monitor master source * pulse-server: use TARGET_OBJECT * pulse-server: clear the drained state correctly * fix use_buffers checks * context: keep per node quantum and rate settings * v4l2: cleanup and simplify * v4l2: ignore symlinks in case of openat passthrough * impl-node: restore running state after reconfigure * context: rename a method * pw-reserver: improve output a little * impl-node: move 2 state variables to private * midifile: error won invalid track size * context: fix typo in comment * Mon Jan 09 2023 virtuousfoxAATTgmail.com- Update to version 0.3.63+42~git20230108.602aa7d54: * pipewiresrc: Reenable DMABuf support * v4l2: report framerate using VIDIOC_G_PARM * module-rt: fix warning when xdg-desktop-portal isn\'t running * pulse-server: fix echo-cancel _master args * module-echo-cancel: add capture and playback props * adapter: support `node.channel-names` * filter-chain: dynamically allocate the params * gstpipewireformat: Fully handle SPA_CHOICE_Step * filter: Better SPA_CHOICE_Step support * pw-dump: sort dictionaries * v4l2: fix some compiler warnings * v4l2: support setting controls * v4l2: support querying controls * v4l2: follow symlinks * acp: also add the Pro profile for UCM devices * acp: add ports only when there are ucm devices * acp: mark the Pro profile with a flag * Tue Jan 03 2023 virtuousfoxAATTgmail.com- Update to version 0.3.63+25~git20230102.6116ef848: * impl-port: clear peer buffers in suspend * impl-port: clear have_buffers when setting 0 buffers * Mon Jan 02 2023 virtuousfoxAATTgmail.com- Update to version 0.3.63+23~git20230101.ed4632487: * alsa: fix memory leak of properties * README.md: Add \"Getting help\" section * modules: fix rate update * pipewire: module-roc-{sink,source}: port to ROC v0.2.X * gst: deviceprodiver: Add fd property / camera portal support * gst: deviceprodiver: Use GstPipeWireCore and some cleanups * bluez5: media-sink: set initial latency after getting transport * bluez5: backend-native: fix missing brace in CIND reply * examples: only use memfd_create when defined * module/roc- *: fix position of comment * module/roc- *: implement audio.rate * Sun Dec 18 2022 virtuousfoxAATTgmail.com- Update to version 0.3.63+12~git20221217.89ac6b353: * alsa: don´t set -1 as node.target * audioconvert: improve debug output * doc: update after PIPEWIRE_DEBUG changes * acp: add api.acp.probe-rate option * filter-chain: move fft to dsp_ops * convolver: use normal float for complex float array * filter-chain: use dsp sum/copy/clear functions * filter-chain: add optimized sum function * filter-chain: move functions to separate struct * filter-chain: pass dsp_ops around * Thu Dec 15 2022 virtuousfoxAATTgmail.com- Update to version 0.3.63+2~git20221215.f7c49bbdd: * pulse-server: add channel-map in echo-cancel module * bluez: fix compilation without ldac_abr * 0.3.63 * pipewire: remove redundant code * pipewire: support global log level in PIPEWIRE_DEBUG * tests: add another pw_split_strv test * pulse-server: add category for connection debug * pipewire: fix pw_debug_is_category_enabled() * alsa: increase target for a52 and dca * pw-mon: recognize -N and -C as valid options * midi: fix midi event sorting * audioconvert: enable channelmix.mix-lfe by default * alsa-pcm: avoid an expected resync warning * Tue Dec 13 2022 virtuousfoxAATTgmail.com- Update to version 0.3.62+17~git20221213.480902eb3: * jack: sort midi events better * filter-chain: move buffer resample to separate function * filter-chain: convolver: flush, add resampler quality option * filter-chain: convolver: resample IR * pipewire: use dlclose unless PIPEWIRE_DLCLOSE is set to false * pulse-server: add a pulse.cmd section * utils: expose pw_split_ip * doc: Change variable name to \'SPA_PLUGIN_DIR\' * audioconvert: remove default channel map * audioconvert: improve debug * audioconvert: fix distorted audio on AVX2 * Sun Dec 11 2022 virtuousfoxAATTgmail.com- Update to version 0.3.62+6~git20221210.8c892443e: * spa: audioadapter: fix stack-use-after-scope when configuring format * pipewire: store SPA handles in a global list by age * Sat Dec 10 2022 virtuousfoxAATTgmail.com- Update to version 0.3.62+4~git20221209.d4eff5b05: * fix build some more. * fix build some more... * fix build * handle read from timerfd correctly * 0.3.62 * audioconvert: change warning to info * Revert \"audioadapter: only accept PortConfig for the adapter direction\" * pulse-server: disable idle.timeout by default * Fri Dec 09 2022 virtuousfoxAATTgmail.com- Update to version 0.3.61+50~git20221208.a6f8790ec: * pw-top: log core errors, silence other errors with info * impl-node: improve state change when driver changes * gst: set stride to 0 * examples: handle 0 stride better * module-loopback: connect playback before capture * impl-node: don\'t pass the -EBUSY to the caller * module-rtp-sink: silence some messages * modules: don\'t call pw_stream_set_control in process * loop: don\'t write from multiple threads * loop: support recursive loop flush * impl-link: small cleanups * impl-node: don\'t do IPC from data-loop * loop: only flush pending items * improve debug * Wed Dec 07 2022 virtuousfoxAATTgmail.com- Update to version 0.3.61+36~git20221207.59d393bd3: * libcamera: Fix 90/270 degree transforms * audioadapter: clear started flag earlier * acp: do probing in 48000 Hz again * modules: Change some core errors to info * pulse-server: add gsettings module * pulse-server: fix module args * pulse-server: module does not depend on client * acp: ignore_dB should be passed around to device * gst: Implement SPA_META_VideoTransform support * libcamera: Implement SPA_META_VideoTransform support * Tue Dec 06 2022 virtuousfoxAATTgmail.com- Update to version 0.3.61+26~git20221205.9f2abea48: * module-loopback: deactive both streams before destroying * aec-webrtc: clarify comment * audioadapter: improve PortConfig enumeration * audioadapter: only accept PortConfig for the adapter direction * audioconvert: improve some more AVX2 code * audioconvert: fix PortConfig enumeration * audioconvert: use gather in AVX2 code * Sun Dec 04 2022 virtuousfoxAATTgmail.com- Update to version 0.3.61+19~git20221204.5b371048d: * stream: always try to recycle a buffer * impl-node: start driver node after followers completed * impl-node: activate links immediately * bluez5: sco-sink: Remove unused variable * bluez5: add bluetoothOffloadActive device prop for acquiring transports * Fri Dec 02 2022 virtuousfoxAATTgmail.com- Update to version 0.3.61+14~git20221202.99c150a61: * stream: handle some invalid situations * jack: only process valid ports * pulse-server: Add IPv4 address first in server list * loop: improve error handling from fds * impl-node: improve handling of removed nodes * impl-node: Don\'t schedule non-active node * libcamera: Fix build error * libcamera: Handle missing control info default values * meson_options.txt: Disable the legacy volume SPA * pipewire: module-zeroconf-publish: only unpublish service when necessary * filter-chain: optimize copy plugin * filter-chain: use optimized sum * Thu Nov 24 2022 virtuousfoxAATTgmail.com- Update to version 0.3.61+2~git20221124.ca8bc59d0: * filter-chain: add biquad to dsp functions * spa: Add buffer meta information VideoTransform * 0.3.61 * protocol-native: initialize fields * spa/bluez: remove unused import fixing Musl builds with lc3 * filter-chain: add some optimized mix functions * Mon Nov 21 2022 virtuousfoxAATTgmail.com- Update to version 0.3.60+43~git20221121.9d8edef1a: * client-node: guard against NULL resource * client-node: set port data before calling _set_mix() * jack: use node.passive to make passive links * stream: get info from Position in Start * Update ka.po * client-node: send the mix_info before Buffer IO * pulse-server: add a pulse.idle.timeout option * pipewire-pulse: improve parsing of defaults * pulse-server: make method to pause/resume stream * resample: cleanup the resampler core functions * Fri Nov 18 2022 virtuousfoxAATTgmail.com- Update to version 0.3.60+33~git20221118.bb558b7d9: * audioconvert: don\'t overwrite port * audioconvert: don\'t handle params when just enumerating * audioconvert: shortcut configure_format * Thu Nov 17 2022 virtuousfoxAATTgmail.com- Update to version 0.3.60+30~git20221117.bc66060b7: * audioconvert: also clear buffer when new EnumFormat * audioconvert: improve renegotiation * pulse-tunnel: improve latency property docs * pulse-server: handle server started and stopped events * pulse-server: add event to the implementation * pulse-server: use running servers to publish zeroconf * examples: improve console output * modules: actually copy the network property to the stream * alsa-mixer: Asus Xonar SE supports digital 5.1 * alsa: force playback start when buffer is full * acp: do probing in 44100 Hz again * audioconvert: redo setup when format changes * audioadapter: perform setup again after a PortConfig * impl-module: turn warning into info * FreeBSD build fixes. * Fix copy-paste typo in the warning message. * Add a type cast necessary to compile on FreeBSD. * spa: bluez: backend-native: fix filtered number memory leak * libcamera: fix device id assignment * libcamera: emit device removal event * libcamera: handle errors better * add some more debug * libcamera: fix setting controls * v4l2: improve debug * bluez5: backend-native: prevent string overflow * pipewire: increase max-rates to 32 * Sat Nov 12 2022 virtuousfoxAATTgmail.com- Update to version 0.3.60+4~git20221111.ea4e5cf36: * context: avoid useless graph recalculations * test: avoid compiler warnings when SSE is not enabled * jack: add jack.filter-char to specify the filter character * pulse-server: also advance read pointer in underrun * Thu Nov 10 2022 virtuousfoxAATTgmail.com- Update to version 0.3.60~git20221110.38382d002: * 0.3.60 * gst: hide the libcamera device provider * audioadapter: remove checks for format * Revert \"adapter: removed unused follower_current_format\" * adapter: removed unused follower_current_format * audioconvert: debug in and out positions * Wed Nov 09 2022 virtuousfoxAATTgmail.com- Update to version 0.3.59+227~git20221109.bb002a3ee: * test: add test for 6p1 to 5p1 with remapped REAR * test: add more 5p1 to 6p1 tests * audioconvert: skip upmix when moving channels * pw-uninstalled: make v4l2 easily available * tests: add some more 6p1 conversion tests * audioconvert: set SSE flag on SSE function * audioconvert: debug the conversion matrix with info level * audioconvert: upmix RC * v4l2: turn some info to debug again * v4l2: Use the node format when available * libcamera: add Format to node params as well * v4l2: mark the fd as closed instead of -1 * loop: don\'t assert in cleanup * libcamera: check for item in map correctly * alsa: minor fixes in seq code * bluez5: don\'t put side effects into spa_log_ * arguments * echo-cancel: add option to make echo-cancel sink node a monitor * context: improve graph rate selection * bluez5: aac, lc3plus: report bitpool changes * bluez5: media-sink: fix bitpool increase * bluez5: backend-native: report HFP AG battery indicator to UPower * gitlab-ci: Add readline dependency * meson_options: Add readline option * impl: don\'t return -ENOENT when no params * v4l2: improve debug * v4l2: don\'t mmap when the buffer has data already * v4l2: pretend a dupped fd is the same as the original one * test: add another 6.1 channelmix test * test: add unit test for 6.1 up and downmix * v4l2: use param_info to track param updates * v4l2: suggest stride in Buffer param * v4l2: release ref after adding file to maps * v4l2: improve debug * v4l2: fix compilation on older versions * v4l2: fix streaming compliance test * buffer: add option to reverse filter priority * v4l2: we can request just 1 buffer perfectly fine * v4l2: implement G/S_PRIORITY * v4l2: fix buffer amount check * v4l2: add Format on the node as well * v4l2: improve debug * v4l2: fix enum_input, don\'t clear the index * v4l2: only accept CAPTURE buffer types in try_fmt * v4l2: return a default format from G_FMT * v4l2: set colorspace * v4l2: reuse fd when opening the same path * Fri Nov 04 2022 virtuousfoxAATTgmail.com- Update to version 0.3.59+181~git20221103.4cb1c790a: * v4l2: set the description correctly * v4l2: make bus_info compliant * v4l2: handle errors better * v4l2: handle multiple /dev/videoX nodes * v4l2: small cleanups * v4l2: improve debug of fourcc * v4l2: use the node description as the card name * v4l2: improve error debugging * spa: make all format parsing fields optional * Add some more format checks * pw-top: initialize info struct with 0 * pw-top: support MJPG and H264 formats * libcamera: clear format info * filter-chain: emit en error when graph fails * filter-chain: add more default LADSPA search paths * stream: guard against node destroy * filter-chain: improve some error messages * filter-chain: improve some float handling * Wed Nov 02 2022 virtuousfoxAATTgmail.com- Update to version 0.3.59+163~git20221102.f801dc088: * pulse-server: keep read index in sync * libcamera: add EnumFormat param to the node * Tue Nov 01 2022 virtuousfoxAATTgmail.com- Update to version 0.3.59+161~git20221031.ef4b9745b: * libcamera: handle canceled requests * v4l2: implement setting controls * param: improve pw_param * spa: support the speakers (output) only case in report_jack_state() * module-pipe-tunnel: Update the description of the module. * module-pipe-tunnel: Initialize the target.node property * Thu Oct 27 2022 virtuousfoxAATTgmail.com- Update to version 0.3.59+155~git20221027.e6fd5888e: * param: add a new user seq field in the param-info * introspect: update the info more carefully * introspect: handle NULL result from info updates * params: count params per id from 0 * protocol-native: improve logging * audioconvert: update started field better * alsa: add brackets for clarity * bluez5: fix BAP codec sink flag usage * bluez5: reduce the number of registered Opus endpoints * bluez5: allow codecs to share endpoints * bluez5: deal with missing endpoint path in selectproperties * po: Update Swedish translation * alsa: avoid division by 0 * libcamera: let the session manager set pause-on-idle * alsa: fix some signedness warnings * pw-top: improve output * alsa-plugin: improve alsa plugin delay precision if alsa period is not align with the quantum * alsa-plugin: unblock alsa poll when there is pw error * alsa-plugin: prevent deadlock when update_active is called from two threads * libcamera: pick better default format * Mon Oct 24 2022 virtuousfoxAATTgmail.com- Update to version 0.3.59+135~git20221024.b35983eb7: * module-echo-cancel: aec-plugin parameters * libcamera: recycle buffers when no io area * impl-node: remove nodes from graph after Pause completes * impl-link: don\'t activate links with inactive input * v4l2: recycle buffers when no io area * v4l2: remove unused forward declaration * node: check if active when ready event is emited * po: Update Turkish translation * bluez5: driver should produce buffers before ready * module-echo-cancel: Correct offset * pw-top: do refresh after sync * Update Czech translation * pw-top: do initial refresh after first data * spa: bluez: dbus: add endpoint (un)registration helpers * module-echo-cancel: Run canceller on first frames * alsa-seq: avoid division by 0 * module-echo-cancel: Don\'t use old delayed play data * pw-top: also show IEC958 passthrough formats * bluez5: reset timers when reassigning followers * Thu Oct 20 2022 virtuousfoxAATTgmail.com- Update to version 0.3.59+116~git20221020.c0fc29494: * bluez5: stop before freeing things * jack: set port valid state safely * Thu Oct 20 2022 virtuousfoxAATTgmail.com- Update to version 0.3.59+114~git20221020.4c1115cf1: * alsa-seq: attempt to get more data in timeout * udev: use devpath for the sysfs.path property * jack: make jack_bufsize adjust the global quantum * module-loopback: add target.delay.sec property * pulse-server: do chmod of the socket like pulseaudio * module-pulse-tunnel: rate limit some messages * gitlab-ci: disable building session managers * meson_options: change default session manager to wireplumber * bluez5: sco-sink: implement flushing the same way as in a2dp-sink * bluez5: media-sink: flush packets at time of first sample * bluez5: media-sink: bigger socket buffer * gitlab-ci: move check_missing_headers into its own job and hide the script * modules: avoid partial writes to pulseaudio * module: pass a channel map in pa_stream_new * alsa-pcm: Start playback when there is data * modules: use resample.prefill for echo cancel streams * Thu Oct 13 2022 virtuousfoxAATTgmail.com- Update to version 0.3.59+98~git20221013.3e9b4657c: * modules: add since tag * jack: improve acquire/drop_rt methods * jack: client_thread_id() returns NULL * thread: emit a warning when calling unimplemented functions * jack: also implement drop_rt in our custom thread utils * audioconvert: only reinit channelmix when params change * audioconvert: optimize upmix functions with SSE * audioconvert: use spa_dtoa to format floats and doubles * raop: add error from reply * Update src/modules/module-raop-sink.c * Update src/modules/module-raop-sink.c * Update src/modules/module-raop-sink.c * Update src/modules/module-raop-sink.c * Update .gitlab-ci.yml file * Update .gitlab-ci.yml file * Replace module-raop-sink.c * modules: add pulse.latency to module-zeroconf-discover * modules: set tunnel minreq and prebuf more like pulseaudio * pulse-server: remove warning * raop: Fix `raop.encryption` typo in the documented configuration example * raop: Allow digest authentication and auth-setup to be used together * raop: Use the real URI for digest authentication rather than ` *` * raop: Fix duplicate `Digest` string in `Authorization` response header * module-rtp-source: reduce log level for RTP packets to `trace` * treewide: fix some strict-prototypes Clang warnings/errors * bluez5: fix build_profile index handling * bluez5: in SelectProperties, parse QoS values and pass to get_qos * spa: bluez: dbus: emit added devices when adding new listener * spa: bluez: dbus: harmonize label indentation * spa: bluez: dbus: use tabs for indentation * spa: bluez: dbus: use `spa_strstartswith()` * spa: bluez: dbus: do not use NameHasOwner() * spa: bluez: dbus: do not call GetManagedObjects() if there is a pending call * spa: bluez: dbus: immediately unref pending call after retrieving reply * spa: bluez: dbus: keep a reference to the GetManagedObjects() call * spa: bluez: dbus: do not call GetManagedObjects() again * Fri Oct 07 2022 virtuousfoxAATTgmail.com- Update to version 0.3.59+62~git20221007.9dd1c78f5: * module-rtp: for multicast we need to add the TTL * module-rtp: improve properties * module-rtp: add some more properties * audioconvert: avoids pops and clicks when activating resampler * module-rtp: half buffer-time for node latency * module-rtp: receive packets in the RT thread * module-rtp: use MTU to set the latency * module-rtp: set higher priotity on sender socket * module-rtp: handle non-multicast addresses * alsa-udev: avoid meth with void pointers * Add more parentheses * Disable strict aliasing * Fix various compiler warnings * Thu Oct 06 2022 virtuousfoxAATTgmail.com- Update to version 0.3.59+49~git20221006.68b30e36b: * module-rtp: improve debug messages * pcm_pipewire: optimize by updating existing stream * module-rtp: fix L24 sample size * pulse-server: handle unknown format * module-rtp: support more formats * doc: add rtp sink to docs * module-rtp: add pulse-server modules * module-rtp: make sender work * module-rtp: construct and send SAP * module-rtp: add beginnings of rtp-sink * module-rtp: improve debug * module-rtp: add to docs * module-rtp: add session timeout and bye * module-rtp: add rate control * module-rtp: add some properties * module-rtp: add receive to ringbuffer * module-rtp: work on session setup * module-rtp: parse some more SDP * rtp: add SAP parsing * Start of RTP module * bluez5: backend-native: Add a property to select the modem to use * bluez5: backend-native: Only use first modem found * bluez5: backend-native: Add battery level indicator support * bluez5: backend-native: Add AT+VTS support * bluez5: backend-native: Add AT+CNUM support * bluez5: backend-native: Add ATDdd...dd; support * bluez5: backend-native: Add AT+CLCC support * bluez5: backend-native: Add AT+CLIP support * bluez5: backend-native: Support of ATA and AT+CHUP * bluez5: backend-native: Add AT+CMEE support * bluez5: backend-native: Link with ModemManager Call object * bluez5: backend-native: Link with ModemManager Voice object * bluez5: backend-native: Link with ModemManager Modem3GPP object * bluez5: backend-native: Link with ModemManager Modem object * ci: Add ModemManager-dev * bluez5: backend-native: Add a ModemManager dependency * pw-link: Improve error message if ports are not found * conf: load module-x11-bell if available * filter-chain: increase tail size * filter-chain: guard against NULL convolver * filtet-chain: set errno on errors * filter-chain: add some more debug * filter-chain: iterate the port correctly * filter-chain: alloc port data per handle. * clean up some more array iterations * Update Croatian language and pipewire.pot * spa: add macro to simplify array iterations some more * spa: ensure macro args are evaluated only once * Update Brazilian Portuguese translation * 0.3.59 * Thu Sep 29 2022 virtuousfoxAATTgmail.com- Update to version 0.3.58+115~git20220929.a145c42ec: * audioconvert: make separate noise functions * audioconvert: some optimizations * Update it.po * pod: fix alignment check * tests: relax test a little * tests: use spa_assert_se for tests * channelmix: optimize some more nXm cases * Thu Sep 29 2022 virtuousfoxAATTgmail.com- Update to version 0.3.58+108~git20220929.a30b335be: * channelmix: leave volume unchanged for unknown channel volumes * tests: add unit test for n_m matrix * channelmix: use volume/mute when no channel volumes * channelmix: fix normalization * channelmix: improve debug * audioconvert: use calculated random value * Wed Sep 28 2022 virtuousfoxAATTgmail.com- Update to version 0.3.58+102~git20220928.637bc6f7c: * channelmix: add optimised NxM channelmix functions * audioconvert: handle NULL params * modules: disconnect streams before destroy * Tue Sep 27 2022 virtuousfoxAATTgmail.com- Update to version 0.3.58+99~git20220927.1e848fc29: * SPA POD parser: fix several integer overflows * audioconvert: add peaks test * audioconvert: move peaks functions to separate file * Mon Sep 26 2022 virtuousfoxAATTgmail.com- Update to version 0.3.58+96~git20220926.323ec0b51: * pulse-server: improve maxlength calculations * module-loopback: Disconnect streams before destroying * pulse-server: don\'t read more than requested size * spa: a Flush command does not stop processing * man: add some more see also manpages * raop: use pw_strip to string header values * rtsp-client: remove trailing whitespace from header data * raop: add support for ALAC codec * Update Polish translation * alsa-mixer: add support for Asus Xonar SE * SPA POD parser: Fix bug when parsing choice types * bluez5: use HFP HF as default, not HSP HS * spa: bluez: backend-native: accept \"=\" for +VGS and +VGM * spa: bluez: backend-native: fix HF/HS to AG message terminator * spa: bluez: backend-native: use `sscanf()` for parsing AT commands * spa: bluez: backend-native: fix type and add error checking * spa: bluez: backend-native: use `strsep()` instead of `strtok()` * Fri Sep 23 2022 virtuousfoxAATTgmail.com- Update to version 0.3.58+79~git20220923.c1920163d: * Fix calls to sendmsg() * Replace more macros with accessor functions * Fix some badly-behaved macros * Make all fopen() calls use O_CLOEXEC * Add includes * impl-node: refactor pause_node * impl-node: only pause pause_on_idle nodes * add some more debug * audioconvert: only Suspend should trigger negotiate * improve debug * audioadapter: warn when scheduling a stopped node * Update Hungarian translation * pulse-server: set fragsize as latency * acp-tool: handle ctrl-D to exit * alsa-pcm: Change resync warning logic * alsa: rate limit some warnings * log: make some more macros * pulse-server: don\'t overwrite previous towrite value * pulse-server: limit capture blocks to fragsize * pulse-server: ignore adjust-latency for capture * Tue Sep 20 2022 virtuousfoxAATTgmail.com- Update to version 0.3.58+59~git20220920.95cfb531a: * alsa: initialise the format * pod: only call the overflow callback when still needed * alsa: rework parameter handling * Tue Sep 20 2022 virtuousfoxAATTgmail.com- Update to version 0.3.58+56~git20220920.0ce95e69f: * pulse-server: adjust_latency should update the fragsize * filter-chain: instantiate the nodes when rate is known * context: suspend all nodes when doing rate change * Mon Sep 19 2022 virtuousfoxAATTgmail.com- Update to version 0.3.58+53~git20220919.6b6cd85e5: * filter-chain: move debug to fastpath * filter-chain: ref the node handle location * filter-chain: move data allocation out of the link loop * pulse-server: set record latency as fragsize / 2 * module: use resample.prefill for coupled streams * audioconvert: add resample.prefill option * module-loopback: use trigger to start processing * filter-chain: use trigger to start processing * stream: update requested size before calling process * audioconvert: set stride on output buffers * pw-cli: don\'t keep doing syncs in monitor mode * Sat Sep 17 2022 virtuousfoxAATTgmail.com- Update to version 0.3.58+42~git20220917.26e789124: * alsa: increase max periods * bluez5: backend-native: Only send one error message * examples: add capture from monitor option * bluez5: support and use old api.bluez5.a2dp. * factory names for A2DP * bluez5: fix media-sink for A2DP * bluez5: fix error in search/replace for a2dp->media * example: improve volume meter output * examples: add audio capture example * spa: libcamera: fix hook adding logic * spa: libcamera: do not try to acquire CameraManager if there is already one * spa: libcamera: fix CameraManager event handling * spa: libcamera: remove unnecessary typedef * spa: libcamera: remove unnecessary `have_config` member * spa: libcamera: use `std::optional` intead of separate bool flag + value * spa: libcamera: manage libcamera::CameraManager via a shared_ptr * spa: libcamera: rework construction/destruction of libcamera source impl * spa: libcamera: remove two unused members from libcamera source * spa: libcamera: properly construct/destruct libcamera manager impl * spa: libcamera: properly construct/deconstruct libcamera device impl * spa: libcamera: remove main loop from manager * spa: libcamera: print camera id when it appears/disappears * spa: libcamera: properly dispose of shared_ptr * spa: libcamera: move shared_ptr to avoid copy * spa: libcamera: take raw pointer to avoid shared_ptr copy * spa: libcamera: indent with tabs instead of spaces * bluez5: Use SelectProperties Endpoint property to detect device role * bluez5: Init BAP LC3 coder/decoder depending on direction * bluez5: Manage BAP linked transports * bluez5: Allow media source connection for BAP * bluez5: Fix node creation depending on device role * bluez5: Add stereo support to LE Audio LC3 codec * bluez5: Fix sink timeout for BAP * bluez5: Use delay from QoS for BAP * bluez5: Complete BAP audio location mapping * bluez5: Set BAP QoS depending on selected configuration * bluez5: Add BAP_SINK/SOURCE from PACS UUID to adapter profiles * bluez5: Check if BlueZ daemon support LE Audio * bluez5: Add SelectProperties DBus method support * bluez5: Add LE Audio BAP support to bluez5-device * bluez5: Add LC3 codec support to LE Audio BAP * bluez5: Add LE Audio BAP support to media-codecs * bluez5: Rename codec API from *a2dp * to *media * * 0.3.58 * resample: fix peaks sse code * Wed Sep 14 2022 virtuousfoxAATTgmail.com- Update to version 0.3.57+75~git20220913.3ad1a5d4d: * alsa: rework eventfd handling * module-raop-sink: add more docs * alsa-seq: add an option to disable longname in MIDI ports * alsa-seq: set card long name or number in port names * module-echo-cancel: don\'t load newer modules * module-echo-cancel: Add activate/deactivate methods * alsa: add more debug * v4l2: use the device name to open in BeginParams * filter-chain: handle port names with : * filter-chain: warn when control contains unknown port name * pulse-server: update requested for relative seek only * Fri Sep 09 2022 virtuousfoxAATTgmail.com- Update to version 0.3.57+64~git20220909.0d08f41c2: * alsa: calculate elapsed time only when running * alsa: only calculate elapsed time when known * alsa: rework timings * alsa: subtract elapsed time from server delay only * alsa: improve elapsed time correction * alsa: add some more debug * module-rt: only call set_rlimit once * alsa: improve debug * pipewire: rtsp-client: read message content properly * pipewire: rtsp-client: check if the status code code is a number * pipewire: rtsp-client: reset receive state when connected * pipewire: rtsp-client: allow sending arbitrary binary data * pipewire: rtsp-client: use tabs for indentation * pipewire: rtsp-client: remove unused \"session\" member * pipewire: rtsp-client: make request CSeq uint32_t * pipewire: module-raop-sink: simplify `rtsp_do_auth_setup()` * module-rt: Fix setting realtime priority with rtkit * pw-top: Print microseconds as \"us\" * Thu Sep 08 2022 virtuousfoxAATTgmail.com- Update to version 0.3.57+46~git20220908.a7c28d64a: * resample-peaks: small improvement * audioconvert: set monitor port buffer size correctly * impl-node: only activate input links after adding node * impl-node: avoid scheduling the node before added * Thu Sep 08 2022 virtuousfoxAATTgmail.com- Update to version 0.3.57+42~git20220908.27211856e: * pulse-server: Handle overlong writes from clients * Revert \"pulse-server: Handle clients that send more than requested\" * alsa: scale min value back to nominal rate * alsa: adjust min and max rates * alsa: only scale DSD samplerates * alsa: fix min dsd rate * alsa: don\'t set impossible rates * alsa: dsd rates are expressed in byte rate * resample-peaks: unroll loop a little * audioconvert: remove some double defines * audioconvert: refactor peaks resampler * Wed Sep 07 2022 virtuousfoxAATTgmail.com- Update to version 0.3.57+31~git20220907.a79b5c86e: * pulse-server: Handle clients that send more than requested * pulse-server: implement TRIGGER and PREBUF methods * log: initialize pos to help the compiler * bluez5: Use spa_log_hexdump() to dump media properties/configuration * log: Add spa_log_hexdump * stream: add Format and EnumFormat on stream nodes * alsa: add period-size, period-num and headroom in props * stream: add a video adapter for video streams * pw-top: remove some slashes to avoid confusion * videoconvert: refresh with latest audioadapter copy * man: update man page * pw-top: show negotiated formats * Tue Sep 06 2022 virtuousfoxAATTgmail.com- Update to version 0.3.57+19~git20220906.305f2104e: * pulse-server: rework buffer attributes * man: clarify MIDI and DSD playback * Mon Sep 05 2022 virtuousfoxAATTgmail.com- Update to version 0.3.57+17~git20220905.1a915c2ce: * pulse-server: set record attributes more like PulseAudio * Revert \"pulse-server: send chunks with half the fragsize\" * Revert \"pulse-server: tweak the fragsize/minreq handling\" * Revert \"pulse-server: simplify latency handling\" * Revert \"pulse-server: enforce minfrag after latency adjust\" * audioconvert: use given channelmap for volume * audioconvert: remove redundant set_volume calls * channelmix: Only filter FC/LFE when present * spa: make default samplerate 48000 * libcamera: close camera in error path * bluez5: clarify OPUS-A2DP spec * Sat Sep 03 2022 virtuousfoxAATTgmail.com- Update to version 0.3.57+6~git20220903.b70f32a25: * pulse-server: enforce minfrag after latency adjust * filter-chain: use right lv2 include path for some older distros also * module-loopback: use node.name as description fallback * filter-chain: use right lv2 include path * doc: add a bootlin.com blog post * NEWS update highlights * 0.3.57 * Update Catalan translation * pulse-server: simplify latency handling * pulse-server: tweak the fragsize/minreq handling * pulse-server: send chunks with half the fragsize * spa: clean up some port io checks * spa: don\'t warn for NULL io * filter-chain: fix includes * alsa: pass bool argument properly * alsa: save volumes * jack: group all jack nodes in the same application group * context: remove unused function * alsa: Improve format negotiation * test: print channel map as reported by alsa as well * pulse-tunnel: destroy the module on errors * pulse-tunnel: fix rate adjustement argument * audioconvert: don\'t emit changed events for rate changes * module-rt: small fixes * module-rt: retry with RtKit if set_nice or set_rlimit fails * hook: don\'t remove from unitialized list * list: add spa_list_is_initialized() * Update LINGUAS * Update Polish translation * audioconvert: fix rate match for sources * bluez5: avoid (harmless) integer overflow * Update galician translations * On FreeBSD do not try to redefine O_PATH. * Guard inclusion with an #ifdef. * avb: free resources on error * jack: Increase JACK_CLIENT_NAME_SIZE * jack: Include NULL in return value of jack_client_name_size() * gst: copy buffer memory in dequeue_buffer using gst_memory_copy * avb: validate random data for xsubi * utils: pw_getrandom: warn on unused return value * utils: pw_getrandom() use errno from read() call * spa: add SPA_WARN_UNUSED_RESULT * pw-cat: clean up resource correctly on EIO * bluez5: Test transport pointer before using it * protocol-native: small cleanups * protocol-native: write socket address into fd * convolver: fix crash on FFT unload * treewide: meson.build: use `host_machine` instead of `build_machine` * spa: meson.build: add missing new line * bluez5: opus: react faster to too long packet queue * bluez5: bump Opus max bitrates * pipewire-jack: do not dereference value from `pw_data_loop_get_thread()` * pipewire-jack: return a zero initialized `pthread_t` in case of error * Enable AVB on Linux only. * Bump FreeBSD CI to 13.1 * remote-node: don\'t set activation state and signal_time twice * node: rename signal to signal_func * protocol-native: improve connection disconnect * potocol-native: improve error handling * jack: return error when disconnected * channelmix: only produce REAR/SIDE from FC in simple upmix * channelmix: produce STEREO from FC * channelmix: also filter FC and LFE when no layout * meson: also check for roc headers * systemd: add filter-chain service * pw-cli: remove the dump command * pw-cli: add alias in comand help * keys: improve docs a little * jack: use context properties for rules * jack: clean transport when closing the client * loop: flush items before stopping * data-loop: call pw_loop_invoke directly * pipewire: extend memfd name with additional information * alsa: improve test * alsa: add test for dumping hw_params * jack: add some debug when process is skipped * impl-port: remove io when no port outputs * conf: allow masking od conf.d/ files * conf: don\'t error on empty files * conf: free override * conf: support overriding context configuration in a different location * context: move loading of configuration into conf.c * bluez5: sco-source: deal with incomplete CVSD frames * alsa: do the right log level checks * alsa: redirect alsa output to log file * alsa: debug hw_params * acp: add debug for open and close * alsa: add some more debug * acp: handle some more mixer NULL cases * po: Update Swedish translation * audioconvert: Improve buffer params * acp: handle NULL mixer_handle * alsa-pcm: limit the target to the buffer size * audioconvert: always use DSP rate on DSP ports * bluez5: use lower case for UUIDs * bluez5: Add AAC decoder * pulse-server: give Manager permission for Flatpak apps with devices=all * modules: set pipewire.access.portal.app_id in access & pulse-server * modules: support getting app_id in pw_check_flatpak * modules: refactor check_flatpak to a common place * bluez5: Disable hw-volume for Soundcore Motion B * Georgian translation * impl-link: only free format in do_negotiate if copied * bluez5: opus: tweak ABR * bluez5: opus: better default bitrates * Issue #2570 - Use the xdg-portal-destkop of rtkit * spa: aec: rename first argument of methods in `spa_audio_aec_methods` * spa: aec: mark aec method tables `const` * pipewire: module-echo-cancel: remove line that does nothing * spa: aec: null: remove unnecessary cast * spa: aec: null: initialize variable when defined * spa: aec: null: specify vtable version * spa: aec: mark handle factory objects `static` * spa: aec: webrtc: use `static_cast` to cast from `void *` * spa: aec: webrtc: simplify `webrtc_get_spa_bool()` * bluez5: correct type of arguments to a dbus function * bluez5: Simplify DBus append_basic_ * helpers * bluez5: Removed unused variables in meson.build * audioconvert: fix rounding on arm neon * doc: tutorial3: change \"returns value\" to \"return value\" * doc: tutorial3: remove a line break * doc: tutorial3: do not return anything from `roundtrip()` * doc: tutorial3: mark vtable `static` * doc: tutorial3: do not use nested functions * doc: tutorial3: remove `done` variable * doc: tutorial3: do not `spa_zero()` the hook objects * doc: tutorial3: use tabs for indentation * stream: don\'t do overlapping assignment of union members * bluez5: fix minor issues / warnings * audioconvert: remove S32_SCALE * docs: fix ref * spa: libcamera: remove unnecessary cast * spa: libcamera: only add \"api.libcamera.location\" property when available * spa: libcamera: make `cameraLoc()` return a static string * spa: libcamera: mark two functions `static` * spa: libcamera: fix build error due to return type change * audioconvert: tweak resampler window some more * audioconvert: use SPA_CLAMPF to clamp floats * man: update pw-cli man page * avb: fix compilation on big endian * bluez5: add Opus as a (Pipewire-specific) A2DP vendor codec * bluez5: add opus-a2dp-0.5 caps * bluez5: add OPUS-A2DP specification * bluez5: handle sink vs. source correctly in get_supported_codecs * bluez5: enable logging for codecs * bluez5: enable A2DP duplex volume boost only if codec asks for it * bluez5: pass global setting dict to codec select_config / preference_cmp * bluez5: tell the codec whether endpoint is sink or source * bluez5: a2dp-source: more duplex codec workarounds * bluez5: a2dp-sink: support duplex codec * avb: fix compilation on big endian * avb: fix compilation on big endian * 0.3.56 * Revert \"mixer-dsp: mix a quantum of data at a time\" * audioconvert: add different channel remap testcase * audioconvert: fix input remapping * audioconvert: add test * fix some printf arguments * meson: remove sse_args from plain c build * audioconvert: improve noise bits * audioconvert: Fix Wannamaker name * jack.pc libraries should only be libjack * pw-cat: don\'t print useless error * stream: eliminate some implicit type conversions * buffers: eliminate an implicit type conversion * audioconvert: fix compilation warnings * audioconvert: improve noise shaping * filter-chain: don\'t use invalid ports * module-rt: handle pthread_getschedparam() errors correctly * tests: add test for rounding * audioconvert: build C versions with -Ofast and -ffast-math * audioconvert: round instead of truncate, to reduce distortion * audiconvert: make macros for conversions * filter-chain: add example LFE generator * filter-chain: be more carefull with buffer sizes * module-looback: improve data copy between streams * avb: remove wrong cargs * spa-resample: don\'t flush too much * context: add method to get the data loop * spa/alsa-udev: Check accessibility of pcm devices as well * pulse-server: add the delay * pulse-server: add some debugging * alsa: check the offset against the size of the buffer * spa-resample: handle init errors * audioconvert: set scale to cutoff when upsampling * bluez5: mark HFP/HSP streams with media.role=Communication * bluez5: adjust source rate control * avb: remove unused line * jack: only mix when we have input to mix * audioconvert: tweak the resampler a bit * fmt: add a space after comment header in config * doc: add AVB module * avb: properties are owned by avb object * avb: fill in some more values * avb: don\'t include ethernet header in in packets * avb: reply with advertise to discover * avb: handle command errors better * avb: save and load maap state * avb: implement maap * avb: implement streams * avb: 0 was used for no-event * avb: fix compilation * avb: use separate sockets per mac/type * avb: add packet filter * avb: use spa dll * avb: add missing file * avb: improve state machine * avb: avbtp -> avb * avb: improve MRP state handling * avb: implement more MRP * avb: more work * avb: add more state machine * avb: add beginnings of MRP/MMRP/MSRP/MVRP/SRP * avb: implement some more methods * avb: remove static streams * avb: implement acmp connect/disconnect commands * avb: use descriptors for ADP * avb: add some more descriptors * avb: implement some descriptors * avb: implement some more AEM * avb: clean up some packets * avb: add aecp stubs * avbtp: add some more fields * avbtp: add beginnings of AVB manager module * avb: remove libavtp dependency * avb: handle xruns better * avb: handle sink follower * avb: use iovec to read from ringbuffer * avb: add follower mode * avb: check seq * avb: add source * avb: more work * avb: more work * avb: more improvements * start of AVB support * 0.3.55 * audioconvert: add and use AVX2 clamp macros * audioconvert: add sse2 s16 dither functions * audioconvert: add and use CLAMP macros * pipewire: fix a bugprone-branch-clone warning * audioconvert: move scaling to setup * audioconvert: fix dither scale * audioconvert: improve SSE2 dither generation * audioconvert: add triangular dither * tests: add test for noise * pipewire: deprecate pw_stream_connect target_id in documentation * examples: use PW_KEY_TARGET_OBJECT * modules: use TARGET_OBJECT instead of NODE_TARGET * tests: whitespace is not allowed in number either * tests: add json float check unit test * udev: prefix vendor.id and product.id with 0x * json: avoid converting random string to floats * Revert \"spa: leave vendor.id and product.id in hex\" * audioconvert: implement f64s * Revert \"acp: sync with pulseaudio\" * filter-chain: add filter-chain.conf * audiomixer: optimize avx mixer some more * jack: improve mix function * audiomixer: improve sse and sse2 mixer * pipewire-v4l2: disable _FORTIFY_SOURCE when defining override functions * spa: tweak SPA_MIN and SPA_MAX * bluez5: volume changes from headset should be saved * bluez5: get initial node volume from transport * bluez5: backend-native: set HFP/HSP volume when connecting * bluez5: use separate routes for HFP and A2DP * tests: add missing file * tests: add sse and sse2 versions to tests * audiomixer: rewrite the mixer functions * audioconvert: improve s24_32 and u24_32 conversion * spa: add comment about prefetch * tests: fix clang build * filter-chain: fix build * filter-chain: add mixer sink example * tests: wait for the filter node as well * tests: make a test for ports * tests: add filter unit test * When adding MidnightBSD support, I inversed the condition here. * audioconvert: don\'t use uninitialized max_out * stream: implement prefetch * audioconvert: only consume what is needed * audioconvert: consume right amount of input samples * fmt-ops: express 32 bits formats in terms of 32_24 bits formats * raop-sink: fix some compilation errors * fmt-ops: fix some missing shifts and min/max * audioconvert: use 24 bits for 32 formats * stream: improve process callback * stream: don\'t crash when there is no io_rate * raop-sink: reuse timing packet send * module-raop-sink: Reply on timing socket earlier * module-raop: Add support for `auth_setup` * audiomixer: clean up mixer functions * resample: switch to cosh window function * acp: sync with pulseaudio * 0.3.54 * resample: tweak cosh parameter, this look really good * audioconvert: don\'t leak converter data * tests: add more audioconvert remap test * tests: add audioconvert test * alsa: fix uninitialized variable * pulse-server: fix warning * bluez5: fix minor error handling/warning issues * audioconvert: optimize remapping paths * alsa: add lock around sw_params * audioconvert: use blackman window again * dsdfile: support DSD128/256/512 as well * audioconvert: fix PROP_INFO * alsa: add lower rate bound for DSD playback * audioadapter: ask more data when converter empty * tests: add test for s24/u24 swap * bluez5: sco-source: implement sco-source the same way as a2dp-source * bluez5: a2dp-source: separate clock from recv + handle buffering * bluez5: sco-io: we should always read from socket * bluez5: ad2p-sink: adjust debug log message * audioconvert: Fix s24/u24 byte swapping * audioconvert: use right scale value * audioconvert: tweak more conversion constants * audioconvert: tweak conversion constants * audioconvert: fix pack/unpack of s24/u24 * pulse-server: work around race condition in SET_DEFAULT/MOVE_ * * pulse-server: tweak maxlength some more * audioconvert: fix channel remapping * null-sink: add option to debug memory * audioconvert: handle NAN from window function * pulse-server: optimize property allocations * pulse-server: add card properties to sinks and sources * audioconvert: fix draining * audioconvert: ensure temp buffers are large enough * audioconvert: remove unused field * audioconvert: simplify 24 bits handling * Update Croatian language and pipewire.pot file * audioconvert: implement (de)interleave with existing functions * audioconvert: use macros to generate code * 0.3.53 * pulse-server: map \"device.sysfs.path\" to \"sysfs.path\" * spa: leave vendor.id and product.id in hex * resample: use cosh window function * audioconvert: implement noise shaping * audioconvert: demote a debug log to trace_fp * pw-cat: read and write raw formats correctly * audioconvert: use faster noise generator * audioconvert: improve format conversion * audioconvert: fix some compiler warnings * audioconvert: use loop for channelmix method enum * audioconvert: dither in 24 bits * audioconvert: set right flags for functions * audioconvert: move dither and noise to fmt-ops * audioconvert: expose the selected function names * audioconvert: expose upmix-method in PROP_INFO * audioconvert: add dither passthrough flag * audioconvert: add dither noise setting in dither struct * audiocovert: improve dither setup * audioconvert: improve setup of quantization * audioconvert: handle errors * modules-raop: handle uninitialized vars * audioconvert: ensure alignment * audioconvert: optimize dither * audioconvert: Always apply noise when asked * add some SPA_LIKELY * acp: avoid assertion at alsa-lib mixer API when element removal * spa: audioconvert: ensure that noise::intesity is not too big * spa: audioconvert: use unsigned 64-bit integer for creating divisor * spa: audioconvert: use `SPA_N_ELEMENTS` in `noise_init()` * v4l2: fix port param enumeration for devices without controls * v4l2: close v4l2 device on error * audioconvert: add missing file * conf: update config files with new default property * audioconvert: add an option generate silence noise * channelmix: undefine the function macro * audioconvert: reset props before parsing config * gst: log warnings if pw_stream_queue_buffer fails * buffer: add EMPTY chunk flag * audiomixer: support offset and clamp size * alsa: simplify writing * docs: improve docs a little * roc: use native float samples * modules: improve docs * modules: fix format parsing * channelmix: guard against invalid channels * audioadapter: adjust max input ports * audioconvert: handle too many channels earlier * audioconvert: avoid crash on 64 channels + monitor enabled * alsa: handle driver bugs better * mixer-dsp: mix a quantum of data at a time * audioconvert: in merge mode, flush input * gst: protect negotiated field with lock * filter-chain: allow unconnected filter ports * filter-chain: ladspa properties are different from flags * filter-chain: error out on 0 handles * pulse-server: update quirks before querying the name * pulse-server: update client::name on UPDATE_CLIENT_PROPLIST command * conf: mix-lfe is by default false * alsa-seq: disable the running status * alsa-seq: handle midi event decoder errors * alsa: remove NoteOn 0-velocity fixup * audioconvert: fix resampler in_offset * pulse-server: tweak record attributes * Add support for MidnightBSD * Update Ukrainian translation * adapter: name control ports as \"control\" * adapter: support control ports in PortConfig * settings: remove 44.1KHz from allowed rates again * pulse-server: message: improve resizing logic * pulse-server: message: store pointer to impl directly * pulse-server: message: remove unnecessary forward declaration * spa: audioconvert: free resampler * pipewire: module-raop-sink: fix memory leak * pipewire: module-pipe-tunnel: accept file descriptor 0 * spa: ffmpeg: set spa_handle_factory::version * spa: ffmpeg: implement spa_handle::clear * spa: ffmpeg: implement spa_handle_factory::get_size * spa: ffmpeg: move some function declarations to a header * spa: tools: spa-inspect: clear and free handles * audioconvert: rework the control loop * examples: fix spelling mistake * audioconvert2: rename to audioconvert * audioconvert: remove old plugins * examples: fix volume fade in and out with control * audioconvert2: implement control port * audioconvert2: remove unused monitor field * audioconvert2: emit param change when volume changes * audioconvert2: fix for quantum changes * examples: add control support to adapter * examples: fix up adapter-control * audioconvert2: add control port processing * audioconvert2: fix in/out queued samples * audioconvert2: add beginnings of control ports * audioconvert2: reset node in Flush/Suspend * audioconvert2: clamp in and output samples * audioconvert2: remap volumes to right channels * audioconvert2: rearrange some code * audioconvert2: in merge mode, always process quant samples * audioconver2: process monitor ports immediately * audioconvert2: use the position rate as resampler rate * audioconvert2: Improvements * audioconvert2: add queueing * audioconvert2: handle drain * audioconvert2: clamp offset and size * audioconvert2: fix default settings * audioconvert2: more fixes * audioconvert2: more improvements * audioconvert2: set blocks a stride for DSP ports * audioconvert2: add options * audioconvert2: start working on monitor ports * audioconvert2: DSP mode without format gives no ports * audioconvert2: format is optional for convert mode * audioconvert2: fix audio rate property * audioconvert2: do input and output remapping * audioconvert2: handle volume * audioconvert2: add properties * audioconvert: add channelmix and resample * audioconvert: more work * Add audioconvert2 * INSTALL.md: add note about uninstallation * INSTALL.md: remove unnecessary colon * INSTALL.md: do not specify `sudo` for installation * INSTALL.md: emphasize some things with monospace font * INSTALL.md: specify build directory for (un)installation * INSTALL.md: use `meson compile` * INSTALL.md: link to meson and ninja websites * pw-cli: Work without readline too * pw-cat: also set rate/latency for pipe * channelmix: Assign slev in mixing matrix when generating side/rear from front * pulse-server: Don\'t send more than fragsize chunks * alsa: Disable IEC958 on Audioengine HD3 * channelmix: add 3p1_2 and use this for quad conversions * pulse-server: only append .monitor for capture streams * pulse-server: fix name when moved to monitor * channelmix: Implement PSD upmixing for stereo -> quad * Channel mixer: Remove channelmix_f32_2_4_sse * channelmix: fix control handling * bluez5: Fix LC3plus plugin build * stream: Fix memory leak * pw-cli: add -m option * pulse-server: don\'t append \"/pulse\" to PULSE_RUNTIME_PATH * 0.3.52 * pulse-server: destroy modules first * alsa: force same clock only for pro audio profile * pw-dump: also dump object removal * examples: fix modifier handling * dma-buf.dox readability * video-play-fixate: Address initialising modifiers * bluez5: disable dummy avrcp player by default * vulkan: update example shaders * vulkan: fix validation errors * vulkan: use image sampler * vulkan: use images * vulkan: add some more error checks * vulkan: more improvements * vulkan: support multiple streams of buffers * vulkan: start of vulkan filters * bluez5: don\'t consider profiles the adapter doesn\'t have * bluez5: a2dp-sink: address A2DP transport acquire failure mode * audioconvert: forward follower node errors * pulse-server: module-switch-on-connect: remove dead code and one allocation * bluez5: check decode/encode capability also at registering * modules: improve parsing of rate and channels * pipewire-jack: use `jack_client_close()` to free client in error path * pipewire-jack: check before destroying * pipewire-jack: move client-node setup right after creation * pipewire-jack: initialize certain members right after allocation * modules: clamp input offset and size * module-roc: improve sender loop * pulse-server: module-pipe-{sink,source}: drop redundant log messages * pulse-server: send STREAM_MOVED messages * pulse-server: keep stream latency around * doc: update with pipe-tunnel * pulse-server: check all pending streams * pulse-server: optimize link finding * gst: add client-properties * pulse-server: implement pipe sink/source with module * modules: align tunnel.mode * modules: add more docs and options to pipe-tunnel * modules: add pipe tunnel * pulse-server: mark module_ *_prepare() methods `static` * pulse-server: rename `module_info::prepare()` to `create()` * pulse-server: pass already created module object to `module_info::create()` * pulse-server: do not put static properties into `module::props` * pulse-server: serve module properties from static list * stream: improve docs about direction * acp: don\'t mix non-AUX and AUX channels * acp: return map on success * pulse-server: always send frame_size multiples of samples. * gst: dup buffer file descriptor before allocating * spa: support: loop: handle cancellation better * pulse-server: always send at least fragsize data * alsa: sync acp with pulseaudio * gst: dequeue a shared buffer instead of original pool buffer * gstpipewiresrc: don\'t mix tabs and spaces * spa: debug memcpy * impl-port: set port.alias if not already set * buffers: ensure buffer size does not exceed maxsize * pipewiresink: trigger process() manually when in driver mode * impl-port: pass the right param * bluez5: implement freewheel in sink * bluez5: use position clock time * bluez5: a2dp-sink: update follower current time * bluez5: endpoint can be used only by one device at a time * fix detection of reallocarray * alsa: do resync based on current measurements * utils: fix reallocarray macro * v4l2: cast varargs to the right type * src/pipewire/utils.h: fix build without reallocarray * libcamera: advertise the device.product.name and not some random description * libcamera: return empty controls instead of error * libcamera: add camera location property on nodes * Add uninstall instructions * spa: set port flags on port info * alsa: don\'t crash on NULL params * pulse-server: use 8 channels internally for TrueHD and DTSHD * po: Update Swedish translation * Update 90-pipewire-alsa.rules (ID 9886:0045 is for the Astro A20 Gen2) * man: escape | * Update Polish translation * Fix build on uclibc without locale support * jack: replace unmatched atomic store with mutex * pulse-server: module-x11-bell: initialize `module` member * man: update pw-cat man page * pw-cat: support stdin/stdout for input/output * pulse-server: don\'t export NETWORK nodes * pulse-server: reset message length when freeing * pw-cat: add -P option * mixer-dsp: handle input offset * audioadapter: improve error reporting * pipewire: module-spa-node-factory: remove resource listener when node is destroyed * Doxygen - enable client side search engine. * alsa: avoid allocation * alsa-plugin: use ioplug sw_params callback * pulse-server: emulate synchronous MOVE_ * commands * pulse-server: implement temporary data attached to manager objects * po: Update Turkish translation * alsa-pcm: Do not log warning when resync was expected * pulse-server: parse bool using pulseaudio rules * pulse-server: add auth-anonymous option * pulse-server: avoid skipping more ringbuffer data than available * pipewire: don\'t setlocale in pw_init * audioadapter: add some more debug * audioconvert: debug result code * audioconvert: remove props from info * adapter: pass spa_node to adapter * alsa-pcm: scale max_error with quantum size * stream: handle set_control when not connected * stream: don\'t emit param_changed from set_control * spa: bluez: ignore unsupported indicators * po: Update Ukrainian translation * Documentation Updates * filtet-chain: handle empty nodes * filter-chain: improve filter.graph parsing * protocol-native: remove destroyed client from client list * pulse-server: do a guess for the latency when starting * modules: update docs * pw-loopback: add -n option to set a node.name * module: also support global node.name * audioadapter: don\'t loop forever * protocol-native: improve client and resource refcounts * modules: handle factory destroy * module-metadata: handle factory destroy * module-adapter: handle factory destroy * Remove unnecessary } in src/modules/module-raop-discover.c docs * module: handle global destroy properly * filter-chain: improve error reporting * filter-chain: fix some typos * jack: check properties after we configured them * audioconvert: fix param counter * audioconvert: don\'t forward node results * audioconvert: remove unused port param * bluez5: use lc3plus.h instead of lc3.h * bluez5: fix lc3plus initial bitrate * Add --volume description * audio-src: queued only requested frames * ci: don\'t require lc3plus * bluez5: add LC3plus A2DP vendor codec * bluez5: add LC3plus A2DP vendor codec caps * bluez5: use bigger decode buffer in a2dp-source * bluez5: a2dp-source should not stop on codec decode failures * bluez5: allow codecs to produce multiple packets from same data * profiler: place rate suggestion in latency if given * settings: also allow 44.1KHz as samplerate * alsa: scale buffer with frame_scale * pw-cat: fix DSF playback again * 0.3.51 * pulse-server: use Rate control to change stream rate * stream: update node properties completely * handle realloc error better * bluez5: use reallocarray * jack: handle allocation errors better * json: improve unicode parsing * jack: don\'t wait for activation update * jack: fix a potential deadlock * json: convert utf16 to utf8 * json: fix \\uXXXX parsing * pw-cat: support saving to other file formats * bluez5: clear codec switch flag on device connnection change * module-roc: update docs * bluez5: stop running codec switch on disconnect * module-loopback: fix spelling * roc: add fec_code option * module-roc: try to switch rates * protocol-pulse: add roc-sink-input * roc-source: make the source a stream by default * module-roc-source: don\'t set defaults * module: add debug while dlopen failed * modules: update docs * module: update docs * module-rt: fix formating and comment * module-rt: fix compilation * Replace sched_ calls with pthread_ to set realtime priorities * Update spa/plugins/bluez5/bluez-hardware.conf * jack: only call buffer_size callback after change * filter: don\'t use invalid context * doc: add an older AGL Paper * doc: Add good bluetooth article * filter-chain: add a simple delay * filter-chain: fix config parse * pw-link: make port_id char array larger * pw-link: Support destroying all links between ports of two nodes * pw-link: Support creating links for all ports from a node to another * modules: update docs * modules: update docs * module: add docs * modules: add docs * modules: add more docs * modules: more docs * pulse-server: use config.ext for streams * conf: support config section extensions * context: make dict const * module-filter-chain: some more docs * module-filter-chain: add support for double params * module-filter-chain: add docs * move PIPEWIRE_PROPS to stream and filter * alsa: fix argument type for Long * modules: update docs * module-loopback: add docs * Support creating links for all ports from a node to another * stream: add stream.rules and filter.rules * conf: fix typo * make NODE_WANT_DRIVER=true the default * filter-chain: make sink-eq stereo to avoid confusion * filter-chain: increase max gain for biquads * modules: don\'t unload on stream errors * module: handle error and unconnected states * module-loopback: unload the module on stream unconnect * channelmix: use average for center and LFE * context: rework node states some more * connection: debug when we close fd * contect: also remove the original node passive state * context: make sure we clear the visited flag * resample: limit buffer input size to input maxsize * man: update pw-top man page * pw-cat: don\'t start drain on 0 request size * resample: use a -1 buffer size to drain * pw-top: improve error output * pw-top: handle invalid timings * test: getopt_long returns an int * man: improve pw-top man page * pw-top: clear errors when idle * pw-top: clear measurements when idle * pw-top: remove nodes from driver when idle * module-pulse-tunnel: clear ringbuffer on cork * context: rework state calculations * module-pulse-tunnel: move some info log to debug * module-pulse-tunnel: improve error recovery * pulse-tunnel: improve debug * context: don\'t move passive nodes to fallback driver * context: ignore inactive nodes some more * thread: implement some properties * jack: remove some pthread attributes * Cleanup argument names in methods and events interfaces: object/data, 2nd pass. * spa: utils: defs: parenthesize macro bodies * po: Update Swedish translation * treewide: retain sections to prevent linker garbage collection * Cleanup argument names in methods and events interfaces * spa: fix c90 header include * context: add some comments * context: re-evaluate quantum/rate for moved nodes * pw-cat: update man page * pw-cat: remove code to list targets * 0.3.50 * module-echo-cancel: put audio.position on properties * apply force-s16 quirk also to teams-insiders * channelmix: tweak defaults a little. * channelmix: reuse more functions * channelmix: only filter FC and LFE when upmixed * module: handle type register errors * pulse-server: module: rework registry * pw-reserver: add a -r option to RequestRelease * alsa: limit the buffer-size to quantum-limit * 4 * impl-node: improve node_set_active for exported nodes * Revert \"spa: set _GNU_SOURCE\" * spa: replace locale aware string functions with uselocale * channelmix: upmix disabled also disables FC and LFE generation * Update Croatian translation and pipewire.pot * jack: fix port sort * spa: set _GNU_SOURCE * man: add pw-link manpage * docs: fix pw_deinit() docs * jack: don\'t sort ports on alias * modules: add pid to unique name * channelmix: make PSD the default again * filter-chain: free descriptor * context: destroy data-loop in free * fix stream test * stream: report queued and dequeued buffers in pw_time * pw-cat: set buffer size field in frames * pw-cat: start timer when playing * global: use SPA_ID_INVALID to send serial id * meson: Add option to enable/disable legacy RTKit module * thread: deprecate pw_thread_utils_set() * Update Portuguese(pt) translation * pulse-tunnel: recover from xruns better * module-pulse-tunnel: use dll to keep latency under control * spa: mode dll to utils * stream: add support for double controls * fmtconvert: we support U16 format as well * spa: Improve PropInfo fields * modules: use NODE_WANT_DRIVER=true instead of NODE_GROUP * context: keep the driver passive when we can * resample: take rate scale property into account as well * pulse-server: include buffered data in stream delay * stream: add pw_stream_get_time_n() * filter: deprecate pw_filter_get_time() * pw-cat: improve output * stream: request quantum when no rate_match * stream: don\'t ask for 0 size buffer * jack: make a custom thread-utils * jack: start/stop loop in activate/deactivate * data-loop: always acquire rt priority * data-loop: add method to set custom thread-utils * thread-loop: we must be running to be in the thread * data-loop: check running state in _in_thread() * remove the rate_match io * stream: add the requested number of samples in buffer * 0.3.49 * move some debug to fastpath * stream: clarify the queued field * stream: Only request more data when needed * stream: report the resampler delay as queued * audioconvert: add queued samples as delay * resample: keep max in bytes * audioconvert: make simple upmix the default * jack: clear last error before sync * pipewire: improve pw_init/pw_deinit * stream: update pw_time docs a little. * Fix documentation link in README * module-echo-cancel: Use fraction as play delay * pipewire: don\'t setlocale from pw_init, let parent app set it * pw-dot: add json input mode * module-echo-cancel: Correct naming in example and plugins * pipewire: don\'t set locale * spa: add locale independent spa_dtoa * spa: add locale independent spa_strtod/spa_strtod * spa: debug double like a float * audioconvert: remove useless parsing * json: add locale independent parse and format functions * json: empty string should not give a valid number * SPA_DATA_DIR is the source root when uninstalled * pulse-server: module: only cancel unload work if added * pulse-server: manager: clean hook list * pulse-server: sample-play: clean hook list * pulse-server: module-combine-sink: remove unnecessary conditional * pulse-server: module: initialize index * audioconvert: use unaligned loads * audioconvert: fix sse2 deinterleave_32 * channelmix: add simple upmix method * tests: add some options * Update Polish translation * gitignore: remove config.h.meson * gitignore: remove build directories * gitignore: add dot files * spa: utils: hook: add comments and fix code in documentation * module-rt: small fixes * module-rt: allow building without RTKit * bluez5: handle any quantum in a2dp-sink * bluez5: make codec ABI mismatch messages warnings * bluez5: fix aptx-ll max_frames handling * bluez5: a2dp-sink: Fail flush on EAGAIN instead of delaying it * audioconvert: add SSE (de)interleave_32(s) versions * pulse-server: add sink/source_properties * pipewire: module-zeroconf-discover: handle when AvahiWatch is freed while dispatching * doc: Clarify size properties wrt DMA-BUFs * audioconvert: don\'t fixate rate * loop: clean polling flag when leaving the loop * pulse-server: also handle fix_ for capture * spa: support: loop: don\'t initialize source->loop * spa: support: loop: assert source\'s loop when dispatching * test: loop: add helper functions to simplify eventfd use * spa: support: loop: assert loop is not polling when destroyed * spa: support: loop: assert loop is not polling when source is removed * spa: only remove embedded source from data loop from within the loop * spa: support: loop: fix use-after-free when loop is reentered * test: loop: add test which destroys managed source before reentering * test: rewrite test which destroys active source before dispatching * spa: support: loop: add `polling` flag * spa: support: loop: assert source type * spa: support: loop: add some invariant assertions * spa: support: loop: rename variables * spa: support: loop: do not return early in case of an error * spa: support: loop: print previous mask when updating * spa: support: loop: get array size using macro * spa: support: loop: reset rmask after dispatch * spa: support: loop: initialize rmask * spa: support: loop: move struct members * test: loop: do not use NULL as event handler * gst: use target.object instead of node.target, soft-deprecate ids * bluez5: a2dp-sink: stop flushing if source was removed * pwtest: fix daemon log scrambling * pwtest: shorter default timeout * CI: add functional test program deps * pwtest: ARG_DAEMON tests don\'t work on valgrind * test: add simple functional tests * pwtest: handle SIGTERM/SIGINT in runner * pwtest: use default debug level 4 for spawned daemons * pwtest/Makefile: set SPA_DATA_DIR * pwtest: add pwtest_spawn for running external programs * pwtest: ensure all spawned daemons are terminated * bluez5: backend-ofono: don\'t do codec probe connections + add wait * Update meson.build * Update man/pw-top.1.rst.in * alsa: improve latency update * alsa: set better ranges on properties * channelmix: improve disabled flag * filter-chain: use property hints * filter-chain: use dynamic builder for param update * stream: guard against NULL params * merger: also remove PropInfo * pw-cat: improve DSD file reading * dsffile: fix negative interleave * channelmix: enable upmixing by default, disable normalization * pulse-server: handle pulse.properties * 0.3.48 * filter-chain: remove stray debug * minimal.conf: add some more example config * handle open_memstream errors * module-raop: handle and debug read errors * module-raop: use the right socket to read from * filter-chain: remove limits on ports * protocol: increase some limits * stream: add support for PropsInfo * spa: fix compilation with c++ * filter-chain: use offsets to deref pods * spa: use dyanmic builder for audioadapter * client-node: use dynamic pod builder * pod: use dynamic pod builder in some places * spa: add dynamic builder helper * channelmix: add option to filter FC * audioconvert: add optional hilbert transform to rear channels * channelmix: add option for stereo widen * channelmix: place L-R in rear channels * audioconvert: add delay to rear channels when upmixing * channelmix: improve corssover processing * filter-chain: do some checks on the number of ports * filter-chain: use MAX_CONTROLS for control ports * pulse-server: set also metadata target.object when moving streams * pw-top: Fix unicode character clipping * module-session-manager: set object.serial on session objects * module-metadata: set object.serial on new client metadata * impl-client: add workaround for old pipewire-media-session compatibility * global: update generation number also in clients without registry * protocol-native: footer pre_demarshal must come first * channelmix: set mix log earlier * channelmix: fix lfe-cutoff parsing * pw-cli: fix print of pod debug * channelmix: recalc channelmix when param changed * channelmix: remove LFE when cutoff is <= 0.0 * bluez5: only consider A2DP profiles if HSP/HFP backed is none * channelmix: add stereo to 7.1 upmix * channelmix: don\'t pass channels around * pulse-server: get stream id in paused * channelmix: Fix copy and paste error * channelmix: use the right channelmap * channelmix: fix 5p1 -> 2 see channelmix * module-echo-cancel: fix leak on error * filter-chain: move node.name to the streams * pulse-server: fix device.description * filter-chain: improve error reporting * conf: return the error * context: set zero_denormals in data thread. * filter-chain: avoid denormals in biquad * context: don\'t touch denormals settings when left unset * pulse-server: fix IEC958 passthrough again * pulse-server: improve fix_ flags handling * audioadapter: improve fixation of the format * pulse-server: place the final sample rate as property * Fri Sep 02 2022 virtuousfoxAATTgmail.com- Update to version 0.3.56+145~git20220901.a3351b899: * Update Catalan translation * pulse-server: simplify latency handling * pulse-server: tweak the fragsize/minreq handling * pulse-server: send chunks with half the fragsize * spa: clean up some port io checks * spa: don\'t warn for NULL io * filter-chain: fix includes * alsa: pass bool argument properly * alsa: save volumes * Thu Sep 01 2022 virtuousfoxAATTgmail.com- Update to version 0.3.56+136~git20220831.c8ef655b3: * jack: group all jack nodes in the same application group * context: remove unused function * alsa: Improve format negotiation * Wed Aug 31 2022 virtuousfoxAATTgmail.com- Update to version 0.3.56+133~git20220830.b33ffcf68: * test: print channel map as reported by alsa as well * pulse-tunnel: destroy the module on errors * pulse-tunnel: fix rate adjustement argument * audioconvert: don\'t emit changed events for rate changes * module-rt: small fixes * module-rt: retry with RtKit if set_nice or set_rlimit fails * hook: don\'t remove from unitialized list * list: add spa_list_is_initialized() * Update LINGUAS * Update Polish translation * audioconvert: fix rate match for sources * bluez5: avoid (harmless) integer overflow * Update galician translations * On FreeBSD do not try to redefine O_PATH. * Guard inclusion with an #ifdef. * avb: free resources on error * jack: Increase JACK_CLIENT_NAME_SIZE * jack: Include NULL in return value of jack_client_name_size() * gst: copy buffer memory in dequeue_buffer using gst_memory_copy * Fri Aug 19 2022 virtuousfoxAATTgmail.com- Update to version 0.3.56+114~git20220819.a969feb3c: * avb: validate random data for xsubi * utils: pw_getrandom: warn on unused return value * utils: pw_getrandom() use errno from read() call * spa: add SPA_WARN_UNUSED_RESULT * pw-cat: clean up resource correctly on EIO * bluez5: Test transport pointer before using it * protocol-native: small cleanups * protocol-native: write socket address into fd * convolver: fix crash on FFT unload * treewide: meson.build: use `host_machine` instead of `build_machine` * spa: meson.build: add missing new line * bluez5: opus: react faster to too long packet queue * bluez5: bump Opus max bitrates * pipewire-jack: do not dereference value from `pw_data_loop_get_thread()` * pipewire-jack: return a zero initialized `pthread_t` in case of error * Enable AVB on Linux only. * Bump FreeBSD CI to 13.1 * Thu Aug 11 2022 virtuousfoxAATTgmail.com- Update to version 0.3.56+97~git20220811.27dcbfc1e: * remote-node: don\'t set activation state and signal_time twice * node: rename signal to signal_func * protocol-native: improve connection disconnect * potocol-native: improve error handling * jack: return error when disconnected * channelmix: only produce REAR/SIDE from FC in simple upmix * channelmix: produce STEREO from FC * channelmix: also filter FC and LFE when no layout * meson: also check for roc headers * systemd: add filter-chain service * pw-cli: remove the dump command * pw-cli: add alias in comand help * keys: improve docs a little * jack: use context properties for rules * jack: clean transport when closing the client * loop: flush items before stopping * data-loop: call pw_loop_invoke directly * pipewire: extend memfd name with additional information * alsa: improve test * alsa: add test for dumping hw_params * Mon Aug 08 2022 virtuousfoxAATTgmail.com- Update to version 0.3.56+77~git20220808.1cd465588: * jack: add some debug when process is skipped * impl-port: remove io when no port outputs * conf: allow masking od conf.d/ files * conf: don\'t error on empty files * Sun Aug 07 2022 virtuousfoxAATTgmail.com- Update to version 0.3.56+73~git20220806.04a3f5172: * conf: free override * conf: support overriding context configuration in a different location * context: move loading of configuration into conf.c * bluez5: sco-source: deal with incomplete CVSD frames * alsa: do the right log level checks * alsa: redirect alsa output to log file * alsa: debug hw_params * acp: add debug for open and close * alsa: add some more debug * acp: handle some more mixer NULL cases * Wed Aug 03 2022 virtuousfoxAATTgmail.com- Update to version 0.3.56+63~git20220803.df58a201f: * po: Update Swedish translation * audioconvert: Improve buffer params * Wed Aug 03 2022 virtuousfoxAATTgmail.com- Update to version 0.3.56+61~git20220803.6144d037c: * acp: handle NULL mixer_handle * alsa-pcm: limit the target to the buffer size * audioconvert: always use DSP rate on DSP ports * bluez5: use lower case for UUIDs * bluez5: Add AAC decoder * Tue Aug 02 2022 virtuousfoxAATTgmail.com- Update to version 0.3.56+56~git20220801.6d4d77802: * pulse-server: give Manager permission for Flatpak apps with devices=all * modules: set pipewire.access.portal.app_id in access & pulse-server * modules: support getting app_id in pw_check_flatpak * modules: refactor check_flatpak to a common place * bluez5: Disable hw-volume for Soundcore Motion B * Georgian translation * impl-link: only free format in do_negotiate if copied * bluez5: opus: tweak ABR * bluez5: opus: better default bitrates * Issue #2570 - Use the xdg-portal-destkop of rtkit * Sun Jul 24 2022 virtuousfoxAATTgmail.com- Update to version 0.3.56+46~git20220723.aab15433c: * spa: aec: rename first argument of methods in `spa_audio_aec_methods` * spa: aec: mark aec method tables `const` * pipewire: module-echo-cancel: remove line that does nothing * spa: aec: null: remove unnecessary cast * spa: aec: null: initialize variable when defined * spa: aec: null: specify vtable version * spa: aec: mark handle factory objects `static` * spa: aec: webrtc: use `static_cast` to cast from `void *` * spa: aec: webrtc: simplify `webrtc_get_spa_bool()` * bluez5: correct type of arguments to a dbus function * bluez5: Simplify DBus append_basic_ * helpers * bluez5: Removed unused variables in meson.build * audioconvert: fix rounding on arm neon * doc: tutorial3: change \"returns value\" to \"return value\" * doc: tutorial3: remove a line break * doc: tutorial3: do not return anything from `roundtrip()` * doc: tutorial3: mark vtable `static` * doc: tutorial3: do not use nested functions * doc: tutorial3: remove `done` variable * doc: tutorial3: do not `spa_zero()` the hook objects * doc: tutorial3: use tabs for indentation * stream: don\'t do overlapping assignment of union members * bluez5: fix minor issues / warnings * Wed Jul 20 2022 virtuousfoxAATTgmail.com- Update to version 0.3.56+23~git20220720.38b3d027e: * audioconvert: remove S32_SCALE * docs: fix ref * spa: libcamera: remove unnecessary cast * spa: libcamera: only add \"api.libcamera.location\" property when available * spa: libcamera: make `cameraLoc()` return a static string * spa: libcamera: mark two functions `static` * spa: libcamera: fix build error due to return type change * audioconvert: tweak resampler window some more * Tue Jul 19 2022 virtuousfoxAATTgmail.com- Update to version 0.3.56+15~git20220719.5a8af97a4: * audioconvert: use SPA_CLAMPF to clamp floats * man: update pw-cli man page * avb: fix compilation on big endian * bluez5: add Opus as a (Pipewire-specific) A2DP vendor codec * bluez5: add opus-a2dp-0.5 caps * bluez5: add OPUS-A2DP specification * bluez5: handle sink vs. source correctly in get_supported_codecs * bluez5: enable logging for codecs * bluez5: enable A2DP duplex volume boost only if codec asks for it * bluez5: pass global setting dict to codec select_config / preference_cmp * bluez5: tell the codec whether endpoint is sink or source * bluez5: a2dp-source: more duplex codec workarounds * bluez5: a2dp-sink: support duplex codec * avb: fix compilation on big endian * avb: fix compilation on big endian * 0.3.56 * Revert \"mixer-dsp: mix a quantum of data at a time\" * audioconvert: add different channel remap testcase * audioconvert: fix input remapping * audioconvert: add test * fix some printf arguments * meson: remove sse_args from plain c build * audioconvert: improve noise bits * audioconvert: Fix Wannamaker name * jack.pc libraries should only be libjack * pw-cat: don\'t print useless error * stream: eliminate some implicit type conversions * buffers: eliminate an implicit type conversion * audioconvert: fix compilation warnings * audioconvert: improve noise shaping * filter-chain: don\'t use invalid ports * module-rt: handle pthread_getschedparam() errors correctly * tests: add test for rounding * audioconvert: build C versions with -Ofast and -ffast-math * Wed Jul 13 2022 virtuousfoxAATTgmail.com- Update to version 0.3.55+64~git20220713.0ba3e7c5d: * audioconvert: round instead of truncate, to reduce distortion * audiconvert: make macros for conversions * filter-chain: add example LFE generator * filter-chain: be more carefull with buffer sizes * module-looback: improve data copy between streams * avb: remove wrong cargs * spa-resample: don\'t flush too much * Wed Jul 13 2022 virtuousfoxAATTgmail.com- Update to version 0.3.55+57~git20220713.0c24d66dc: * context: add method to get the data loop * spa/alsa-udev: Check accessibility of pcm devices as well * pulse-server: add the delay * pulse-server: add some debugging * alsa: check the offset against the size of the buffer * spa-resample: handle init errors * audioconvert: set scale to cutoff when upsampling * bluez5: mark HFP/HSP streams with media.role=Communication * bluez5: adjust source rate control * avb: remove unused line * jack: only mix when we have input to mix * audioconvert: tweak the resampler a bit * fmt: add a space after comment header in config * doc: add AVB module * avb: properties are owned by avb object * avb: fill in some more values * avb: don\'t include ethernet header in in packets * avb: reply with advertise to discover * avb: handle command errors better * avb: save and load maap state * avb: implement maap * avb: implement streams * avb: 0 was used for no-event * avb: fix compilation * avb: use separate sockets per mac/type * avb: add packet filter * avb: use spa dll * avb: add missing file * avb: improve state machine * avb: avbtp -> avb * avb: improve MRP state handling * avb: implement more MRP * avb: more work * avb: add more state machine * avb: add beginnings of MRP/MMRP/MSRP/MVRP/SRP * avb: implement some more methods * avb: remove static streams * avb: implement acmp connect/disconnect commands * avb: use descriptors for ADP * avb: add some more descriptors * avb: implement some descriptors * avb: implement some more AEM * avb: clean up some packets * avb: add aecp stubs * avbtp: add some more fields * avbtp: add beginnings of AVB manager module * avb: remove libavtp dependency * avb: handle xruns better * avb: handle sink follower * avb: use iovec to read from ringbuffer * avb: add follower mode * avb: check seq * avb: add source * avb: more work * avb: more work * avb: more improvements * start of AVB support * 0.3.55 * audioconvert: add and use AVX2 clamp macros * audioconvert: add sse2 s16 dither functions * audioconvert: add and use CLAMP macros * pipewire: fix a bugprone-branch-clone warning * audioconvert: move scaling to setup * audioconvert: fix dither scale * audioconvert: improve SSE2 dither generation * audioconvert: add triangular dither * tests: add test for noise * pipewire: deprecate pw_stream_connect target_id in documentation * examples: use PW_KEY_TARGET_OBJECT * modules: use TARGET_OBJECT instead of NODE_TARGET * tests: whitespace is not allowed in number either * tests: add json float check unit test * udev: prefix vendor.id and product.id with 0x * json: avoid converting random string to floats * Revert \"spa: leave vendor.id and product.id in hex\" * audioconvert: implement f64s * Revert \"acp: sync with pulseaudio\" * filter-chain: add filter-chain.conf * audiomixer: optimize avx mixer some more * Sun Jul 10 2022 virtuousfoxAATTgmail.com- Update to version 0.3.54+36~git20220710.23984f879: * jack: improve mix function * audiomixer: improve sse and sse2 mixer * pipewire-v4l2: disable _FORTIFY_SOURCE when defining override functions * spa: tweak SPA_MIN and SPA_MAX * bluez5: volume changes from headset should be saved * bluez5: get initial node volume from transport * bluez5: backend-native: set HFP/HSP volume when connecting * bluez5: use separate routes for HFP and A2DP * tests: add missing file * tests: add sse and sse2 versions to tests * audiomixer: rewrite the mixer functions * audioconvert: improve s24_32 and u24_32 conversion * Fri Jul 08 2022 virtuousfoxAATTgmail.com- Update to version 0.3.54+24~git20220708.20172bfbe: * spa: add comment about prefetch * tests: fix clang build * filter-chain: fix build * filter-chain: add mixer sink example * tests: wait for the filter node as well * tests: make a test for ports * tests: add filter unit test * When adding MidnightBSD support, I inversed the condition here. * audioconvert: don\'t use uninitialized max_out * Fri Jul 08 2022 virtuousfoxAATTgmail.com- Update to version 0.3.54+15~git20220708.e53eefef0: * stream: implement prefetch * audioconvert: only consume what is needed * audioconvert: consume right amount of input samples * fmt-ops: express 32 bits formats in terms of 32_24 bits formats * raop-sink: fix some compilation errors * fmt-ops: fix some missing shifts and min/max * audioconvert: use 24 bits for 32 formats * stream: improve process callback * stream: don\'t crash when there is no io_rate * raop-sink: reuse timing packet send * module-raop-sink: Reply on timing socket earlier * module-raop: Add support for `auth_setup` * audiomixer: clean up mixer functions * Thu Jul 07 2022 virtuousfoxAATTgmail.com- Update to version 0.3.54+2~git20220707.4a82cb74e: * resample: switch to cosh window function * acp: sync with pulseaudio * 0.3.54 * resample: tweak cosh parameter, this look really good * Wed Jul 06 2022 virtuousfoxAATTgmail.com- Update to version 0.3.53+37~git20220706.74bed47a5: * audioconvert: don\'t leak converter data * tests: add more audioconvert remap test * Wed Jul 06 2022 virtuousfoxAATTgmail.com- Update to version 0.3.53+35~git20220706.4036b8a3f: * tests: add audioconvert test * alsa: fix uninitialized variable * pulse-server: fix warning * bluez5: fix minor error handling/warning issues * audioconvert: optimize remapping paths * alsa: add lock around sw_params * Wed Jul 06 2022 virtuousfoxAATTgmail.com- Update to version 0.3.53+29~git20220706.0b351aab9: * audioconvert: use blackman window again * dsdfile: support DSD128/256/512 as well * audioconvert: fix PROP_INFO * Tue Jul 05 2022 virtuousfoxAATTgmail.com- Update to version 0.3.53+26~git20220705.7e4490974: * alsa: add lower rate bound for DSD playback * audioadapter: ask more data when converter empty * tests: add test for s24/u24 swap * bluez5: sco-source: implement sco-source the same way as a2dp-source * bluez5: a2dp-source: separate clock from recv + handle buffering * bluez5: sco-io: we should always read from socket * bluez5: ad2p-sink: adjust debug log message * audioconvert: Fix s24/u24 byte swapping * audioconvert: use right scale value * audioconvert: tweak more conversion constants * audioconvert: tweak conversion constants * audioconvert: fix pack/unpack of s24/u24 * Mon Jul 04 2022 virtuousfoxAATTgmail.com- Update to version 0.3.53+14~git20220704.a46d4aedd: * pulse-server: work around race condition in SET_DEFAULT/MOVE_ * * pulse-server: tweak maxlength some more * audioconvert: fix channel remapping * null-sink: add option to debug memory * Sun Jul 03 2022 virtuousfoxAATTgmail.com- Update to version 0.3.53+10~git20220703.67f648cc6: * audioconvert: handle NAN from window function * pulse-server: optimize property allocations * Sat Jul 02 2022 virtuousfoxAATTgmail.com- Update to version 0.3.53+8~git20220701.a31989b46: * pulse-server: add card properties to sinks and sources * audioconvert: fix draining * Fri Jul 01 2022 virtuousfoxAATTgmail.com- Update to version 0.3.53+6~git20220701.9af945088: * audioconvert: ensure temp buffers are large enough * audioconvert: remove unused field * audioconvert: simplify 24 bits handling * Update Croatian language and pipewire.pot file * Thu Jun 30 2022 virtuousfoxAATTgmail.com- Update to version 0.3.53+2~git20220630.06b1cf866: * audioconvert: implement (de)interleave with existing functions * audioconvert: use macros to generate code * 0.3.53 * pulse-server: map \"device.sysfs.path\" to \"sysfs.path\" * spa: leave vendor.id and product.id in hex * Wed Jun 29 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+139~git20220629.a44c600ad: * resample: use cosh window function * audioconvert: implement noise shaping * audioconvert: demote a debug log to trace_fp * pw-cat: read and write raw formats correctly * audioconvert: use faster noise generator * audioconvert: improve format conversion * audioconvert: fix some compiler warnings * audioconvert: use loop for channelmix method enum * Tue Jun 28 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+131~git20220628.22d02a789: * audioconvert: dither in 24 bits * audioconvert: set right flags for functions * audioconvert: move dither and noise to fmt-ops * audioconvert: expose the selected function names * audioconvert: expose upmix-method in PROP_INFO * audioconvert: add dither passthrough flag * audioconvert: add dither noise setting in dither struct * audiocovert: improve dither setup * audioconvert: improve setup of quantization * audioconvert: handle errors * modules-raop: handle uninitialized vars * audioconvert: ensure alignment * audioconvert: optimize dither * Mon Jun 27 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+118~git20220627.9f55708e9: * audioconvert: Always apply noise when asked * add some SPA_LIKELY * acp: avoid assertion at alsa-lib mixer API when element removal * spa: audioconvert: ensure that noise::intesity is not too big * spa: audioconvert: use unsigned 64-bit integer for creating divisor * spa: audioconvert: use `SPA_N_ELEMENTS` in `noise_init()` * v4l2: fix port param enumeration for devices without controls * v4l2: close v4l2 device on error * Fri Jun 24 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+110~git20220624.13ccccbfb: * audioconvert: add missing file * conf: update config files with new default property * Fri Jun 24 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+108~git20220624.1c6cb049c: * audioconvert: add an option generate silence noise * channelmix: undefine the function macro * audioconvert: reset props before parsing config * gst: log warnings if pw_stream_queue_buffer fails * buffer: add EMPTY chunk flag * audiomixer: support offset and clamp size * alsa: simplify writing * Thu Jun 23 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+101~git20220623.532fc29c8: * docs: improve docs a little * roc: use native float samples * modules: improve docs * modules: fix format parsing * channelmix: guard against invalid channels * audioadapter: adjust max input ports * audioconvert: handle too many channels earlier * audioconvert: avoid crash on 64 channels + monitor enabled * alsa: handle driver bugs better * mixer-dsp: mix a quantum of data at a time * audioconvert: in merge mode, flush input * Wed Jun 22 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+90~git20220621.5363bdcfc: * gst: protect negotiated field with lock * filter-chain: allow unconnected filter ports * filter-chain: ladspa properties are different from flags * Tue Jun 21 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+87~git20220620.05064bd55: * filter-chain: error out on 0 handles * pulse-server: update quirks before querying the name * pulse-server: update client::name on UPDATE_CLIENT_PROPLIST command * conf: mix-lfe is by default false * alsa-seq: disable the running status * alsa-seq: handle midi event decoder errors * alsa: remove NoteOn 0-velocity fixup * audioconvert: fix resampler in_offset * pulse-server: tweak record attributes * Add support for MidnightBSD * Fri Jun 17 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+76~git20220617.6b09a304d: * adapter: name control ports as \"control\" * adapter: support control ports in PortConfig * settings: remove 44.1KHz from allowed rates again * Fri Jun 17 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+73~git20220616.ae34b68e3: * pulse-server: message: improve resizing logic * pulse-server: message: store pointer to impl directly * pulse-server: message: remove unnecessary forward declaration * spa: audioconvert: free resampler * pipewire: module-raop-sink: fix memory leak * pipewire: module-pipe-tunnel: accept file descriptor 0 * spa: ffmpeg: set spa_handle_factory::version * spa: ffmpeg: implement spa_handle::clear * spa: ffmpeg: implement spa_handle_factory::get_size * spa: ffmpeg: move some function declarations to a header * spa: tools: spa-inspect: clear and free handles * audioconvert: rework the control loop * examples: fix spelling mistake * audioconvert2: rename to audioconvert * audioconvert: remove old plugins * examples: fix volume fade in and out with control * audioconvert2: implement control port * audioconvert2: remove unused monitor field * audioconvert2: emit param change when volume changes * audioconvert2: fix for quantum changes * examples: add control support to adapter * examples: fix up adapter-control * audioconvert2: add control port processing * audioconvert2: fix in/out queued samples * audioconvert2: add beginnings of control ports * audioconvert2: reset node in Flush/Suspend * audioconvert2: clamp in and output samples * audioconvert2: remap volumes to right channels * audioconvert2: rearrange some code * audioconvert2: in merge mode, always process quant samples * audioconver2: process monitor ports immediately * audioconvert2: use the position rate as resampler rate * audioconvert2: Improvements * audioconvert2: add queueing * audioconvert2: handle drain * audioconvert2: clamp offset and size * audioconvert2: fix default settings * audioconvert2: more fixes * audioconvert2: more improvements * audioconvert2: set blocks a stride for DSP ports * audioconvert2: add options * audioconvert2: start working on monitor ports * audioconvert2: DSP mode without format gives no ports * audioconvert2: format is optional for convert mode * audioconvert2: fix audio rate property * audioconvert2: do input and output remapping * audioconvert2: handle volume * audioconvert2: add properties * audioconvert: add channelmix and resample * audioconvert: more work * Add audioconvert2 * INSTALL.md: add note about uninstallation * INSTALL.md: remove unnecessary colon * INSTALL.md: do not specify `sudo` for installation * INSTALL.md: emphasize some things with monospace font * INSTALL.md: specify build directory for (un)installation * INSTALL.md: use `meson compile` * INSTALL.md: link to meson and ninja websites * pw-cli: Work without readline too * pw-cat: also set rate/latency for pipe * Tue Jun 14 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+13~git20220614.3695611b2: * channelmix: Assign slev in mixing matrix when generating side/rear from front * pulse-server: Don\'t send more than fragsize chunks * alsa: Disable IEC958 on Audioengine HD3 * Mon Jun 13 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+10~git20220613.8e1f0628f: * channelmix: add 3p1_2 and use this for quad conversions * pulse-server: only append .monitor for capture streams * pulse-server: fix name when moved to monitor * Mon Jun 13 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+7~git20220613.5dc4434dc: * channelmix: Implement PSD upmixing for stereo -> quad * Channel mixer: Remove channelmix_f32_2_4_sse * channelmix: fix control handling * Sat Jun 11 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+4~git20220610.8bd1d4c7c: * bluez5: Fix LC3plus plugin build * stream: Fix memory leak * Thu Jun 09 2022 virtuousfoxAATTgmail.com- Update to version 0.3.52+2~git20220609.9255cfbd7: * pw-cli: add -m option * pulse-server: don\'t append \"/pulse\" to PULSE_RUNTIME_PATH * 0.3.52 * pulse-server: destroy modules first * Wed Jun 08 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+143~git20220608.b99c71262: * alsa: force same clock only for pro audio profile * pw-dump: also dump object removal * examples: fix modifier handling * dma-buf.dox readability * video-play-fixate: Address initialising modifiers * bluez5: disable dummy avrcp player by default * vulkan: update example shaders * vulkan: fix validation errors * vulkan: use image sampler * vulkan: use images * vulkan: add some more error checks * vulkan: more improvements * vulkan: support multiple streams of buffers * vulkan: start of vulkan filters * bluez5: don\'t consider profiles the adapter doesn\'t have * bluez5: a2dp-sink: address A2DP transport acquire failure mode * audioconvert: forward follower node errors * pulse-server: module-switch-on-connect: remove dead code and one allocation * bluez5: check decode/encode capability also at registering * Sun Jun 05 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+124~git20220604.a84412ccb: * modules: improve parsing of rate and channels * pipewire-jack: use `jack_client_close()` to free client in error path * pipewire-jack: check before destroying * pipewire-jack: move client-node setup right after creation * pipewire-jack: initialize certain members right after allocation * Sat Jun 04 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+119~git20220604.0f839c7b6: * modules: clamp input offset and size * module-roc: improve sender loop * Fri Jun 03 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+117~git20220603.876a5977f: * pulse-server: module-pipe-{sink,source}: drop redundant log messages * pulse-server: send STREAM_MOVED messages * pulse-server: keep stream latency around * doc: update with pipe-tunnel * pulse-server: check all pending streams * pulse-server: optimize link finding * gst: add client-properties * pulse-server: implement pipe sink/source with module * modules: align tunnel.mode * modules: add more docs and options to pipe-tunnel * modules: add pipe tunnel * pulse-server: mark module_ *_prepare() methods `static` * pulse-server: rename `module_info::prepare()` to `create()` * pulse-server: pass already created module object to `module_info::create()` * pulse-server: do not put static properties into `module::props` * pulse-server: serve module properties from static list * stream: improve docs about direction * acp: don\'t mix non-AUX and AUX channels * acp: return map on success * pulse-server: always send frame_size multiples of samples. * gst: dup buffer file descriptor before allocating * spa: support: loop: handle cancellation better * Wed Jun 01 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+95~git20220601.0d51f3b74: * pulse-server: always send at least fragsize data * alsa: sync acp with pulseaudio * gst: dequeue a shared buffer instead of original pool buffer * gstpipewiresrc: don\'t mix tabs and spaces * spa: debug memcpy * impl-port: set port.alias if not already set * buffers: ensure buffer size does not exceed maxsize * pipewiresink: trigger process() manually when in driver mode * impl-port: pass the right param * bluez5: implement freewheel in sink * bluez5: use position clock time * bluez5: a2dp-sink: update follower current time * bluez5: endpoint can be used only by one device at a time * fix detection of reallocarray * Sun May 29 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+81~git20220527.63d210259: * alsa: do resync based on current measurements * utils: fix reallocarray macro * v4l2: cast varargs to the right type * src/pipewire/utils.h: fix build without reallocarray * libcamera: advertise the device.product.name and not some random description * Fri May 27 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+76~git20220526.96472e259: * libcamera: return empty controls instead of error * libcamera: add camera location property on nodes * Add uninstall instructions * spa: set port flags on port info * alsa: don\'t crash on NULL params * Wed May 25 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+71~git20220523.57e732cd2: * pulse-server: use 8 channels internally for TrueHD and DTSHD * po: Update Swedish translation * Update 90-pipewire-alsa.rules (ID 9886:0045 is for the Astro A20 Gen2) * Sun May 22 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+68~git20220521.840fa000e: * man: escape | * Update Polish translation * Fix build on uclibc without locale support * jack: replace unmatched atomic store with mutex * pulse-server: module-x11-bell: initialize `module` member * man: update pw-cat man page * pw-cat: support stdin/stdout for input/output * pulse-server: don\'t export NETWORK nodes * Wed May 18 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+60~git20220518.05deba85a: * pulse-server: reset message length when freeing * pw-cat: add -P option * mixer-dsp: handle input offset * audioadapter: improve error reporting * pipewire: module-spa-node-factory: remove resource listener when node is destroyed * Doxygen - enable client side search engine. * Mon May 16 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+54~git20220516.b1578ee10: * alsa: avoid allocation * alsa-plugin: use ioplug sw_params callback * Sun May 15 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+52~git20220515.98aa7ccff: * pulse-server: emulate synchronous MOVE_ * commands * pulse-server: implement temporary data attached to manager objects * po: Update Turkish translation * Fri May 13 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+49~git20220511.64c1b62aa: * alsa-pcm: Do not log warning when resync was expected * pulse-server: parse bool using pulseaudio rules * pulse-server: add auth-anonymous option * pulse-server: avoid skipping more ringbuffer data than available * pipewire: don\'t setlocale in pw_init * audioadapter: add some more debug * audioconvert: debug result code * audioconvert: remove props from info * adapter: pass spa_node to adapter * alsa-pcm: scale max_error with quantum size * stream: handle set_control when not connected * stream: don\'t emit param_changed from set_control * spa: bluez: ignore unsupported indicators * po: Update Ukrainian translation * Documentation Updates * Sun May 08 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+34~git20220507.8afe5fe0f: * filtet-chain: handle empty nodes * filter-chain: improve filter.graph parsing * protocol-native: remove destroyed client from client list * Fri May 06 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+31~git20220506.d50678161: * pulse-server: do a guess for the latency when starting * modules: update docs * pw-loopback: add -n option to set a node.name * module: also support global node.name * audioadapter: don\'t loop forever * protocol-native: improve client and resource refcounts * modules: handle factory destroy * module-metadata: handle factory destroy * module-adapter: handle factory destroy * Remove unnecessary } in src/modules/module-raop-discover.c docs * module: handle global destroy properly * filter-chain: improve error reporting * filter-chain: fix some typos * Wed May 04 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+18~git20220504.43fec3ee3: * jack: check properties after we configured them * audioconvert: fix param counter * audioconvert: don\'t forward node results * audioconvert: remove unused port param * bluez5: use lc3plus.h instead of lc3.h * bluez5: fix lc3plus initial bitrate * Add --volume description * audio-src: queued only requested frames * Mon May 02 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+10~git20220501.6a8bdf1bf: * ci: don\'t require lc3plus * bluez5: add LC3plus A2DP vendor codec * bluez5: add LC3plus A2DP vendor codec caps * bluez5: use bigger decode buffer in a2dp-source * bluez5: a2dp-source should not stop on codec decode failures * bluez5: allow codecs to produce multiple packets from same data * Fri Apr 29 2022 virtuousfoxAATTgmail.com- Update to version 0.3.51+4~git20220428.0cab700c0: * profiler: place rate suggestion in latency if given * settings: also allow 44.1KHz as samplerate * alsa: scale buffer with frame_scale * pw-cat: fix DSF playback again * 0.3.51 * Wed Apr 27 2022 virtuousfoxAATTgmail.com- Update to version 0.3.50+96~git20220427.dfbb106aa: * pulse-server: use Rate control to change stream rate * Wed Apr 27 2022 virtuousfoxAATTgmail.com- Update to version 0.3.50+95~git20220427.e68364e5b: * stream: update node properties completely * handle realloc error better * bluez5: use reallocarray * jack: handle allocation errors better * json: improve unicode parsing * Tue Apr 26 2022 virtuousfoxAATTgmail.com- Update to version 0.3.50+90~git20220426.f641e4ecb: * jack: don\'t wait for activation update * jack: fix a potential deadlock * json: convert utf16 to utf8 * json: fix \\uXXXX parsing * pw-cat: support saving to other file formats * bluez5: clear codec switch flag on device connnection change * module-roc: update docs * bluez5: stop running codec switch on disconnect * module-loopback: fix spelling * roc: add fec_code option * module-roc: try to switch rates * protocol-pulse: add roc-sink-input * roc-source: make the source a stream by default * module-roc-source: don\'t set defaults * module: add debug while dlopen failed * Mon Apr 25 2022 virtuousfoxAATTgmail.com- Update to version 0.3.50+75~git20220424.1e46d114d: * modules: update docs * module: update docs * module-rt: fix formating and comment * module-rt: fix compilation * Replace sched_ calls with pthread_ to set realtime priorities * Update spa/plugins/bluez5/bluez-hardware.conf * jack: only call buffer_size callback after change * Sat Apr 23 2022 virtuousfoxAATTgmail.com- Update to version 0.3.50+68~git20220423.c9cf914d8: * filter: don\'t use invalid context * doc: add an older AGL Paper * doc: Add good bluetooth article * filter-chain: add a simple delay * filter-chain: fix config parse * pw-link: make port_id char array larger * pw-link: Support destroying all links between ports of two nodes * pw-link: Support creating links for all ports from a node to another * modules: update docs * modules: update docs * module: add docs * modules: add docs * modules: add more docs * modules: more docs * pulse-server: use config.ext for streams * conf: support config section extensions * context: make dict const * module-filter-chain: some more docs * module-filter-chain: add support for double params * module-filter-chain: add docs * move PIPEWIRE_PROPS to stream and filter * Fri Apr 22 2022 virtuousfoxAATTgmail.com- Update to version 0.3.50+47~git20220421.5a023c8c8: * alsa: fix argument type for Long * modules: update docs * module-loopback: add docs * Support creating links for all ports from a node to another * stream: add stream.rules and filter.rules * conf: fix typo * Thu Apr 21 2022 virtuousfoxAATTgmail.com- Update to version 0.3.50+41~git20220421.d1207422e: * make NODE_WANT_DRIVER=true the default * filter-chain: make sink-eq stereo to avoid confusion * filter-chain: increase max gain for biquads * modules: don\'t unload on stream errors * module: handle error and unconnected states * module-loopback: unload the module on stream unconnect * channelmix: use average for center and LFE * Wed Apr 20 2022 virtuousfoxAATTgmail.com- Update to version 0.3.50+34~git20220420.f6dbd75e6: * context: rework node states some more * connection: debug when we close fd * contect: also remove the original node passive state * context: make sure we clear the visited flag * resample: limit buffer input size to input maxsize * man: update pw-top man page * pw-cat: don\'t start drain on 0 request size * resample: use a -1 buffer size to drain * pw-top: improve error output * pw-top: handle invalid timings * test: getopt_long returns an int * man: improve pw-top man page * pw-top: clear errors when idle * pw-top: clear measurements when idle * pw-top: remove nodes from driver when idle * module-pulse-tunnel: clear ringbuffer on cork * context: rework state calculations * module-pulse-tunnel: move some info log to debug * module-pulse-tunnel: improve error recovery * pulse-tunnel: improve debug * context: don\'t move passive nodes to fallback driver * context: ignore inactive nodes some more * thread: implement some properties * jack: remove some pthread attributes * Cleanup argument names in methods and events interfaces: object/data, 2nd pass. * spa: utils: defs: parenthesize macro bodies * po: Update Swedish translation * treewide: retain sections to prevent linker garbage collection * Sat Apr 16 2022 virtuousfoxAATTgmail.com- Update to version 0.3.50+6~git20220415.22fc9eec3: * Cleanup argument names in methods and events interfaces * spa: fix c90 header include * context: add some comments * context: re-evaluate quantum/rate for moved nodes * Thu Apr 14 2022 virtuousfoxAATTgmail.com- Update to version 0.3.50+2~git20220413.339c22dce: * pw-cat: update man page * pw-cat: remove code to list targets * 0.3.50 * module-echo-cancel: put audio.position on properties * Wed Apr 13 2022 virtuousfoxAATTgmail.com- Update to version 0.3.49+53~git20220412.df6fb25e0: * apply force-s16 quirk also to teams-insiders * channelmix: tweak defaults a little. * channelmix: reuse more functions * channelmix: only filter FC and LFE when upmixed * module: handle type register errors * pulse-server: module: rework registry * Sat Apr 09 2022 virtuousfoxAATTgmail.com- Update to version 0.3.49+47~git20220408.6ad6300ec: * pw-reserver: add a -r option to RequestRelease * alsa: limit the buffer-size to quantum-limit * 4 * impl-node: improve node_set_active for exported nodes * Revert \"spa: set _GNU_SOURCE\" * spa: replace locale aware string functions with uselocale * Mon Apr 04 2022 virtuousfoxAATTgmail.com- Update to version 0.3.49+42~git20220404.54f6f9293: * channelmix: upmix disabled also disables FC and LFE generation * Mon Apr 04 2022 virtuousfoxAATTgmail.com- Update to version 0.3.49+41~git20220403.64a09a73d: * Update Croatian translation and pipewire.pot * jack: fix port sort * spa: set _GNU_SOURCE * man: add pw-link manpage * docs: fix pw_deinit() docs * jack: don\'t sort ports on alias * modules: add pid to unique name * Fri Apr 01 2022 virtuousfoxAATTgmail.com- Update to version 0.3.49+34~git20220401.2922b0e10: * channelmix: make PSD the default again * filter-chain: free descriptor * context: destroy data-loop in free * fix stream test * stream: report queued and dequeued buffers in pw_time * pw-cat: set buffer size field in frames * pw-cat: start timer when playing * global: use SPA_ID_INVALID to send serial id * meson: Add option to enable/disable legacy RTKit module * thread: deprecate pw_thread_utils_set() * Update Portuguese(pt) translation * pulse-tunnel: recover from xruns better * module-pulse-tunnel: use dll to keep latency under control * spa: mode dll to utils * stream: add support for double controls * fmtconvert: we support U16 format as well * spa: Improve PropInfo fields * modules: use NODE_WANT_DRIVER=true instead of NODE_GROUP * context: keep the driver passive when we can * Wed Mar 30 2022 virtuousfoxAATTgmail.com- Update to version 0.3.49+15~git20220329.5547f9a1b: * resample: take rate scale property into account as well * pulse-server: include buffered data in stream delay * stream: add pw_stream_get_time_n() * filter: deprecate pw_filter_get_time() * pw-cat: improve output * stream: request quantum when no rate_match * stream: don\'t ask for 0 size buffer * jack: make a custom thread-utils * jack: start/stop loop in activate/deactivate * data-loop: always acquire rt priority * data-loop: add method to set custom thread-utils * thread-loop: we must be running to be in the thread * data-loop: check running state in _in_thread() * remove the rate_match io * stream: add the requested number of samples in buffer * 0.3.49 * move some debug to fastpath * stream: clarify the queued field * stream: Only request more data when needed * stream: report the resampler delay as queued * audioconvert: add queued samples as delay * resample: keep max in bytes * Sun Mar 27 2022 virtuousfoxAATTgmail.com- Update to version 0.3.48+90~git20220326.cf1d4b914: * audioconvert: make simple upmix the default * jack: clear last error before sync * pipewire: improve pw_init/pw_deinit * stream: update pw_time docs a little. * Fix documentation link in README * module-echo-cancel: Use fraction as play delay * Wed Mar 23 2022 virtuousfoxAATTgmail.com- Update to version 0.3.48+84~git20220322.c66bb65c7: * pipewire: don\'t setlocale from pw_init, let parent app set it * pw-dot: add json input mode * module-echo-cancel: Correct naming in example and plugins * pipewire: don\'t set locale * spa: add locale independent spa_dtoa * spa: add locale independent spa_strtod/spa_strtod * spa: debug double like a float * audioconvert: remove useless parsing * json: add locale independent parse and format functions * json: empty string should not give a valid number * SPA_DATA_DIR is the source root when uninstalled * pulse-server: module: only cancel unload work if added * pulse-server: manager: clean hook list * pulse-server: sample-play: clean hook list * pulse-server: module-combine-sink: remove unnecessary conditional * pulse-server: module: initialize index * Fri Mar 18 2022 virtuousfoxAATTgmail.com- Update to version 0.3.48+68~git20220317.abe87f800: * audioconvert: use unaligned loads * audioconvert: fix sse2 deinterleave_32 * channelmix: add simple upmix method * tests: add some options * Update Polish translation * gitignore: remove config.h.meson * gitignore: remove build directories * gitignore: add dot files * Sat Mar 12 2022 virtuousfoxAATTgmail.com- Update to version 0.3.48+60~git20220311.25980f947: * spa: utils: hook: add comments and fix code in documentation * module-rt: small fixes * module-rt: allow building without RTKit * bluez5: handle any quantum in a2dp-sink * bluez5: make codec ABI mismatch messages warnings * bluez5: fix aptx-ll max_frames handling * bluez5: a2dp-sink: Fail flush on EAGAIN instead of delaying it * audioconvert: add SSE (de)interleave_32(s) versions * pulse-server: add sink/source_properties * pipewire: module-zeroconf-discover: handle when AvahiWatch is freed while dispatching * Wed Mar 09 2022 virtuousfoxAATTgmail.com- Update to version 0.3.48+50~git20220309.8dccfbce4: * doc: Clarify size properties wrt DMA-BUFs * audioconvert: don\'t fixate rate * loop: clean polling flag when leaving the loop * pulse-server: also handle fix_ for capture * Mon Mar 07 2022 virtuousfoxAATTgmail.com- Update to version 0.3.48+46~git20220306.b12f24efb: * spa: support: loop: don\'t initialize source->loop * spa: support: loop: assert source\'s loop when dispatching * test: loop: add helper functions to simplify eventfd use * spa: support: loop: assert loop is not polling when destroyed * spa: support: loop: assert loop is not polling when source is removed * spa: only remove embedded source from data loop from within the loop * spa: support: loop: fix use-after-free when loop is reentered * test: loop: add test which destroys managed source before reentering * test: rewrite test which destroys active source before dispatching * spa: support: loop: add `polling` flag * spa: support: loop: assert source type * spa: support: loop: add some invariant assertions * spa: support: loop: rename variables * spa: support: loop: do not return early in case of an error * spa: support: loop: print previous mask when updating * spa: support: loop: get array size using macro * spa: support: loop: reset rmask after dispatch * spa: support: loop: initialize rmask * spa: support: loop: move struct members * test: loop: do not use NULL as event handler * gst: use target.object instead of node.target, soft-deprecate ids * bluez5: a2dp-sink: stop flushing if source was removed * pwtest: fix daemon log scrambling * pwtest: shorter default timeout * CI: add functional test program deps * pwtest: ARG_DAEMON tests don\'t work on valgrind * test: add simple functional tests * pwtest: handle SIGTERM/SIGINT in runner * pwtest: use default debug level 4 for spawned daemons * pwtest/Makefile: set SPA_DATA_DIR * pwtest: add pwtest_spawn for running external programs * pwtest: ensure all spawned daemons are terminated * bluez5: backend-ofono: don\'t do codec probe connections + add wait * Update meson.build * Update man/pw-top.1.rst.in * alsa: improve latency update * alsa: set better ranges on properties * channelmix: improve disabled flag * filter-chain: use property hints * filter-chain: use dynamic builder for param update * stream: guard against NULL params * merger: also remove PropInfo * pw-cat: improve DSD file reading * dsffile: fix negative interleave * channelmix: enable upmixing by default, disable normalization * pulse-server: handle pulse.properties * 0.3.48 * filter-chain: remove stray debug * minimal.conf: add some more example config * handle open_memstream errors * module-raop: handle and debug read errors * module-raop: use the right socket to read from * filter-chain: remove limits on ports * protocol: increase some limits * stream: add support for PropsInfo * Tue Mar 01 2022 virtuousfoxAATTgmail.com- Update to version 0.3.47+71~git20220301.0db8d39dd: * spa: fix compilation with c++ * filter-chain: use offsets to deref pods * spa: use dyanmic builder for audioadapter * client-node: use dynamic pod builder * pod: use dynamic pod builder in some places * spa: add dynamic builder helper * channelmix: add option to filter FC * audioconvert: add optional hilbert transform to rear channels * channelmix: add option for stereo widen * channelmix: place L-R in rear channels * audioconvert: add delay to rear channels when upmixing * channelmix: improve corssover processing * filter-chain: do some checks on the number of ports * filter-chain: use MAX_CONTROLS for control ports * pulse-server: set also metadata target.object when moving streams * pw-top: Fix unicode character clipping * module-session-manager: set object.serial on session objects * module-metadata: set object.serial on new client metadata * Mon Feb 28 2022 virtuousfoxAATTgmail.com- Update to version 0.3.47+53~git20220227.09d005aa3: * impl-client: add workaround for old pipewire-media-session compatibility * global: update generation number also in clients without registry * Sun Feb 27 2022 virtuousfoxAATTgmail.com- Update to version 0.3.47+51~git20220226.a9accd166: * protocol-native: footer pre_demarshal must come first * channelmix: set mix log earlier * Fri Feb 25 2022 virtuousfoxAATTgmail.com- Update to version 0.3.47+49~git20220225.1cf869cea: * channelmix: fix lfe-cutoff parsing * pw-cli: fix print of pod debug * channelmix: recalc channelmix when param changed * channelmix: remove LFE when cutoff is <= 0.0 * bluez5: only consider A2DP profiles if HSP/HFP backed is none * channelmix: add stereo to 7.1 upmix * channelmix: don\'t pass channels around * pulse-server: get stream id in paused * channelmix: Fix copy and paste error * channelmix: use the right channelmap * channelmix: fix 5p1 -> 2 see channelmix * module-echo-cancel: fix leak on error * filter-chain: move node.name to the streams * pulse-server: fix device.description * filter-chain: improve error reporting * conf: return the error * context: set zero_denormals in data thread. * filter-chain: avoid denormals in biquad * context: don\'t touch denormals settings when left unset * pulse-server: fix IEC958 passthrough again * pulse-server: improve fix_ flags handling * audioadapter: improve fixation of the format * pulse-server: place the final sample rate as property * pulse-server: don\'t deref freed pending_sample * pulse-server: wait for pending_sample to complete * pulse-server: ref client while completing operations * pulse-server: unlink operation before callback * pulse-server: free pending sample reply * protocol-native: check invariant for marshaled data * impl-core/protocol-native: use generation counter for global registry * protocol-native: extend v3 protocol with message footers * pipewire-pulse: moving DONT_MOVE streams should fail * test: loop: add test for destroying source of thread loop * Revert \"loop: remove destroy list\" * modules: fix warning * Fix the comparison parens * pipewire: module-x11-bell: mark connection as terminatable * pipewire: module-x11-bell: handle X11 errors * pipewire: module-x11-bell: remove unnecessary member * pipewire: use newly added function for deferred module destroy * pipewire: impl-module: add method for deferred destroy * pipewire: remove work queue checks * pipewire: context: create work queue immediately * pipewire: module-x11-bell: simplify `x11_connect()` * pipewire: module-x11-bell: remove a function * pipewire: module-x11-bell: check source creation * pipewire: module-x11-bell: make X11 errors fatal * pipewire: module-x11-bell: only use the thread loop to play the sample * pipewire: module-x11-bell: only remove hook if registered * 0.3.47 * proxy: break after the first leaked listener * proxy: don\'t emit warnings for leaked listeners * pulse-server: do a roundtrip before replying to PLAY_SAMPLE * pulse-server: add operation with custom callback * fix compilation * spa: fix initializer for old GCC * pulse-server: relax some warnings * 0.3.46 * alsa: don\'t read more than available samples * alsa: resync when quantum changes * alsa: remove useless code * alsa: use rewind to remove excess delay * gitlab-ci: rebuild fedora & coverity images to update coverity * spa: improve the AEC interface * module-echo-cancel: Move backends to dynamic libaries * alsa: improve resync * alsa: protect against impossible timeouts * alsa: make sure we always trigger a timeout * alsa: don\'t use dll when not rate matching * pipewire: conf: initialize return value * pulse-server/combine-sink: mark loaded after streams appear * pulse-server: sync manager before module unload completion * pulse-server: sync client manager before returning from LOAD_MODULE * po: Update Swedish translation * spa/alsa-udev: ignore all errors in card busy check * raop-sink: use default latency of 2 seconds * pulse-server: make some modules load-once * conf: fix fork/execvp/waitpid usage * pulse-server: load module-always-sink on startup * pulse-server: add module-always-sink * pulse-server: fix some error checks in modules * module-fallback-sink: add dynamically appearing fallback sink * pulse-server: convert node id to index in sample reply * alsa: fill with silence when underrun * alsa: tweak capture follower * profiler: add force rate and quantum to latency * jack: only set force-latency property * spa: bluez: remove unused function * alsa: try to resume after suspend before recovering * jack: release lock when doing do_sync from data thread * alsa: pass current_time around in get_status() * Update texas-instruments-pcm2902.conf, add info about Behringer U-Phoria UM2 * proxy: emit a warning when listener was not removed * tools: remove listeners * client-node: remove MAX_MIX limit * filter: remove unused define for MAX_PORTS * filter: remove port limit * jack: remove some listeners * jack: remove some more limits * pipewire-jack: there is no port max anymore * map: scale extend with the item size as well * client-node: remove limit on ports * client-node: improve port handling * remove some listeners * proxy: don\'t remove the hooks, but report them leaking * client-node: remove preallocated mix entries * client-node: don\'t remove mix twice * test: don\'t leak the two objects * jack: use node.lock-quantum by default * alsa: try to resync on commit error * support: also protect against recursive invocations * context: when force-quantum, remove lock-quantum * support: loop_enter/leave hardening * test: call pw_deinit() at end of test * test: fix dll unload * support: close log file when we opened it * test: add test for the loop * loop: remove destroy list * loop: handle remove while dispatching better * tools: cleanup up printf * spa: move debug log defines to one place * pulse-server: Make node.description * modules: fix ladpsa source properties * module: fix argument parsing * pulse-server: rename `facility` argument to `type` * pulse-server: validate subscription mask * pulse-server: client: drop unused argument * Fix style for some Romanian strings * Add Romanian translation * pulse-server: fix compilation... * pulse-server: improve module id in instrospect * jack: add an option to display default device as system: * pulse-server: also remap module property keys and values * pulse-server: make sure we don\'t exceed maxlength * conf: move rule matching to config * treewide: meson.build: use feature.allowed() * treewide: only define feature macros when the feature is available * meson.build: remove unused config macro * meson.build: only set HAVE_DBUS once * meson.build: remove unused feature macros * spa/alsa-udev: fix /proc/asound handling without CONFIG_SND_VERBOSE_PROCFS * doc: update with config overrides info * pw-link: improve help and error messages * pw-link: clarify -L option * pw-link: fix -L comment * alsa: use MONOTONIC clock for tstamp * alsa: update test-timer * pipewiresink: set a default channel map if the number of channels is fixed * 0.3.45 * jack: exit do_sync when in error * examples: filter can return NULL buffers * filter-chain: add FL to FL-FR duplication * link-factory: allow usage without a client * resource: allow NULL resource in error * resource: fix log topic * log: add pw_logtv macro * spa/alsa-udev: retry busy devices on inotify close event, not timeout * pulse-server: don\'t make fake channels for iec958 * pulse-server: don\'t update channels when unset * pulse-server: check reference count of sample when freeing it * pulse-server: properly unload modules * pulse-server: clean up everything when the context is destroyed * pulse-server: do not manage client lifetime during stream cleanup * pulse-server: stream: remove `done` flag * pulse-server: client: remove `disconnecting` flag * pulse-server: module: remove unused `client` argument * pulse-server: pending-sample: move reference counting * pulse-server: pending-sample: remove `done` flag * pulse-server: remove unnecessary include * pulse-server: simplify a condition * pulse-server: client: cancel related work queue jobs * pulse-server: client: move to cleanup list on detach * pulse-server: client: do not leave dangling pointers behind * conf: look in conf.d directories and merge all sections * conf: improve debug * conf: Parse the whole config with properties * test: disable broken test * conf: emit callback for config sections * context: implement prop updates with for_each * conf: implement match rules with conf_section_for_each * context: move context method to right header file. * conf: parse the context sections with iterator * conf: add some properties in the conf * conf: refactor path generation * conf: refactor abs path * context: add a function to merge config properties * jack: pass size_t as len * bluez5: sco-sink: fix behavior as follower * bluez5: keepalive A2DP source / SCO AG dynamic node transports * context: add force-quantum and force-rate property * global: move serial counter to context * jack: handle metadata remove * pulse-server: improve remap sink/source properties * pulse-server: improve remap sink/source properties * bluez5: backend-native: set transport volume on create * bluez5: backend-native: fallback switch msbc->cvsd on EOPNOTSUPP * bluez5: probe adapter msbc capability via hci commands * bluez: handle non-hexadecimal XAPL version strings * pulse-server: add more properties * pulse-server: fill description for remap module * ci: add Alpine target to test Musl builds * meson: reverse intl check * pulse-server: implement stream_buffer_attr * pulse-server: increase maxlength to match tlength * pulse-server: allows allocate MAXLENGTH for the ringbuffer * pulse-server: ensure tlength <= maxlength * modules: limit the max amount of items in the protocol * spa: clamp required alignment to cpu alignment * modules: refactor permissions parsing * modules: refactor param_info_parsing * modules: refactory param parsing * modules: refactor parse_dict * spa/bluez: enable sbc-xq for JBL Endurance Run BT headset * ci: test with all auto() features enabled * modules: add latency and rate params to protocol-simple * modules: improve simple-protocol arguments * mem: add debug for new fd * loop: remove the eventfd to stop the loop * tools: fix compilation with musl * pw-cli: add support for sending commands to a node * spa: fix the event and command type info * alsa: sync TI2902 conf with pulseaudio * meson: enable some more warnings * 0.3.44 * ci: bump to use Fedora 35 * ci: bump to the latest ci-templates * jack: use serial for uuid * pw-cli: add pattern matching lookups * pw-dump: add pattern matching * pw-cli: improve object lookup * Enable pipewire-jack on FreeBSD CI * Fix build on recent FreeBSD 13-STABLE * Fix build on FreeBSD by defining bswap_64. * context: move linked nodes when assigning a driver * jack: uuid is based on id, not serial * spa/meson.build: add atomic_dep dependency * README: improve env variables * modules: compile rtkit module instead of using a symlink * pulse-server: always advance the read pointer in underrun * pulse-server: don\'t complete drain when corked * Revert \"pulse-server: don\'t ask data when corked\" * pulse-server: don\'t ask data when corked * fix pipewire-pulse typo and indentation * alsa: ensure period_size is not 0 * client-node: handle mix init errors better * impl-link: handle mixer failures better * spa/v4l2: better device product names on current kernels * alsa-udev: postpone emitting if pcm devices are busy, retry later * Add PIPEWIRE_QUANTUM env variable * port: add some more warnings when unregister fails * jack: add some debug to port_register() * jack: uuid of ports is based on the id, not serial * jack: fix member name in fastpath logs * bluez5: allow setting initial profile to off * jack: rework port allocation * pulse-server: allow per-application latency quirks * pulse-server: move quirks to config section * module-echo-cancel: Configure buffersize and play delay * pulse-server: set the node.name on the input/output * modules: improve node.name * pulse-server: implement module-x11-bell * modules: handle x11 sample fallback better * meson: improve SDL2 summary * modules: add x11-bell module * module-rt: Handle realtime sched check edge cases * module-rt: Don\'t explicitly check RLIMIT_RTPRIO * alsa: first start monitor then enumerate devices * pulse-server: iterate addresses correctly * bluez5: deal with adapters appearing after devices * doc: include manpages in html docs * roc: NODE_PASSIVE can only be on the streams * audioconvert: block volume updates when disabled * bluez5: don\'t crash in battery_remove * bluez5: maintain transport->device_list properly * bluez5: require adapter before profile connect & after * spa: allow spa_dict.items to be NULL for zero items * adapter: add adapter.auto-port-config property * spa: make common function to find type from short name * audioconvert: add option to disable channelmix * alsa: remove TI 2902 rule, it seems to break things * jack: add dummy jacknet implementation * jack: fix jacknet meson variable * pulse-server: use TARGET_OBJECT with the target serial * pulse-server: set serial to invalid on parse error * settings: add an option to check quantum/rate in settings * spa: audioconvert: fix allocation size calculation * node: add NODE_SUSPEND_ON_IDLE option * make key for node.transport.sync * loop: invoke immediately when loop is not running * resample: implement resample disable * audioconvert: expose resampler properties * pw-v4l2: clamp buffers to max * module-rt: only change nice level on our servers * daemon: add an example minimal conf file * module-metadata: allow create without client * impl-metadata: add some more properties to global * pw-metadata: handle NULL props from metadata object * adapter: add node.param. * property support * alsa: make internal latency configurable with params * adapter: add adapter.port-config option * pw-cli: move json to pod code to SPA * bluez5: don\'t create device if adapter is missing * pipewire: module-protocol-native: avoid file descriptor leaks * merger: also reconfigure when monitor changes * module-rt: Default RLIMIT_RTTIME to -1/unlimited * module-pw: Log when RTKit limits RLIMIT_RTTIME * module-rt: Fix extra whitespace in module usage * alsa: improve rate selection * pw-cat: print \"monitor\" when recording from a sink * pulse-server: use object serial as index * jack: use serial for port_id * add some more properties to globals * Revert \"global: don\'t reuse ids\" * Revert \"pw-cli: use a list for globals instead of a map\" * Revert \"global: limit the id to 24 bits\" * Revert \"global: avoid using existing global id\" * Revert \"context: improve retry logic\" * Revert \"global: handle id allocation errors\" * Revert \"context: implement faster id collision check\" * Revert \"impl-client: improve permission storage\" * Revert \"context: hash the globals by id\" * pulse-server: make separate index * pulse-server: index flags are only used for modules * pulse-server: remove the MONITOR flag * pulse-server: find_object -> find_object_by_id * pulse-server: use key instead of id for the data key * pulse-server: rename obj_id -> id * pulse-server: rename some id -> index * treewide: meson.build: simplify `get_variable()` calls * spa: tests: meson.build: specify `check` argument for `run_command()` * spa: tests: meson.build: specify `configuration` inline * meson.build: remove version check around devenv * module-rt: Log when RTKit lowers priorities * module-rt: Use magic value for user config prio * modules: Provide an alias for module-rtkit * module-rt: Don\'t override acquire_rt priority * module-rt: Make logging more consistent * modules: Rename module-rtkit to module-rt * modules: Drop module-rt * module-rtkit: Merge module-rt into module-rtkit * pulse-server: use quantum_limit * context: hash the globals by id * pulse-server: remove unused field * jack: add PIPEWIRE_RATE env variable * impl-client: improve permission storage * context: implement faster id collision check * global: handle id allocation errors * impl-link: don\'t change permissions when no global * pulser-server: use max_client settings instead of constant * pulse-server: improve message queue pruning * Document the unit on spa_meta_header::pts * pulse-server: index mask is now 24 bits * context: improve retry logic * global: avoid using existing global id * pulse-server: use the upper 8 bits of the id to mark things * jack: update for no id reuse * global: limit the id to 24 bits * pw-cli: use a list for globals instead of a map * global: don\'t reuse ids * pipewire: module-protocol-simple: fix `inet_ntop()` call * pipewire: module-protocol-simple: reduce name length * filter: return NULL when no DSP buffer is available * allow scaling the quantum_limit to 65536 * settings: set the max-quantum to 2048 * alsa: remove unused properties and hardcoded values * Use configured quantum_limit instead of hardcoded value * context: pass quantum_limit when loading plugins * context: scale max_quantum and add quantum_limit * jack: don\'t limit max buffer size * audioconvert: allocate empty space dynamically * alsa: relax the max latency requiremen * splitter: small cleanups * resample: remove empty buffer * audiomixer: remove the empty buffer * raop: fix errno check * bluez5: handle missing device and adapter in quirks * audioconvert: ignore latency param on monitor ports * channelmix: dont make FC from synthesized FC * alsa: limit batch period size to default * channelmix: also keep FC channel * channelmix: do LFE upmix when lfe_cutoff is set * channelmix: enable normalization by default * pulse-server: calculate missing bytes differently * audioconvert: add f64 support * audioconvert: add f64 conversion * bluez5: implement basic CIND/CIEV support in backend-native * resample: limit input and output offsets * Remove separate profile set for Behringer UMC22 that is covered by Texas Instruments PCM2902 profile set * bluez5: bump device profile timeout * bluez5: mark connected when all source/sink profiles connected * alsa/acp: make pa_ato * functions behave as PA ones * jack: remember last return from jack_get_buffer_size * pulse-server: implement control arg for module-ladspa * filter-chain: also allow control params with index * impl-node: set signal and awake time * spa-resample: don\'t add simd_cargs, they are not needed * spa-resample: add option to set CPU flags * pulse-server: request more data when seeking backwards * pulse-server: after uncork, ask for missing data * pulse-server: show monitor sources with device.class=monitor * bluez5: use save flag in profile * Add custom variable to jack pkgconfig to distinguish implementations * meson.build: bump Meson minimum version to 0.59.0 * conf: fix compiler warning about different signedness * systemd: Add systemd-system-unit-dir override * audioconvert: avoid infinite loop * conf: eliminate an unnecessary narrowing conversion * NEWS: fix year * 0.3.43 * bluez5: retry codec switch with timeout on BlueZ failure * bluez5: rate limit BlueZ SetConfiguration calls * pulse-server: support server config * json: add spa_json_parse_stringn() * json: spa_json_get_string() writes up to len chars or fail * json: check spa_json_get_string() return value correctly * pulse-server: remove unused defines * acp: sync with pulseaudio * pw-cat: also list additional targets in record mode * bluez5: adjust codec profile priority ordering * bluez5: prefer aptx-ll over faststream * bluez5: bump up HFP codec switch timeouts * alsa: handle extra propinfo in all cases * alsa: add audio.allowed-rates param * module-loopback: align stream media names to filter-chain * filter-chain: use node.name in media.name instead of id * module-loopback: make unique media name per stream * buffers: make alignment optional * support: use defines for alignment * bluez5: free player path * alsa: add TI PCM2902 mapping * spa: allocate ports dynamically * context: calculate target rate only when needed * systemd: correctly prefix systemd system units * pulse-server: make GET_SERVER_INFO accessible without manager * pulse-server: add command access control * pulse-server: store whether the client has been authenticated * pulse-server: use macro to generate command entries * bluez5: Set profile priority in SPA attributes * Revert \"pulse-server: use partial data as missing/played for\" * filter-chain: improve lv2 support * pulse-server: module-roc-{sink,source}: fix potential memory leaks * pulse-server: module-zeroconf-publish: harmonize log messages * pulse-server: module-zeroconf-publish: handle allocation failure * pulse-server: module-zeroconf-publish: remove empty line * pulse-server: module-zeroconf-publish: cache service TXT records * pulse-server: module-zeroconf-publish: handle disconnection * pulse-server: manager: add mechanism to query object data * pulse-server: module-zeroconf-publish: do not allocate service name dynamically * pulse-server: module-zeroconf-publish: use fixed object data id * pulse-server: module-zeroconf-publish: avoid double-free * pulse-server: module-zeroconf-publish: remove unnecessary member * pulse-server: module-zeroconf-publish: remove unnecessary NULL check * pulse-server: module-zeroconf-publish: rename functions * pulse-server: module-zeroconf-publish: do not query twice * pulse-server: module-null-sink: do not use client\'s core * pulse-server: module: do not schedule unloading multiple times * pulse-server: module: use SPA_FOR_EACH_ELEMENT() * pulse-server: always compile ROC modules * spa: meson.build: export data directory on dependency * treewide: meson.build: get PIPEWIRE_{CONFIG,MODULE}_DIR from dependency * treewide: meson.build: get SPA_PLUGIN_DIR from dependency * treewide: meson.build: use project_{build,source}_root() * daemon: meson.build: use get_variable() * meson.build: use project_{build,source}_root() in devenv * meson.build: require meson 0.56.0 * meson.build: remove unnecessary import * man: meson.build: remove unnecessary variables * spa: meson.build: only look for libcamera under one name * treewide: meson.build: use dependency variable for SPA * pulse-server: improve reference counting of samples * pulse-server: handle if the module is destroyed while loading * pulse-server: rework module loading * pulse-server: stream: only remove from list if pending * pulse-server: client: add \'disconnect\' event * pulse-server: client: do not drop partially sent messages * pulse-server: client: restructure message handling * pulse-server: client: do not queue messages after disconnect * pulse-server: server: use `spa_strstartswith()` * pulse-server: move parts of stream creation * pulse-server: move parts of client creation * pulse-server: remove unnecessary `NULL` checks * Enable v4l2 and raop Meson options on the FreeBSD CI. * Add Meson logic to properly locate OpenSSL on FreeBSD. * Use real sched_getcpu() implementation on FreeBSD 14. * module-raop-sink.c: Fix compilation error on FreeBSD. * meson: use c++17 as default to compile libcamera * jack: avoid metadata updates to monitor nodes * Mon Feb 21 2022 virtuousfoxAATTgmail.com- Update to version 0.3.47+26~git20220221.d6a2b21fb: * pulse-server: don\'t deref freed pending_sample * pulse-server: wait for pending_sample to complete * pulse-server: ref client while completing operations * pulse-server: unlink operation before callback * pulse-server: free pending sample reply * protocol-native: check invariant for marshaled data * impl-core/protocol-native: use generation counter for global registry * protocol-native: extend v3 protocol with message footers * pipewire-pulse: moving DONT_MOVE streams should fail * Fri Feb 18 2022 virtuousfoxAATTgmail.com- Update to version 0.3.47+17~git20220218.d1f7e96f8: * test: loop: add test for destroying source of thread loop * Revert \"loop: remove destroy list\" * modules: fix warning * Fix the comparison parens * pipewire: module-x11-bell: mark connection as terminatable * pipewire: module-x11-bell: handle X11 errors * pipewire: module-x11-bell: remove unnecessary member * pipewire: use newly added function for deferred module destroy * pipewire: impl-module: add method for deferred destroy * pipewire: remove work queue checks * pipewire: context: create work queue immediately * pipewire: module-x11-bell: simplify `x11_connect()` * pipewire: module-x11-bell: remove a function * pipewire: module-x11-bell: check source creation * pipewire: module-x11-bell: make X11 errors fatal * pipewire: module-x11-bell: only use the thread loop to play the sample * pipewire: module-x11-bell: only remove hook if registered * 0.3.47 * proxy: break after the first leaked listener * proxy: don\'t emit warnings for leaked listeners * pulse-server: do a roundtrip before replying to PLAY_SAMPLE * pulse-server: add operation with custom callback * fix compilation * spa: fix initializer for old GCC * pulse-server: relax some warnings * 0.3.46 * alsa: don\'t read more than available samples * alsa: resync when quantum changes * alsa: remove useless code * alsa: use rewind to remove excess delay * gitlab-ci: rebuild fedora & coverity images to update coverity * spa: improve the AEC interface * Wed Feb 16 2022 virtuousfoxAATTgmail.com- Update to version 0.3.45+84~git20220215.9386c70b3: * module-echo-cancel: Move backends to dynamic libaries * alsa: improve resync * alsa: protect against impossible timeouts * alsa: make sure we always trigger a timeout * alsa: don\'t use dll when not rate matching * pipewire: conf: initialize return value * Tue Feb 15 2022 virtuousfoxAATTgmail.com- Update to version 0.3.45+78~git20220215.2e3c749a0: * pulse-server/combine-sink: mark loaded after streams appear * pulse-server: sync manager before module unload completion * pulse-server: sync client manager before returning from LOAD_MODULE * po: Update Swedish translation * spa/alsa-udev: ignore all errors in card busy check * raop-sink: use default latency of 2 seconds * pulse-server: make some modules load-once * conf: fix fork/execvp/waitpid usage * pulse-server: load module-always-sink on startup * pulse-server: add module-always-sink * pulse-server: fix some error checks in modules * module-fallback-sink: add dynamically appearing fallback sink * pulse-server: convert node id to index in sample reply * alsa: fill with silence when underrun * Fri Feb 11 2022 virtuousfoxAATTgmail.com- Update to version 0.3.45+64~git20220211.9855e2b30: * alsa: tweak capture follower * profiler: add force rate and quantum to latency * jack: only set force-latency property * spa: bluez: remove unused function * alsa: try to resume after suspend before recovering * jack: release lock when doing do_sync from data thread * alsa: pass current_time around in get_status() * Update texas-instruments-pcm2902.conf, add info about Behringer U-Phoria UM2 * Wed Feb 09 2022 virtuousfoxAATTgmail.com- Update to version 0.3.45+56~git20220209.613c0a255: * proxy: emit a warning when listener was not removed * tools: remove listeners * client-node: remove MAX_MIX limit * filter: remove unused define for MAX_PORTS * filter: remove port limit * jack: remove some listeners * jack: remove some more limits * pipewire-jack: there is no port max anymore * map: scale extend with the item size as well * client-node: remove limit on ports * client-node: improve port handling * remove some listeners * proxy: don\'t remove the hooks, but report them leaking * client-node: remove preallocated mix entries * client-node: don\'t remove mix twice * test: don\'t leak the two objects * jack: use node.lock-quantum by default * alsa: try to resync on commit error * support: also protect against recursive invocations * context: when force-quantum, remove lock-quantum * support: loop_enter/leave hardening * test: call pw_deinit() at end of test * test: fix dll unload * support: close log file when we opened it * Tue Feb 08 2022 virtuousfoxAATTgmail.com- Update to version 0.3.45+32~git20220208.5ac5ebfe1: * test: add test for the loop * loop: remove destroy list * loop: handle remove while dispatching better * tools: cleanup up printf * spa: move debug log defines to one place * pulse-server: Make node.description * modules: fix ladpsa source properties * module: fix argument parsing * pulse-server: rename `facility` argument to `type` * pulse-server: validate subscription mask * pulse-server: client: drop unused argument * Fix style for some Romanian strings * Add Romanian translation * Sat Feb 05 2022 virtuousfoxAATTgmail.com- Update to version 0.3.45+19~git20220204.31159f418: * pulse-server: fix compilation... * pulse-server: improve module id in instrospect * jack: add an option to display default device as system: * pulse-server: also remap module property keys and values * pulse-server: make sure we don\'t exceed maxlength * conf: move rule matching to config * treewide: meson.build: use feature.allowed() * treewide: only define feature macros when the feature is available * meson.build: remove unused config macro * meson.build: only set HAVE_DBUS once * meson.build: remove unused feature macros * spa/alsa-udev: fix /proc/asound handling without CONFIG_SND_VERBOSE_PROCFS * Thu Feb 03 2022 virtuousfoxAATTgmail.com- Update to version 0.3.45+7~git20220203.ae077a496: * doc: update with config overrides info * pw-link: improve help and error messages * pw-link: clarify -L option * pw-link: fix -L comment * alsa: use MONOTONIC clock for tstamp * alsa: update test-timer * pipewiresink: set a default channel map if the number of channels is fixed * 0.3.45 * jack: exit do_sync when in error * examples: filter can return NULL buffers * filter-chain: add FL to FL-FR duplication * link-factory: allow usage without a client * resource: allow NULL resource in error * resource: fix log topic * log: add pw_logtv macro * spa/alsa-udev: retry busy devices on inotify close event, not timeout * pulse-server: don\'t make fake channels for iec958 * pulse-server: don\'t update channels when unset * pulse-server: check reference count of sample when freeing it * pulse-server: properly unload modules * pulse-server: clean up everything when the context is destroyed * pulse-server: do not manage client lifetime during stream cleanup * pulse-server: stream: remove `done` flag * pulse-server: client: remove `disconnecting` flag * pulse-server: module: remove unused `client` argument * pulse-server: pending-sample: move reference counting * pulse-server: pending-sample: remove `done` flag * pulse-server: remove unnecessary include * pulse-server: simplify a condition * pulse-server: client: cancel related work queue jobs * pulse-server: client: move to cleanup list on detach * pulse-server: client: do not leave dangling pointers behind * conf: look in conf.d directories and merge all sections * conf: improve debug * conf: Parse the whole config with properties * test: disable broken test * conf: emit callback for config sections * context: implement prop updates with for_each * conf: implement match rules with conf_section_for_each * context: move context method to right header file. * conf: parse the context sections with iterator * conf: add some properties in the conf * conf: refactor path generation * conf: refactor abs path * context: add a function to merge config properties * jack: pass size_t as len * Tue Feb 01 2022 virtuousfoxAATTgmail.com- Update to version 0.3.44+36~git20220131.f32935ec8: * bluez5: sco-sink: fix behavior as follower * bluez5: keepalive A2DP source / SCO AG dynamic node transports * Mon Jan 31 2022 virtuousfoxAATTgmail.com- Update to version 0.3.44+34~git20220131.24c97b1c7: * context: add force-quantum and force-rate property * global: move serial counter to context * jack: handle metadata remove * pulse-server: improve remap sink/source properties * pulse-server: improve remap sink/source properties * Sun Jan 30 2022 virtuousfoxAATTgmail.com- Update to version 0.3.44+29~git20220130.a2a5012cb: * bluez5: backend-native: set transport volume on create * bluez5: backend-native: fallback switch msbc->cvsd on EOPNOTSUPP * bluez5: probe adapter msbc capability via hci commands * bluez: handle non-hexadecimal XAPL version strings * pulse-server: add more properties * pulse-server: fill description for remap module * ci: add Alpine target to test Musl builds * meson: reverse intl check * Sat Jan 29 2022 virtuousfoxAATTgmail.com- Update to version 0.3.44+21~git20220128.6543899fe: * pulse-server: implement stream_buffer_attr * pulse-server: increase maxlength to match tlength * pulse-server: allows allocate MAXLENGTH for the ringbuffer * pulse-server: ensure tlength <= maxlength * modules: limit the max amount of items in the protocol * Fri Jan 28 2022 virtuousfoxAATTgmail.com- Update to version 0.3.44+16~git20220128.92198e4d0: * spa: clamp required alignment to cpu alignment * modules: refactor permissions parsing * modules: refactor param_info_parsing * modules: refactory param parsing * modules: refactor parse_dict * spa/bluez: enable sbc-xq for JBL Endurance Run BT headset * ci: test with all auto() features enabled * Fri Jan 28 2022 virtuousfoxAATTgmail.com- Update to version 0.3.44+9~git20220127.fd1112c4e: * modules: add latency and rate params to protocol-simple * modules: improve simple-protocol arguments * mem: add debug for new fd * loop: remove the eventfd to stop the loop * tools: fix compilation with musl * pw-cli: add support for sending commands to a node * spa: fix the event and command type info * alsa: sync TI2902 conf with pulseaudio * meson: enable some more warnings * 0.3.44 * ci: bump to use Fedora 35 * ci: bump to the latest ci-templates * Wed Jan 26 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+182~git20220126.f0cc49766: * jack: use serial for uuid * pw-cli: add pattern matching lookups * pw-dump: add pattern matching * pw-cli: improve object lookup * Enable pipewire-jack on FreeBSD CI * Fix build on recent FreeBSD 13-STABLE * Fix build on FreeBSD by defining bswap_64. * Wed Jan 26 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+175~git20220126.0538034ed: * context: move linked nodes when assigning a driver * jack: uuid is based on id, not serial * spa/meson.build: add atomic_dep dependency * Wed Jan 26 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+172~git20220125.aec7cb615: * README: improve env variables * modules: compile rtkit module instead of using a symlink * pulse-server: always advance the read pointer in underrun * pulse-server: don\'t complete drain when corked * Revert \"pulse-server: don\'t ask data when corked\" * pulse-server: don\'t ask data when corked * fix pipewire-pulse typo and indentation * Tue Jan 25 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+165~git20220124.8d37451fb: * alsa: ensure period_size is not 0 * client-node: handle mix init errors better * impl-link: handle mixer failures better * spa/v4l2: better device product names on current kernels * Sun Jan 23 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+161~git20220123.e1bc1c456: * alsa-udev: postpone emitting if pcm devices are busy, retry later * Sun Jan 23 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+160~git20220123.0bc3d1444: * Add PIPEWIRE_QUANTUM env variable * port: add some more warnings when unregister fails * jack: add some debug to port_register() * jack: uuid of ports is based on the id, not serial * jack: fix member name in fastpath logs * Sun Jan 23 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+155~git20220122.0a55085b1: * bluez5: allow setting initial profile to off * jack: rework port allocation * pulse-server: allow per-application latency quirks * pulse-server: move quirks to config section * Sat Jan 22 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+151~git20220121.2e1a08edc: * module-echo-cancel: Configure buffersize and play delay * pulse-server: set the node.name on the input/output * modules: improve node.name * pulse-server: implement module-x11-bell * modules: handle x11 sample fallback better * meson: improve SDL2 summary * modules: add x11-bell module * module-rt: Handle realtime sched check edge cases * module-rt: Don\'t explicitly check RLIMIT_RTPRIO * alsa: first start monitor then enumerate devices * pulse-server: iterate addresses correctly * Fri Jan 21 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+140~git20220121.ee257b148: * bluez5: deal with adapters appearing after devices * doc: include manpages in html docs * roc: NODE_PASSIVE can only be on the streams * audioconvert: block volume updates when disabled * bluez5: don\'t crash in battery_remove * bluez5: maintain transport->device_list properly * bluez5: require adapter before profile connect & after * spa: allow spa_dict.items to be NULL for zero items * adapter: add adapter.auto-port-config property * spa: make common function to find type from short name * audioconvert: add option to disable channelmix * Thu Jan 20 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+129~git20220119.cb077975b: * alsa: remove TI 2902 rule, it seems to break things * jack: add dummy jacknet implementation * jack: fix jacknet meson variable * Wed Jan 19 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+126~git20220119.9935f921c: * pulse-server: use TARGET_OBJECT with the target serial * pulse-server: set serial to invalid on parse error * settings: add an option to check quantum/rate in settings * Wed Jan 19 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+123~git20220119.d2114c3f2: * spa: audioconvert: fix allocation size calculation * Tue Jan 18 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+122~git20220118.6515553b7: * node: add NODE_SUSPEND_ON_IDLE option * make key for node.transport.sync * loop: invoke immediately when loop is not running * resample: implement resample disable * audioconvert: expose resampler properties * pw-v4l2: clamp buffers to max * module-rt: only change nice level on our servers * daemon: add an example minimal conf file * module-metadata: allow create without client * impl-metadata: add some more properties to global * pw-metadata: handle NULL props from metadata object * adapter: add node.param. * property support * alsa: make internal latency configurable with params * adapter: add adapter.port-config option * pw-cli: move json to pod code to SPA * Mon Jan 17 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+107~git20220117.67dcc0d29: * bluez5: don\'t create device if adapter is missing * pipewire: module-protocol-native: avoid file descriptor leaks * merger: also reconfigure when monitor changes * module-rt: Default RLIMIT_RTTIME to -1/unlimited * module-pw: Log when RTKit limits RLIMIT_RTTIME * module-rt: Fix extra whitespace in module usage * alsa: improve rate selection * pw-cat: print \"monitor\" when recording from a sink * Mon Jan 17 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+99~git20220117.1d03923a9: * pulse-server: use object serial as index * jack: use serial for port_id * add some more properties to globals * Revert \"global: don\'t reuse ids\" * Revert \"pw-cli: use a list for globals instead of a map\" * Revert \"global: limit the id to 24 bits\" * Revert \"global: avoid using existing global id\" * Revert \"context: improve retry logic\" * Revert \"global: handle id allocation errors\" * Revert \"context: implement faster id collision check\" * Revert \"impl-client: improve permission storage\" * Revert \"context: hash the globals by id\" * Mon Jan 17 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+87~git20220117.0904a35ba: * pulse-server: make separate index * pulse-server: index flags are only used for modules * pulse-server: remove the MONITOR flag * pulse-server: find_object -> find_object_by_id * pulse-server: use key instead of id for the data key * pulse-server: rename obj_id -> id * pulse-server: rename some id -> index * treewide: meson.build: simplify `get_variable()` calls * spa: tests: meson.build: specify `check` argument for `run_command()` * spa: tests: meson.build: specify `configuration` inline * meson.build: remove version check around devenv * Mon Jan 17 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+76~git20220116.a36f902e1: * module-rt: Log when RTKit lowers priorities * module-rt: Use magic value for user config prio * modules: Provide an alias for module-rtkit * module-rt: Don\'t override acquire_rt priority * module-rt: Make logging more consistent * modules: Rename module-rtkit to module-rt * modules: Drop module-rt * module-rtkit: Merge module-rt into module-rtkit * Sat Jan 15 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+68~git20220114.7c6649b5e: * pulse-server: use quantum_limit * context: hash the globals by id * Fri Jan 14 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+66~git20220114.6394537db: * pulse-server: remove unused field * jack: add PIPEWIRE_RATE env variable * impl-client: improve permission storage * Fri Jan 14 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+63~git20220114.8ca037683: * context: implement faster id collision check * global: handle id allocation errors * Thu Jan 13 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+61~git20220113.892f27ded: * impl-link: don\'t change permissions when no global * Thu Jan 13 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+60~git20220113.661ff9574: * pulser-server: use max_client settings instead of constant * pulse-server: improve message queue pruning * Thu Jan 13 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+58~git20220113.8f9bd42d9: * Document the unit on spa_meta_header::pts * pulse-server: index mask is now 24 bits * context: improve retry logic * global: avoid using existing global id * pulse-server: use the upper 8 bits of the id to mark things * jack: update for no id reuse * global: limit the id to 24 bits * pw-cli: use a list for globals instead of a map * global: don\'t reuse ids * pipewire: module-protocol-simple: fix `inet_ntop()` call * pipewire: module-protocol-simple: reduce name length * Wed Jan 12 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+47~git20220112.844eee678: * filter: return NULL when no DSP buffer is available * allow scaling the quantum_limit to 65536 * settings: set the max-quantum to 2048 * alsa: remove unused properties and hardcoded values * Use configured quantum_limit instead of hardcoded value * context: pass quantum_limit when loading plugins * context: scale max_quantum and add quantum_limit * jack: don\'t limit max buffer size * audioconvert: allocate empty space dynamically * alsa: relax the max latency requiremen * splitter: small cleanups * resample: remove empty buffer * Wed Jan 12 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+35~git20220112.8844c15d4: * audiomixer: remove the empty buffer * raop: fix errno check * Tue Jan 11 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+33~git20220111.140c8d0cd: * bluez5: handle missing device and adapter in quirks * Tue Jan 11 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+32~git20220111.3666c4810: * audioconvert: ignore latency param on monitor ports * channelmix: dont make FC from synthesized FC * alsa: limit batch period size to default * channelmix: also keep FC channel * channelmix: do LFE upmix when lfe_cutoff is set * channelmix: enable normalization by default * Mon Jan 10 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+26~git20220110.982758ffe: * pulse-server: calculate missing bytes differently * audioconvert: add f64 support * audioconvert: add f64 conversion * Sun Jan 09 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+23~git20220109.f92b0eee5: * bluez5: implement basic CIND/CIEV support in backend-native * resample: limit input and output offsets * Remove separate profile set for Behringer UMC22 that is covered by Texas Instruments PCM2902 profile set * bluez5: bump device profile timeout * bluez5: mark connected when all source/sink profiles connected * Sat Jan 08 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+18~git20220108.d33779cd1: * alsa/acp: make pa_ato * functions behave as PA ones * Fri Jan 07 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+17~git20220107.2b102a104: * jack: remember last return from jack_get_buffer_size * pulse-server: implement control arg for module-ladspa * filter-chain: also allow control params with index * impl-node: set signal and awake time * Fri Jan 07 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+13~git20220107.126d380e8: * spa-resample: don\'t add simd_cargs, they are not needed * spa-resample: add option to set CPU flags * pulse-server: request more data when seeking backwards * pulse-server: after uncork, ask for missing data * pulse-server: show monitor sources with device.class=monitor * bluez5: use save flag in profile * Add custom variable to jack pkgconfig to distinguish implementations * meson.build: bump Meson minimum version to 0.59.0 * conf: fix compiler warning about different signedness * systemd: Add systemd-system-unit-dir override * Wed Jan 05 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+3~git20220105.af11fb480: * audioconvert: avoid infinite loop * Wed Jan 05 2022 virtuousfoxAATTgmail.com- Update to version 0.3.43+2~git20220105.adb02119b: * conf: eliminate an unnecessary narrowing conversion * NEWS: fix year * 0.3.43 * bluez5: retry codec switch with timeout on BlueZ failure * bluez5: rate limit BlueZ SetConfiguration calls * Tue Jan 04 2022 virtuousfoxAATTgmail.com- Update to version 0.3.42+120~git20220104.22625fb65: * pulse-server: support server config * json: add spa_json_parse_stringn() * Tue Jan 04 2022 virtuousfoxAATTgmail.com- Update to version 0.3.42+118~git20220104.c46113faa: * json: spa_json_get_string() writes up to len chars or fail * json: check spa_json_get_string() return value correctly * pulse-server: remove unused defines * acp: sync with pulseaudio * Mon Jan 03 2022 virtuousfoxAATTgmail.com- Update to version 0.3.42+114~git20220103.2f4c589d5: * pw-cat: also list additional targets in record mode * bluez5: adjust codec profile priority ordering * bluez5: prefer aptx-ll over faststream * bluez5: bump up HFP codec switch timeouts * alsa: handle extra propinfo in all cases * alsa: add audio.allowed-rates param * module-loopback: align stream media names to filter-chain * filter-chain: use node.name in media.name instead of id * module-loopback: make unique media name per stream * buffers: make alignment optional * support: use defines for alignment * bluez5: free player path * alsa: add TI PCM2902 mapping * Sat Jan 01 2022 virtuousfoxAATTgmail.com- Update to version 0.3.42+101~git20220101.2ed62f53d: * spa: allocate ports dynamically * Sat Jan 01 2022 virtuousfoxAATTgmail.com- Update to version 0.3.42+100~git20220101.3f87741b2: * context: calculate target rate only when needed * systemd: correctly prefix systemd system units * pulse-server: make GET_SERVER_INFO accessible without manager * pulse-server: add command access control * pulse-server: store whether the client has been authenticated * pulse-server: use macro to generate command entries * bluez5: Set profile priority in SPA attributes * Wed Dec 29 2021 virtuousfoxAATTgmail.com- Update to version 0.3.42+93~git20211229.2f742bb56: * Revert \"pulse-server: use partial data as missing/played for\" * filter-chain: improve lv2 support * pulse-server: module-roc-{sink,source}: fix potential memory leaks * Wed Dec 29 2021 virtuousfoxAATTgmail.com- Update to version 0.3.42+90~git20211228.6d6445430: * pulse-server: module-zeroconf-publish: harmonize log messages * pulse-server: module-zeroconf-publish: handle allocation failure * pulse-server: module-zeroconf-publish: remove empty line * pulse-server: module-zeroconf-publish: cache service TXT records * pulse-server: module-zeroconf-publish: handle disconnection * pulse-server: manager: add mechanism to query object data * pulse-server: module-zeroconf-publish: do not allocate service name dynamically * pulse-server: module-zeroconf-publish: use fixed object data id * pulse-server: module-zeroconf-publish: avoid double-free * pulse-server: module-zeroconf-publish: remove unnecessary member * pulse-server: module-zeroconf-publish: remove unnecessary NULL check * pulse-server: module-zeroconf-publish: rename functions * pulse-server: module-zeroconf-publish: do not query twice * Wed Dec 29 2021 virtuousfoxAATTgmail.com- Update to version 0.3.42+77~git20211228.7b0af5940: * pulse-server: module-null-sink: do not use client\'s core * pulse-server: module: do not schedule unloading multiple times * pulse-server: module: use SPA_FOR_EACH_ELEMENT() * pulse-server: always compile ROC modules * spa: meson.build: export data directory on dependency * treewide: meson.build: get PIPEWIRE_{CONFIG,MODULE}_DIR from dependency * treewide: meson.build: get SPA_PLUGIN_DIR from dependency * treewide: meson.build: use project_{build,source}_root() * daemon: meson.build: use get_variable() * meson.build: use project_{build,source}_root() in devenv * meson.build: require meson 0.56.0 * meson.build: remove unnecessary import * man: meson.build: remove unnecessary variables * spa: meson.build: only look for libcamera under one name * treewide: meson.build: use dependency variable for SPA * Tue Dec 28 2021 virtuousfoxAATTgmail.com- Update to version 0.3.42+62~git20211226.0753e992b: * pulse-server: improve reference counting of samples * pulse-server: handle if the module is destroyed while loading * pulse-server: rework module loading * pulse-server: stream: only remove from list if pending * pulse-server: client: add \'disconnect\' event * pulse-server: client: do not drop partially sent messages * pulse-server: client: restructure message handling * pulse-server: client: do not queue messages after disconnect * pulse-server: server: use `spa_strstartswith()` * pulse-server: move parts of stream creation * pulse-server: move parts of client creation * pulse-server: remove unnecessary `NULL` checks * Enable v4l2 and raop Meson options on the FreeBSD CI. * Add Meson logic to properly locate OpenSSL on FreeBSD. * Use real sched_getcpu() implementation on FreeBSD 14. * module-raop-sink.c: Fix compilation error on FreeBSD. * Thu Dec 23 2021 virtuousfoxAATTgmail.com- Update to version 0.3.42+44~git20211223.1f4d3b0a1: * jack: encode monitor uuid with extra bit * pulse-server: use partial data as missing/played for * Wed Dec 22 2021 virtuousfoxAATTgmail.com- Update to version 0.3.42+42~git20211222.3de9d3df3: * pulse-server: use safer spa_scnprintf * pulse-server: increase channel name length * alsa-plugin: do correct boundary check * impl-node: start sync after reposition * Tue Dec 21 2021 virtuousfoxAATTgmail.com- Update to version 0.3.42+38~git20211221.62660c1e8: * audioconvert: make buffers larger * spa: pod: parser: add null terminator * Tue Dec 21 2021 virtuousfoxAATTgmail.com- Update to version 0.3.42+36~git20211220.b04b52ecf: * spa: alsa: do not look up the card again when releasing * spa: alsa: change index type * Mon Dec 20 2021 virtuousfoxAATTgmail.com- Update to version 0.3.42+34~git20211220.3c66d4600: * pulse-server: recalculate tlength on quantum change * Mon Dec 20 2021 virtuousfoxAATTgmail.com- Update to version 0.3.42+33~git20211220.512a52d9c: * pulse-server: fix the number of enum values * Sat Dec 18 2021 virtuousfoxAATTgmail.com- Update to version 0.3.42+32~git20211218.d2f676f9a: * pulser-server: push data instead of silence * pulse-server: flush after we push the last buffer * Sat Dec 18 2021 virtuousfoxAATTgmail.com- Update to version 0.3.42+30~git20211218.abbb034fa: * Revert \"impl-core: require WX flags to destroy an object\" * alsa: allow multi-rate by default * Sat Dec 18 2021 virtuousfoxAATTgmail.com- Update to version 0.3.42+28~git20211217.b476d6b50: * alsa: add api.alsa.period-num param * alsa: use position duration as period size * module-protocol-native: Fix errno check * Revert \"pulse-server: only try to increase the tlength\" * pulse-server: only try to increase the tlength * alsa: only use graph rate when nothing else is fixed * acp: sync with pulseaudio * pulse-server: improve fix_ * handling * pulse-server: implement fix_ * fields * context: apply new quantum and rate when driver is idle * spa: fix initializer for old GCC * alsa: fix rate for EAC3 * 0.3.42 * impl-node: update quantum/rate only when pending changes * impl-node: sync current rate and quantum with position * impl-node: don\'t update rt.position directly * Revert \"module-echo-cancel: schedule source and playback last\" * pipewire: module-session-manager: harmonize type of `change_mask` * protocol-native: change some warnings to infos * pulse-server: track quantum and update tlength * pulse-server: update the in_prebuf state * pulse-server: increase buffer size * doc: Add module-raop-discover * Revert \"pulse-server: always ask for more data when underrun\" * module-raop: fix zeroconf copy and paste * Wed Dec 15 2021 virtuousfoxAATTgmail.com- Update to version 0.3.41+15~git20211215.205774f3a: * jack: Disconnect owned links on jack_deactivate * tests: Add pipewire-alsa stress test * impl-node: update quantum/rate only when pending changes * impl-node: sync current rate and quantum with position * Wed Dec 15 2021 virtuousfoxAATTgmail.com- Update to version 0.3.41+11~git20211214.dbe61af54: * impl-node: don\'t update rt.position directly * Revert \"module-echo-cancel: schedule source and playback last\" * pipewire: module-session-manager: harmonize type of `change_mask` * protocol-native: change some warnings to infos * pulse-server: track quantum and update tlength * pulse-server: update the in_prebuf state * pulse-server: increase buffer size * spa: libcamera: call `get()` instead of `fd()` * doc: Add module-raop-discover * Revert \"pulse-server: always ask for more data when underrun\" * Mon Dec 13 2021 virtuousfoxAATTgmail.com- Update to version 0.3.41+1~git20211213.33f3a987e: * module-raop: fix zeroconf copy and paste * 0.3.41 * pulse-server: fix sample pactl command * Sat Dec 11 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+126~git20211211.1e5f499ed: * bluez5: fix aptx-ll caps size * Fri Dec 10 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+125~git20211210.bcd867f8e: * filter-chain: disable lilv code when not available * filter-chain: add support for lv2 plugins * support: set clock name for null-audio-sink * bluez5: set clock name in SCO source and sink * bluez5: set clock name * alsa-seq: make clock name configurable * jack: debug driver id and clock name * support: add property to configure clock name * alsa: make it possible to configure the clock name * Fri Dec 10 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+116~git20211209.e1576c53d: * pulse-server: always ask for more data when underrun * Thu Dec 09 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+115~git20211209.3ab3157bf: * channelmix: don\'t use default map for mono * channelmix: 1 channel MONO or FC should be handled the same. * Revert \"pulse-server: always asks for more data when underrun\" * audioconvert: fix mono channel mix test * channelmix: always handle 1 channel as mono * v4l2: propagate vendor and device id to the node object * v4l2-device: remove unused member variable device_name * Thu Dec 09 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+108~git20211208.0d422f00d: * module-echo-cancel: schedule source and playback last * stream: add TRIGGER stream flag * settings: improve graph recalc reason * Tue Dec 07 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+105~git20211207.2e199eba4: * node: update quantum and rate at beginning of cycle * impl-core: require WX flags to destroy an object * impl-link: small cleanup * jack: fix loopback links to client * jack: recompute latencies after graph changes * jack: always invoke buffer callback * improve latency debug * Add all 32-bit packed little endian 10-bit RGB colour formats * po: update turkish translation * alsa: improve debug * jack: refactor recompute_latencies * make some warnings into log * Sat Dec 04 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+93~git20211203.c20f22466: * jack: improve latency calculation * jack: also call latency callback when buffersize changes * resample: recalc rate match when out of buffers * pulse-server: handle prebuf state better * pulse-server: don\'t clamp missing bytes to tlength * pulse-server: always asks for more data when underrun * Thu Dec 02 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+87~git20211202.97cad7284: * latency: fix latency combine calculations * audioconvert: listen for merger and channelmix for params * audioconvert: remove listener for resampler * audioconvert: expose more config options * audioconvert: only update the arrays when valid * channelmix: only remap volumes when we have a format * audioadapter: return result from enum_param directly * settings: use default rate as allowed rates as fallback * alsa: improve param log a bit * filter-chain: don\'t use id in PropInfo for params * alsa: don\'t set id in PropInfo for params * audioadapter: also update the follower PropInfo flags * test: test-logger: ignore some systemd journal error codes * test: null terminate output buffers * Wed Dec 01 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+73~git20211130.921a9038e: * spa: audioadapter: check if follower supports enum params before requesting them * spa: test: remove port EnumFormat param info * alsa: add position and format to props params * alsa: expose all config options as params * spa: add description to PropInfo * Tue Nov 30 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+68~git20211130.f894a51ea: * protocol-native: keep reading messages after error * core: disable bind version checks * pulse-server: add some debug * Mon Nov 29 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+65~git20211129.700a22b7f: * pulse-server: recover for underrun better * Mon Nov 29 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+64~git20211129.3df6e7799: * jack: handle regcomp errors * buffer: handle the case where only MemPtr is selected * buffers: improve fallback memory allocation * client-node: improve memory checks * mem: improve debug * Sat Nov 27 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+59~git20211126.1b06d4d7c: * settings: Add more runtime settings * Thu Nov 25 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+58~git20211125.5cff20eba: * jack: handle chunk offset and size * alsa-plugin: clip offset and size in capture * protocol-simple: clamp size to maxsize * pulse-server: add size check when reading strings * pulse-server: avoid reading past the message size * alsa: improve debug * alsa-plugin: use hw_avail in _delay for playback * alsa-plugin: improve debug * alsa-plugin: fix delay reporting * alsa-plugin: don\'t rate match for capture streams * alsa-plugin: don\'t clamp elapsed time to stream delay * alsa-plugin: improve debug * Wed Nov 24 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+46~git20211123.ac4ec20b0: * pulse-server: free pending client message * pulse-server: don\'t add large blocks to cache * pulse-server: limit the max cache to 16MB * alsa: refactor property parsing * alsa: refactor a bit * alsa: keep track of rate in card object * Tue Nov 23 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+40~git20211122.e7f9046bb: * global: place object.serial in object info * global: add the object.serial property for globals * global: add serial number * jack: implement stub internal client API * jack: ensure we don\'t have negative latencies * jack: recompute latency on buffer size change * raop: small cleanup * Fri Nov 19 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+33~git20211119.5ae75e1d2: * pulse-server: use STREAM_CAPTURE_SINK for monitor capture * modules: check for a NULL resource in client-device and client-node * Thu Nov 18 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+31~git20211118.31a84a8de: * Update pipewire.pot and hr.po * jack: keep object cache * Wed Nov 17 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+29~git20211117.c387e83c6: * pipewire-v4l2: avoid overflow in id calculation * alsa: free card on error * filter-chain: fix memory leaks * filter-chain: clean up on errors * filter-chain: free plugin when load fails * impl-module: don\'t leak filename * bluez: check dbus service before enumerating objects * alsa: remove stray log line * Tue Nov 16 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+21~git20211116.23ac9e5f3: * module-access: improve pipewire.client.access handling * protocol-native: improve permission debug * pulse-server: turn error into info * resample: improve buffer size calculations * systemd: extend the description for the socket files * Mon Nov 15 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+16~git20211113.c03d10296: * raop: connect TCP socket * Sat Nov 13 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40+15~git20211113.ceeaf6c2f: * meson: add -Draop switch for OpenSSL dep control * impl-core: use PW_ID_CLIENT to make things clearer * raop: add user agent * raop: add authentication * raop: only encrypt when enabled * raop: move some info to debug * pulse-server: implement module-raop-discover * module-raop-sink: handle 0 block_size * doc: add raop sink to docs * raop: remove duplicate define * raop: More improvements * raop: more improvements * raop: add beginnings of RAOP protocol * module-echo-cancel: Remove intelligibility param with no effect * module-echo-cancel: wireup voice detection * Fri Nov 12 2021 virtuousfoxAATTgmail.com- Update to version 0.3.40~git20211111.7afd80052: * 0.3.40 * gst: Don\'t ask for DMA buffers * audioconvert: fix compilation on armv7 * spa: include dict.h * pw-mon: add support for colored output * pw-mon: switch the changed marker from single char to string * pw-mon: switch to use stderr everywhere * man: add a man page for pipewire-pulse * ci: use FDO_CI_CONCURRENT to determine the ninja job count * examples: video-play-fixate.c add fallback for older PipeWire versions * examples: video-src-fixate.c cleanup example * docs: Update fixation on DmaBuf-docs * examples: video-play-fixate.c remove fixated check * Only handle -EPIPE eerrors. * pipewire-pulse: add manager disconnect event * pipewire: module-profiler: destroy event source * pipewire: module-profiler: handle global\'s destroy event * pipewire: module-echo-cancel: aec-webrtc: use unique_ptr * pipewire: module-echo-cancel: aec-webrtc: use appropriate casts * pipewire: module-echo-cancel: aec-webrtc: use getters with default * pipewire: module-echo-cancel: avoid extra allocation * Wed Nov 10 2021 virtuousfoxAATTgmail.com- Update to version 0.3.39+101~git20211109.c9fc3d7f4: * pulse-server: don\'t process while the stream is created * utils: export pw_getrandom * impl-core: pass data to listener user_data * destroy proxies when global is removed * Mon Nov 08 2021 virtuousfoxAATTgmail.com- Update to version 0.3.39+97~git20211108.2329a4d32: * bluez5: quirks for headset without a2dp duplex codecs * jack: improve port sort order * Wire up webrtc aec parameters to args * Fri Nov 05 2021 virtuousfoxAATTgmail.com- Update to version 0.3.39+94~git20211105.743f69919: * pulse-server: try to not put pointers in info messages * pulse-server: leave the draining state * stream: make _set_active(true) leave the draining state * pulse-server: send the drained event only once * Fri Nov 05 2021 virtuousfoxAATTgmail.com- Update to version 0.3.39+90~git20211105.6ca297797: * pulse-server: ensure latency is multiple of frame_size * spa: bluez: simplify and move handling of some AT commands * spa: bluez: simplify loop * spa: bluez: rename variable * spa: bluez: fix spelling * spa: bluez: remove unnecessary `return` * spa: bluez: move profile selection to function * spa: bluez: change argument type * spa: bluez: use switch * spa: bluez: add missing `else` * spa: bluez: use `spa_startstartswith()` where appropriate * pulse-server: improve latency setup a little * acp: improve debug of channel map * pulse-server: don\'t emit _removed without havine emitted _added * Thu Nov 04 2021 virtuousfoxAATTgmail.com- Update to version 0.3.39+76~git20211103.abacea5ca: * libcamera: improve debug * libcamera: implement allocation and dataflow * libcamera: work on rewrite * pw-mon: destroy proxies in global_remove event * pulse-server: also remove creating objects * module-zeroconf: translate audio format * cpu: only run SSE code when supported * core: add runtime fallback for nonpresent getrandom() sycall * alsa-plugin: fix a compiler warnings * alsa: do not ignore rate change when stream is already created * alsa: increase precision of delay function * spa/meta: Expand the documentation of SPA_META_VideoDamage * alsa-seq; use port_type to check port type * Tue Nov 02 2021 virtuousfoxAATTgmail.com- Update to version 0.3.39+63~git20211102.4921c5e94: * defs: use intptr types where applicaple * meson: ensure all examples are included in doc * alsa-plugin: _prepare will clear the draining state * pipewire-v4l2: only compile V4L2_BUF_CAP_SUPPORTS * when defined * pipewire: handle NULL plugin_dir * v4l2: add support for ParamBegin/End * Sun Oct 31 2021 virtuousfoxAATTgmail.com- Update to version 0.3.39+57~git20211029.9facfca45: * jack: add option to disable monitor ports * audioconvert: add stereo deinterleave neon asm * meson: add a libv4l2-path option to match libjack-path * map: don\'t mix insert_at() and _remove() * core: Use /dev/urandom for getrandom fallback * Thu Oct 28 2021 virtuousfoxAATTgmail.com- Update to version 0.3.39+52~git20211027.3509962f3: * module-session-manager: don\'t leak the impl structure * tests: add new ABI test for stream * examples: update some examples with RequestProcess * stream: emit the RequestProcess event * node: dispatch RequestProcess event and command * spa: add RequestProcess command and event * stream: add trigger_done event * fix example a little * examples: video-play-fixate announce ParamBuffer after fixation * examples: Create source and sink with fixation on format negotiation * impl-link: keep on negotiatiating until fixed Format * meson: Allow session-managers option to be an absolute path * Reinstate compatibility with older Linux with no getrandom() * jack: reorganize jack_port_get_buffer() * jack: add some more debug * pulse-server: Improve combine sink properties * protocol-pulse: flush streams on pause * impl-link: both ports need to be negotiated before we can allocate * ci: add a job to build with the minimum required meson version * ci: add a job to build with the latest meson prerelease * meson: switch to \"foo in array\" style for meson arrays * test: handle chdir errors correctly * test: fix tmpdir value after setenv * impl-link: check port state before allocating * impl-link: improve debug * stream: use user param field to track param changes * spa: add method to check if an object is fixated * cpu: disable VFP asm when not available * map: use uintptr_t for the next pointer * map: make _insert_at() fail on a removed item * meson: use meson variables for the SMs\' uninstalled scripts * Mon Oct 25 2021 virtuousfoxAATTgmail.com- Update to version 0.3.39+21~git20211025.1ac57e6e1: * pipewire-jack: Fix compound-token-split-by-macro warning * pipewire-alsa: Fix build warning * spa: alsa: Fix build warning * examples: Add explicit break statement in video-play-reneg * spa: v4l2: Convert buf structure to union and fix alignment * spa: alsa: Switch to explicit fallthrough * gitignore: Add media-session project to .gitignore * meson: Set session manager variable based on renamed project * Update Croatian language * pipewire-v4l2: pw-v4l2.in: fix parameter expansion in quotes * Fri Oct 22 2021 virtuousfoxAATTgmail.com- Update to version 0.3.39+11~git20211022.d460c9627: * Properly disable v4l2. * FreeBSD CI: Remove 11.4-RELEASE from the build matrix. * FreeBSD CI: Install git * Add FreeBSD variant of the ioctl request check. * Avoid compiler warning by #ifdef\'ing a function used only on Linux. * Set PW_KEY_SEC_LABEL property on FreeBSD and avoid compiler warning. * Remove unused function. * Use uint16_t instead of int16_t to fix a compiler warning. * Fix compiler warning by spelling the initializer properly. * Don\'t include byteswap.h on FreeBSD, use sys/endian.h instead * cpu: fix compilation on some architectures * 0.3.39 * stream: add spa command include * pw-cat: use default metadata for default source/sink * gitlab: structure the issue templates * examples: fix NAME for bluez-session * po: remove the media-session service file from POTFILES.skip * Tuning some webrtc parameters * Allow echo-cancel to select larger buffer sizes * Tue Oct 19 2021 virtuousfoxAATTgmail.com- Update to version 0.3.38+187~git20211019.002566ae8: * test: fix stream ABI test * filter: add event to notify command * stream: add event to notify commands * node: make enum for TYPE_EVENT_Node properties * client-node: handle events, send them to the server part * stream: use sizeof instead of hardcoded value * stream: add some debug for commands * impl-node: add method to send a command to a node * Tue Oct 19 2021 virtuousfoxAATTgmail.com- Update to version 0.3.38+179~git20211019.6683114e0: * po: remove leftover media-session file * doc: fix URL to the media session git repo * Mon Oct 18 2021 virtuousfoxAATTgmail.com- Update to version 0.3.38+177~git20211018.67209b9ec: * resample: add some float math optimization * resample: use blackman with 0.232 alpha * pulse-server: use for-each loop * pulse-server: return NULL instead of 0 * pulse-server: remove unnecessary NULL check * pulse-server: compile extensions separately * tools: update pw-reserve so don\'t need to include the c file * Remove media-session from this tree * link-factory: avoid using 0 for invalid id * pipewire-v4l2: actually close file descriptors * Wed Jun 09 2021 Antonio Larrosa - Update to 0.3.30 * This is a quick emergency release to fix some severe problems with the previous release. * Highlights - Recording from a monitor port should work again. - JACK applications should now be more stable again. - Freewheeling should not lock up anymore. - Fix lockups in many pulseaudio apps. - module-echo-cancel was implemented in pipewire-pulse - Many other stability fixes. * PipeWire - Improve module path logic. - Improve logger formatting * PulseAudio server - Make sure to pass 64 bits values for time on ARM 32 bits to avoid protocol errors. - Avoid a crash when unloading module-combine-sink. - Avoid overflow in requested bytes, resulting in stalled audio. - Implement module-echo-cancel. * Bluetooth - Handle latency parameters instead of failing. * JACK - Fix locking in many places to avoid deadlocks and crashes. - Fix port rename. - Stop freewheeling correctly instead of deadlocking. * Thu Jun 03 2021 Antonio Larrosa - Update to 0.3.29 * Highlights - Latency reporting is now implemented. - Many documentation updates and cleanups. - module-combine-sink was added to PulseAudio server. - Better handling of multichannel input profiles. - Fix 100% volume issue when monitor suspends or profile changes in some cases. - Bugfixes and crashes * PipeWire - A new module-rt was added to acquire real-time scheduling priviledges without using RTKit. - Documentation fixes and updates. Docs are now using a custom theme. - There is now a MANDATORY flag on properties that influence how properties are filtered. - Filter-chain now parses the LADSPA_PATH correctly when it contains a colon separated list. - Move `#pipewire` IRC channel to oftc.net. - Fix an error where param changes were not emited in all cases. - Implement Latency reporting. Latency values are propagated through the graph so that each node knows the latency to the output/input device. Synchronization in pw-stream has been updated to use this. - Some more upmix cases are added so that LFE, SIDE and REAR can be generated from a mono channel as well. - pw-stream and pw-filter will now emit the process event from the real-time thread in a safe way, potentially avoiding some of the harder to debug crashes. - Fix potential stack overflow with serialize_dict. - Add PIPEWIRE_NO_CONFIG to run without custom config files. - The WebRTC echo canceler was added. Next versions will integrate this better. * PulseAudio server - module-combine-sink was implemented. - Fix some segfaults when DBus connections fail. - Support for listening on IPv6 was added. - Fix a bug where many flushes could result in requests for too much data from the client, causing sync, latency and garbled sound problems after many seeks. * ALSA - Also probe input paths for multichannel mappings. This makes multichannel input ports show up in more cases. - Fix headphones/front volume issue on some cards. - Fix max volume issue when profile changes. - Fix issue with UCM local config that was not available when the device was opened in the server but the UCM was opened by the session manager. Fixes alsa 1.2.5 compatibility. * JACK - Implement latency reporting with the new Latency params.- Add BuildRequires: pkgconfig(webrtc-audio-processing) which is required by the new WebRTC echo canceler.- Remove patch which is already included: * 0001-alsa-mixer-only-use-switch-to-mute-Front-in-the-Headphone-path.patch * Tue Jun 01 2021 Antonio Larrosa - Add patch from upstream to use the independent switch to mute Lineout or Speaker instead of setting the volume, which on some soundcards might be shared by Headphone and Lineout or Headphone and Speaker (fixes boo#1186572): * 0001-alsa-mixer-only-use-switch-to-mute-Front-in-the-Headphone-path.patch * Tue May 25 2021 Antonio Larrosa - Introduce a workaround for systems where %systemd_user_post didn\'t enable the user services correctly due to different reasons . This workaround is only executed once, and only if it\'s really needed. In order to execute only once a lock file is created in /var/lib/pipewire. The lockfile can be removed when the workaround is removed. Everyone who upgraded their TW system between (aprox.) the 14th of January and the 16th of March and who didn\'t enable the services manually is affected by this. It also happens for everyone who installed a new TW system since (aprox.) the 14th of January and also for everyone doing a new installation of SLE15-SP3 / Leap 15.3 from the iso (new installations using online repositories will work fine once the fix in systemd-presets-common-SUSE is released). Fixes boo#1184852, boo#1183012 and boo#1186561. * Wed May 19 2021 Antonio Larrosa - Update to 0.3.28 * Highlights - Freewheeling was implemented. This makes it possible to export projects in ardour. - A new powerful filter-chain module was added that can be used to created all kinds of filter-chains from ladspa and builtin plugins. - Many more pulseaudio modules are now implemented: module-ladspa-sink, module-ladspa-source, module-pipe-sink, module-tunnel-sink, module-tunnel-source, module-zeroconf-discover - Fix a bug where devices would not appear after logout/login. - Fix a bug where the volume was reset to 0 and devices would have no audio. - Config files are now installed in the data dir, system overrides in /etc/pipewire and $HOME are checked first. * PipeWire - Implement freewheeling for JACK clients - Add filter-chain module that can be used to construct arbitrary graphs from ladspa and builtin plugins. - Add new property to easily set algorithm params - Add module-pulse-tunnel to tunnel audio to and from a PulseAudio compatible server. - Add a avahi zeroconf discover module, create pulse-tunnel when PulseAudio devices are announced. - Config files are now installed in the data dir, system overrides in /etc/pipewire and $HOME are checked first. - Applications now have their monitor ports named with the \"monitor\" prefix to avoid confusion with the output ports. - LICENSE clarifications. * GStreamer - fixes to the pipewiresink plugin. * SPA plugins - Fix a bug where the volume was reset to 0 - Add events to dbus plugin. This can be used to detect dbus disconnects. * Media-session - Handle dbus disconnect. - Handle device reservation errors. * PulseAudio server - Implement module-ladspa-sink and a new PipeWire-only module-ladspa-source - Implement module-pipe-sink - Implement module-tunnel-sink and module-tunnel-source - Fix a bug with module argument parsing - Implement module-zeroconf-discover * ALSA plugin - improve error handling * Thu May 13 2021 Ismail Dönmez - Add %bcond_with aptx conditional to let 3rd parties to enable aptX support. * Sat May 08 2021 Ismail Dönmez - Add %bcond_with aac conditional to let 3rd parties to enable AAC support. * Fri May 07 2021 Antonio Larrosa - Update to 0.3.27 * Highlights - Fix bug that caused bluetooth devices to stop working. - Fix session-manager crash when switching users caused by the DBus plugin cleanup errors. - Improve volume handling of monitor ports. - Fix GStreamer v4l2 support. - Implement module-remap-sink and module-remap-source in pipewire-pulse. - More fixes and improvements. * PipeWire - Move the loopback code into a module. Use this in pw-loopback and pipewire-pulse. Fix some cleanup crashes. - A dummy echo-cancel module was added. Later versions will include the webrtc echo-canceler. - State files don\'t have the X permission anymore. - Move i18n core into a private header file. - Stream can now advertize properties and receive property updates. - Fix an issue where the wrong index was used to address a port. It caused Bluetooth devices to stop working. * SPA plugins - Only do LFE filtering on channels we created. - Improve name and description of devices. - Improve cleanup in DBus connections and sources to avoid crash when destroying. - Improved volume handling. Hardware, Software and Monitor volumes are now properly separated and handled. - Support for S8 and S8P formats was added. * Tools - pw-cli can now also create Struct from JSON arrays. * Session-manager - The session manager can now also create passive links. This makes is possible to suspend effect chains together with the sinks when not in use. - Match rules now check the complete property value instead of only the start. - Handle multiple pending param enumerations, take only last result. This fixes some volume update issues. * GStreamer plugins - GStreamer plugins now advertize handling DMABUF explicitly. This is currently the only way to avoid a memcpy for v4l2 devices. * Device support - sync ACP with pulseaudio, merge upstream patch instead of our hack to workaround missing duplex devices. - V4l2 devices don\'t expose their fd anymore. Previously the fd and mmap offsets were passed to the client to access the buffer memory but that could create security issues. * Bluetooth - Don\'t unregister the profiles on shutdown because this can cause delay, just close the dbus connection. - Bluetooth devices now try to use the global samplerate from the graph. * PulseAudio server - Implement remap-sink and remap-source modules using the new loopback module. * Mon May 03 2021 Yifan Jiang - Disable gstreamer device provider by now because the timestamp bug makes cheese video record abnormally longer than it should be (rh#1884260).- Replace all tab characters to space. * Thu Apr 29 2021 Antonio Larrosa - Add %systemd_ordering so systemd is installed before pipewire on fresh installations. This allows to set the service presets correctly on new systems since the %systemd_user_ * macros don\'t do anything if systemd is not installed (boo#1185459). * Thu Apr 22 2021 Michael Ströder - Update to 0.3.26: + Highlights: - I18n support, with translations merged from PulseAudio. - New pw-link tool. - Many Bluetooth improvements, support for hardware volumes. - Support for 64 channel devices. - Stability fixes and improvements. + PipeWire improvements: - The link factory can now also make links between nodes and ports by name so that it can be used in scripts. - Add module-protocol-simple that can stream raw audio on a socket. - Added i18n support. Merge PulseAudio translations for the ACP library so that we don\'t cause regressions. - Support more than 19 channels in the channel mixer. This makes all channels usable on 32 and 64 channel cards. - Detect if we\'re running in a VM and allow for tweaking some settings such as the max-quantum to make things work better in VMs. - Fix a potential crash when connecting a client and updating permissions. - Fix a potential crash when trying to link incompatible ports. - Lingering links in error will now be destroyed automatically. + Tools: - Added new pw-link tool to list and monitor ports and to list, monitor, create and destroy links between them. - pw-cli can now also list params by name. - pw-dump now outputs Spa:String:JSON types in metadata as properly parsed and formatted JSON so that tools can parse the metadata values using a JSON parser. + Session-manager: - Add logind support. The bluetooth monitor can only be started for one user at the time, so use logind detect active seats. - ALSA icon names were improved to match what PulseAudio does. - Improve the bluetooth icon name. Also use the device alias as the device description, like PulseAudio. + Device support: - When devices become inaccessible, they are now removed from the PipeWire graph. - Fix datatype selection for buffers in v4l2 and libcamera. + Bluetooth: - Various memory leaks and crashes are fixed. - Added support for AVRCP hardware volume. - Added support for HSP/HFP hardware volume. + PulseAudio server: - Fix module-loopback connections to monitor ports. - Implement module-native-protocol-tcp. - Handle nodes and streams with > 32 channels. The PulseAudio API only supports up to 32 channels so only make those 32 first channels available with the PA API. - Implement module-simple-protocol-tcp. - Improve events emitted by the server. - Improvements to channels and channel_map properties on modules. One can imply the other and they should match when both given. - null-sink will now have their volume work correctly by default. + JACK: JACK developement files can now optionally be installed. * Tue Apr 13 2021 Michael Ströder - Update to 0.3.25: + This is a bugfix release that is API and ABI compatible with - previous 0.3.x releases. + Highlights - Many stability improvements. - Plug fd leak in flatpak detection - add pw-loopback tool and support module-loopback - volume restore for virtual sinks/sources or other sink/sources without hardware volume. - Fix cracks and pops in audio capture. - Many bluetooth improvements and compatibity fixes. + PipeWire improvements - Hex encode invalid SEC_LABEL properties to avoid generating invalid json. - Small fixes to how nodes are started to avoid crashes. - Make sure ports are only scheduled after being fully negotiated to avoid crashes. - Implement coverity into CI, fix some bugs detected by coverity. - Plug leak in flatpak detection. - Fix crash when removing globals in some cases. - Fix crash because the mixer info was not removed from a port in all cases. - Add PIPEWIRE_AUTOCONNECT environment variable to disable stream autoconnect. Also add a config option to disable autoconnect. - Improve wildcard in format helpers. - Add env variable to disable journald logging. + Tools - Add a new pw-loopback tool to loop a capture device to a playback device. - Display localized strings correctly in pw-top - Add some more options to pw-dot + Session-manager - When a new node is configured and some stream have this as the default target, move them to it. - Fix some crashes. - Implement volume restore on nodes without routes. This makes it possible to restore volume on purely software nodes like null-sinks. - Also try to suspend errored nodes so that they may leave the error state and be reused again. - Break endless link loops when something went wrong. + Device support - Fix monitor volumes, they are now separate from the hardware volume. - Fix cracks and pops in alsa capture caused by mismatch between resampler and capture source. - Add start-delay config option to alsa sink. - Ensure the PipeWire midi ports start from a higher number so that the lower port numbers are available to apps as before. + Bluetooth - source devices are now removed when idle - Support using pipewire as Audio Gateway. - LDAC encoding quality can be configured now - Implement codec switching for HFP - Implement codec switching with new device property. - Improved stability and compatibility - Autoconnect device profiles at startup - Add AAC bitrate mode configuration - Make it possible to use an A2DP source as an input device. You can then use your phone as an A2DP microphone, for example. - Remove battery reporting when RFCOMM connections is closed. + PulseAudio server - Add some workarounds for Blueman - Set correct errno values, fixes a hang in load-module of a non-existing module - Try to not send inconsistent information to clients. - Fix some crashes. - Add support for the new send-message API, use this to switch bluetooth codecs. - Fix draining by making sure we are started. - Handle 0 sink and source as the default sink/source. - Implement module-loopback + JACK - Fix some memory leaks when closing a client - Add self-connect config option to limit where clients can connect themselves. - Don\'t crash when apps call _port_get_buffer() on a port that is not their own but simply return NULL. This fixes a crash in Ardour6. - Improve client added/removed callbacks. Sometimes it would emit a client remove when there were still ports for the client. - make sure midi port names are stable across reboots. * Fri Mar 19 2021 Antonio Larrosa - Enable or disable the ldac codec depending if ldacBT is available or not to fix build in s390x (where it\'s not available)- Add some more information and fix indentation on previous changelog entries. * Fri Mar 19 2021 Matej Cepl - Update to 0.3.24: + This is a bugfix release that is API and ABI compatible with previous 0.3.x releases. + Highlights - Many JACK midi improvements and device support. - Fixes in gnome-control-center default sink/source handling. - Many small performance improvements in alsa device handling and latency. There should also be less cracks/pops and xruns now. - More bluetooth compatibility improvements. + PipeWire improvements - Implement simple upmixing - Disable the resampler when not used. This improves latency and CPU usage. - Handle max-quantum on devices and try to not make the quantum larger than the device buffer size. - improvements to how nodes and links are activated. It should now result in less xruns and cracks/pops. - meson uses the feature options everywhere now - Handle volume remap in the channelmixer. This fixes the channels on multichannel devices. - Try to escape invalid JSON string characters - Keep better track of changed parameters in audioconvert. - Improve config files, make arrays where needed. - Respect NO_COLOR where possible - Support in-place config file parsing to avoid allocations and improve startup performance. - There is no a config option to enable non-power-of-two quantums. - Preliminary support for upmixing and generating LFE channels. + Session-manager - default nodes are not stored as JSON in the metadata. This is more readable and introspectable. - More default-nodes and default-routes improvements. port switching should work better now. - Wait until all devices are scanned before linking clients. - Fixes some crashes - Sinks (monitors) can now be set as default sources. + Device support - Fix startup timers for alsa devices. - Improve timers in alsa when quantum changes. It should cause less xruns and cracks. - Fix UCM setup of capture devices. - Only disable IRQ in alsa when not batch. For batch devices the hw pointers are updated each IRQ so we need to keep them enabled. This massively improves latency on USB batch devices to the same level as JACK (with small enough period size). + Bluetooth - Improvements to profile switches. - Improvements to volume handling. - Fixes for A2DP sources - Add support for battery status when available. - Many other small improvements. + PulseAudio server - handle NULL in set_default_sink/source to clear the default - Implement a workaround for gnome-control-center when setting the default sink/source. It also sets the target in stream-restore to the new default. This fixes moving streams in gnome-control-center. - Fix some races by replying to some requests after the operation completed. - Prefer formats of the extended format API. - Create a pid file on startup to improve compatibility with apps that look for it. - Capture streams can now be moved to monitors with pavucontrol - Fixes for crashes + JACK - jack clients can now connect to the \'default\' server - Move midi ports back to the midi client - Only mark midi hardware ports as terminal/physical - Use the same midi names as a2jmidid - match system ports in get_ports. - Improve compatibility with some apps that require a fixed latency. - Beginnings of the libjackserver implementation.- Switch off libopenaptx and fdk-aac (because they are patent-encumbered) and libcamera (problems in building). * Wed Mar 17 2021 Antonio Larrosa - systemd-rpm-macros doesn\'t have a consistent versioning between distributions, so better assume it\'s updated enough to support %systemd_user_pre * Tue Mar 16 2021 Antonio Larrosa - Add systemd rpm macros for pipewire.service as well as pipewire.socket .- Use the new %systemd_user_pre macro on %pre to be able to recognize when a service was installed for the first time and enable it on %systemd_user_post (boo#1183012) * Tue Mar 09 2021 Frederic Crozat - Update to version 0.3.23: + Highlights - Fixes for some critical bugs in last release. - Fix bug where audio was not drained properly at the end of playback, causing repeating sound. - Profile and route switching was improved and should mimic more what pulseaudio did. - Various fixes for xruns in capture and playback. - Bluetooth now supports delay adjustment and various other improvements. - The pulseaudio server now correctly identifies AC3 and DTS streams and returns a not supported error instead of playing static. - Multichannel support was improved in the alsa plugin and the channel mixer. Channels should now play on the right speakers in all cases. + PipeWire improvements - Small fixes and improvements in JSON parsing and encoding. - Improvements to param handling in audioconverter. It would previously not always notify of changes. - Avoid updating some properties that we use internally such as the object id and the node.id. - log.level in the config files is now actually used. - the PIPEWIRE_LATENCY env variable should always override any application settings in filter/stream/jack. - The config file can now contain filer and stream properties to, for example, control the resampler, mixer and latency. - Add sandboxing to the systemd services - Various FreeBSD fixes. - Improve draining and a way to exit the drain state as well. - Many multichannel fixes. Channel remapping should now be correct. - Fix bug with repeating audio at the end of playback because the drain in the resampler was not draining all channels. - RTKit default rt.prio has been increased to 88. This will likely still be clamped to 20 until distros increase the max priority. + Session-manager - Don\'t try to switch to Pro Audio profile, this should be a user choice only. - Don\'t crash when metadata was disabled such as when not using the audio features of pipewire. - Rework the profile and route handling. - Add systemd unit files for the media-session - Device names should now also have sane names so that tab pactl completion works on them. + Device support - Fix ALSA format enumeration in more cases. Use the channels and rate as a filter. - Make sure the graph doesn\'t ever use buffers larger than the alsa device buffer size or we get xruns. - Tuning of the alsa device timeout handling and dynamic resampler. There should now not be any xruns when streams appear and disappear or when the quantum changes. - Fix bug in alsa device when reassigning to a new driver, in some cases the dynamic resampler was not activated and things would drift out of sync and fail. - Fixes in quantum changes for ALSA capture and how the resampler is drained and fed with the new samples. + Bluetooth - Delay adjustment has been implemented now. Bluetooth devices should now be more synchronized with video due to proper delay reporting. Because BT delays can be large, it can cause hickups in some players. - Fix volume in bluetooth devices. - Codec switch improvements. + PulseAudio server - Latency offset adjustment is now implemented and functional for bluetooth devices. It is not working for alsa devices yet. - Handle unsupported formats. Previously we would accept encoded formats and play noise. This fixes AC3 playback in vlc. - Move some of the configurable parameters to the config file. - Fix a fatal use after free when playing samples - Improve module handling. loaded modules now show up in the list of modules and can be unloaded. This also prepares the core for more module implementations later. + ALSA plugin - Fix drain with very large buffers, we need to manually start the stream before draining. - Fix the channel layout handling. - Improve compatibility with apps that expect the poll to only return when there is activity. - Fix drain for capture + JACK - Add a config option to shorten and filter client names - Increase the length of the client name size and make sure we don\'t exceed the allocated size. - We now include our own jack header files so we can build without depending on another jack-devel package. We don\'t yet install the headers or provide pkgconfig files.- Move alsa-card-profiles to modules subpackage, they are always needed. * Thu Mar 04 2021 Niklas Haas - Build/install the `pw-top` tool: + Add pkgconfig(ncurses) BuildRequires to satisfy the build deps of pw-top. * Thu Feb 25 2021 Antonio Larrosa - Do not provide pulseaudio, but pulseaudio-daemon so we can specify in the patterns that we prefer the pulseaudio package (boo#1182730) * Thu Feb 25 2021 Antonio Larrosa - Update to version 0.3.22: + Highlights - Per client config files replace the module-profiles. It\'s now possible to tweak settings and load custom modules. - Pro Audio card profile support. You can now select the Pro Audio profile and have raw device access with the maximum number of channels and no mixer controls. This is the usual setup for managing high end Pro Audio cards. - Many fixes and improvements in the JACK library to make devices look and integrate better. - Many bluetooth improvements. Playback should be more reliable and better synchronized. Support for the HFP HF profile. - Small fixes and improvements all over the map. + PipeWire improvements - Add support for restrictions requested by a client. This makes it possible to implement Flatpak policy for emulated PulseAudio clients as well. - Fix removal of params in objects. Previously they would not be removed from the cache. - Remove mlock warnings by default. There is an option to enable them again if you want to check if your system is optimized. - Remove LimitMEMLOCK lines from the service files. They can only lower the system settings and are thus not useful. - Implement per-client config files. Each pipewire client will now read a config file that you can use to configure the context of the client. - Implement state and config load/save in pipewire. This is used by the session manager or other apps. - Make an option to disable dbus support. - Add tool to convert pipewire config to JSON. + Session-manager - Give all permissions to Manager flatpak apps. In the future we will use the Permission store to remember user settings. - Improvements to default audio/sink handling. - Add option to configure device suspend time. - Small fixes in route handling. + Device support - Complain when ACP profile files are not found and use a fallback in order to get something working. - Add volume support to monitor ports. - Fix resume from suspend for ALSA in more cases. - ALSA ACP cards now have a Pro Audio profile that exposes the raw card devices. + Bluetooth - Enable A2DP delay reporting. This improves audio/video sync when playing audio over bluetooth. - Fix stuttering in A2DP source - Tweak buffer size and latency settings to avoid stuttering - More work on HSP and HFP support - Fix initial profile configuration - Add HFP HF support + PulseAudio server - Small tweaks in capture packet size to avoid crashes in some apps. - Detect Flatpak apps and requests the flatpak permissions from the session manager. This means that Flatpak pulseaudio apps will now run with reduced permissions. + ALSA plugin - Reduce min buffer size in the plugin for lower possible latency. + JACK - implement some missing methods to make qjackctl work again. - Use the context data thread instead of making our own. This fixes the issue where the data thread was not given RT priority correctly. - Pass extra jack flags around in port properties. This makes CV ports in carla work. - Many tweaks to the port names and aliases. Unwanted characters are filtered out, giving better names to jack apps. Default device names are now equal to those seen in pulseaudio apps. - Add an option to make a separate client for the monitor ports of a device. This makes it more usable in apps. - add support for system:playback_N and system:capture_N port names for apps that hardcode these port names. * Wed Feb 24 2021 Dominique Leuenberger - Re-add the Provides: pulseaudio; patterns-base now suggests pulseaudio, which should help zypp in doing a smarter decision (boo#1182730). * Thu Feb 18 2021 Antonio Larrosa - ldacBT only builds on little endian architectures, so we can\'t buildrequire it on big endian systems like s390, s390x or ppc64. * Wed Feb 17 2021 Dominique Leuenberger - Remove the pulseaudio provides from pipewire-pulseaudio: We first need to ensure our KDE patterns (and others) become smart enough to favor pulseaudio until we are ready for the switch (boo#1182730). * Wed Feb 03 2021 Dominik Schmidt - Update to version 0.3.21: + Highlights - Many PulseAudio compatibility fixes. Handling of corked streams, the prebuf setting, seek modes and stream flags are now implemented correctly. - Ports and Profiles are now managed by the session manager and can save and restore previous settings. ALSA device handling has been tweaked for maximum compatibility at the expense of latency. There are tuning options in the config file. - Improved Bluetooth support. HSP is disabled by default because it is old and deprecated and in some cases causes conflicts with the newer HFP profile. Codec switching is now implemented as well. PipeWire accepts donations with liberapay now. + PipeWire improvements - Improve draining in pw-stream. pw-stream now uses busy metadata by default. This makes sure that no writer can write to buffers when readers are still busy. - Fix handling of empty array/choice instead of failing. - Fix crashes when creating properties from empty strings. - Make it possible to pass an array to module-access access.allowed variables - Fix small bug in argument parsing in pw-cat + Session-manager - Restore route volumes in all cases, also when switching routes. - Use a default route volume for unknown routes instead of letting the system decide on a default. Improve profile handling. Don\'t try to restore unavailable profiles. Implement the profile switching in the session manager now. - Fix handling of Virtual sources as defaults. - Handle port switching in the session manager. Implement save and restore of default ports per profile. + GStreamer - Fix a crash with zero SPA_PARAM_BUFFERS_size + Device support - v4l2-source will now respect the requested memory types. - ALSA buffering has been tweaked. USB devices should have less XRuns by default. Parameters can be tweaked to decrease the latency on capable devices. Also fix a case where a quantum change would cause an xrun. - Fix mute in bluetooth devices bluetooth devices are not paused in idle anymore for improved compatibility. - Codec switching for bluetooth is implemented along with config options to select the codecs manually. - HSP for bluetooth is now disabled by default. Most devices support the newer HFP profile and some devices fail when both are available. - Reduce the amount of events the ALSA plugins emit by bundling them. + PulseAudio server - Implement the suspend command - Fixes volume in sample info - Fix playback of samples, sometimes samples would be clipped short. Also implement the target sink for the sample. - Use rate match to feed samples. This way the latency can be kept to a minimum. - Latency has been tuned some more, more closely emulating pulseaudio behaviour. - Improve default sink/source handling. Make sure all events are sent correctly when defaults change. - Handle underrun better without causing sync issues. Make sure to pause in corked state. - Implement rewind due to seeks, fixes GStreamer seeking.- Do not remove alsa-card-profiles, they are required * Wed Feb 03 2021 Dominique Leuenberger - Provide pulseaudio by pipewire-pulseaudio: there are various packages in the distro that require pulseaudio, but essentially, they should be happy with pipewire-pulseaudio as a replacement. Do not provide the symbol though, as we do not (yet) want to automatically migrate users over. * Thu Jan 21 2021 Bjørn Lie - Add pkgconfig(ldacBT-abr) and pkgconfig(ldacBT-enc) BuildRequires: Build bluetooth ldac codec support. * Wed Jan 20 2021 Antonio Larrosa - Update to version 0.3.20: + Highlights - Latency was reduced in ALSA and PulseAudio and time reporting has improved a lot. - Bluetooth now has a native HFP backed, SBC XQ and mSBC support. - Many bugfixes and improvements, improved device support. + PipeWire improvements - pw-dump can now dump all objects such as Endpoints - pw-dump has a -m option to monitor changes - pw-dump can now dump metadata - pw-stream can now use the rate-match io to exactly produce the required number of samples for the current cycle. When using this feature, a stream can achieve the same low-latency as pw-filter. - spa-acp-tool can now load a custom profile-set and correctly parses the volume updates - There is now a nofail option when loading modules - The connection has been made reentrant to fix some strange random problems with metadata. - Turn some errors into warnings or simply info. - Executables are now built with PIE - S24OE formats should work now (MAudio FastTrack Pro) - Remove mlock warnings. Add support for mlockall with a config option. + Session-manager - There are now config files for bluez and v4l2 modules - Improve ALSA device and node properties - Bluetooth devices have better properties now. - The default device routing has been improved. + Device support - Port priorities are updated for UCM devices - ACP devices notify change in routes in all cases - There is now RW support in ALSA devices to increase compatibility. - Many improvements to Bluetooth. SBC XQ support can now be enabled with a config option. mSBC can be enabled with an option. - Bluetooth devices not expose Routes so that they look more like how PulseAudio handles them - Gracefully handle missing profile-sets - There is now a native HFP backend - Improve card names in some cases. - pause-on-idle is now disabled for ALSA devices. This can reduce pops and clicks when the device is stopped. + ALSA plugin - Use rate-match to reduce the latency - Implement a _delay() function to get smoother timestamps. - Fix property parsing. Fixes volume changes in alsamixer. + PulseAudio server - Use rate-match to reduce the latency. This also reduces the buffering in audioconvert and improves timestamp reporting. - Implement rate changes now that we have rate-match support. - pactl stats will now work - Fix excessive memory usage when a capture client doesn\'t read fast enough. * Wed Jan 13 2021 Frederic Crozat - Update to version 0.3.19: + Highlights - Startup after login should be fixed now with inotify used to wait for permissions. - Channels should be mapped correctly now. - Many bluetooth improvements in LDAC, AptX-HD. AAC was also added. Headsets should work better now. - pipewire-libpulse was removed. It is now completely replaced by pipewire-pulse. - Fix a crasher bug in pipewire-pulse and some memory leaks. - Fix a bug with feedback loop that would cause 100% CPU. - A new pw-top tool to display real-time graph performance. - The example session manager now has config files. - The config file format was changed to use the SPA JSON tokenizer. This makes it more flexible and extensible. + PipeWire improvements - Fix debug of id in format channels - Audioconvert should now remap channels correctly in all cases. - Feedback loops were not scheduled correctly and would cause 100% CPU usage. - Small improvements to the profiler to also log incomplete graph status. - a new tool pw-top was added that prints real-time performance stats of the graph. - the rtkit module now sets the nice level to -11 + Session-manager - The session manager would sometimes link dont-reconnect nodes to another node, which would leak monitor streams in pipewire-pulse. - The session manager now has configuration files. Config files can also be placed in the user home directory to make custom configurations. - The session managers now creates unique device and node names for alsa and v4l2 devices. + Device support - Many improvements in Bluetooth codecs, LDAC stuttering, AptX-HD negotiation, LDAC ABR support - Bluetooth supports AAC audio now. - Many fixes to Bluetooth SCO transport used in headsets. - inotify support in device monitors - ACP was synced with the latest pulseaudio code - Fix a bug in enumeration of device ports. - PulseAudio server - seek flags and offset are now supported, making gstreamer pulse elements work better. - Fix a crasher bug in pipewire-pulse, we sometimes would write too much to the ringbuffer - Fix some memory leaks in error cases. - Fix handling of NULL string to locate default sink/source + JACK layer - Ports can also be found with the aliases now, making qjackctl work in more cases.- Changes from PipeWire 0.3.18: + Highlights - More work in the PulseAudio server. It should be compatible with more applications. - Bluetooth now support extra codecs such as AptX/HD and LDAC. - Support for virtual sources and sink was improved a lot. - Added a new pw-dump tool to dump the objects in JSON formats and for filtering them with tools like jq. - Many more stability fixes and improvements. + PipeWire improvements - Silence some harmless warnings - pw-cli can now be used to set parameters. - Streams now perform the correct channel mapping when linked to non-standard multichannel devices. Previously channels would get swapped. - port, node and device params are now cached in the server. This avoids opening and closing devices whenever some client enumerates formats, which improves performance a lot, especially in cases where opening a device is slow. - Add a command to keep a device open during negotiation. This is used to enumerate and set a format while opening the device just once, improving performance. - The null-sink scheduling was fixed. - A memory corruption bug was fixed in format conversion, this could cause crashes, silent channels or other undefined behaviour. - There is now a simple JSON parser. + Session-manager - Settings files are now stored in JSON. With the json parser this is easier to parse and extend + Device support - Bluetooth now supports additional codecs: LDAC, AptX and AptX HD. LDAC is known to not work very well yet. - ALSA devices will now default to the max supported channels if nothing else is specified. This makes it possible to use 8+ channel cards with the alsa-pcm module, which is not supported with the default alsa-acp module. - Enable mSBC support in oFono. - Add an option to disable hardware mixers - ALSA now improves support for batch devices. - The udev rules had references to Pulseaudio removed in order to not create conflicts. - Fix a potential crash in bluetooth devices when disconnecting. - UCM cards now use HW volume when possible. + PulseAudio server - The id can now be used as the name to locate cards and devices - Report streams with planar formats as well - Better error reporting when stream create fails - module-null-sink can now handle channels, rate and channel_map properties - Add support for 3 types of virtual devices: source, sink and duplex. - set-port was fixed - Some buffer parameters were tweaked to improve performance, compatibility and stuttering with lower latency. - NULL can be used as a name for the device sink/source - Support lookup of monitor names - Set properties more like pulseaudio so that some clients (Teamspeak) don\'t crash anymore- Changes from PipeWire 0.3.17: + Highlights - Fix crasher bug for kwin when screensharing stopped. - Massive improvements and compatibility fixes in the PulseAudio server. - The session manager now has a config directory in /etc/pipewire/media-session.d/ It will look for files there to activate session manager modules. Packagers can use this to only activate the audio modules when the PulseAudio server, libjack.so or the alsa modules are installed. + PipeWire improvements - We now clear hooks before adding them. Some application did not clear them and had random data for the destroy callback. - Return -ENOENT from unknown resources so apps can handle this better. It\'s a common problem when an app tries to introspect and object but it disappeared before the message reached the server. Apps should ignore this. - channelmap information is now passed with the volume settings. - DMABuf is not mmapp()ed anymore with the FLAG_MAP_BUFFERS in the stream or filter. This is because DMABuf usually requires more that just a simple mmap and is better left for the application. - increase the maximum number of ports for a client-node. - adapter and node-factory now support the linger option to keep the objects alive after the creating client disconnected. + Device support - ALSA now handles error in close(), like when unplugging a USB device. + Session-manager - The session manager is now handling DONT_RECONNECT streams without a target node. They get connected to a default node once and then fail to reconnect. - The session manager now exposes the stream setting as metadata. This makes it possible for other components, such as pulse-server to use this information. Information is stored as a json object for easier consumption. - The session manager now has a config directory in /etc/pipewire/media-session.d/ packagers can use this + PulseAudio server - Pulse server now acquire the dbus name. - Improvements in timing and compatibility with many apps. - The stream-restore extension is now implemented so that the event volume can be configured. - Many stability fixes and improvements. - Fix some issues with module-load/unload- Changes from PipeWire 0.3.16: + Highlights - Fix screensharing for old 0.2 clients - Many pulse-server improvements. There is now a pipewire-pulse binary that is the prefered solution for PulseAudio compatibility. The replacement libpulse libraries are now deprecated. This also makes audio in Flatpak work. + PipeWire improvements - Fix cleanup of listeners everywhere. Force remove of listeners in _destroy to avoid crashes. - Add support for a journald logger module. - Various memory leak fixes - Silence some warnings that spammed the logs. - Fix flush in pw_stream. This fixes small glitches when switching streams in music players. - Various FreeBSD fixes and improvements. - Fix some crashes when destroying objects. + Device support - Reload the ALSA configuration when creating a node so that hotplugged devices work in all cases. - Fix memory leaks in ACP library. This also fixes issues where the mixer device was not closed. - Bluetooth now has support for the mSBC codec for SCO source and sink. + pulse-server - Many introspection and compatibility improvements. It should now be as good or better than the replacement library. - Implement sample cache to make notification events work. + JACK layer - handle errors when linking, fixes jack_connect hang when the ports were already linked.- Drop patches do-not-use-snd_pcm_ioplug_hw_avail.patch and fix-memfd_create-call.patch, no longer needed on SLE/Leap which have updated glibc / alsa.- Drop do-not-install-alsa-config-files.patch, remove files at install time instead.- pw-pulse wrapper is gone, remove all mentions of it.- Package pulseaudio replacement in a subpackage and drop pipewire-libpulse-0_3 (pipewire will use pulseaudio libraries directly).- Create an alsa subpackage and move alsa pipewire plugin to this subpackage.
|
|
|