pipewire merge requestshttps://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests2024-03-28T17:46:04Zhttps://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1953gst: Always use Choice-pod for modifiers2024-03-28T17:46:04ZRobert Madergst: Always use Choice-pod for modifiersIn order to follow the documentation more closely. Also restructure the
code a bit to make it easier to follow.
See also: e3227b2b5 (gst: simplify modifier extraction)
Fixes: f1b75fc6f (gst: Add support for DMA_DRM / explicit modifiers)In order to follow the documentation more closely. Also restructure the
code a bit to make it easier to follow.
See also: e3227b2b5 (gst: simplify modifier extraction)
Fixes: f1b75fc6f (gst: Add support for DMA_DRM / explicit modifiers)https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1946Draft: gst/pipewiresrc: Unconditionally update buffer times2024-03-22T09:20:25ZRobert MaderDraft: gst/pipewiresrc: Unconditionally update buffer timesIn order to make it behave more similar to v4l2src and make it a proper
live source.
Closes https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3910
---
Draft as I'm not sure if this could break other/non-live use-cases.In order to make it behave more similar to v4l2src and make it a proper
live source.
Closes https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3910
---
Draft as I'm not sure if this could break other/non-live use-cases.https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1944Draft: vulkan: Avoid blocking waits on the gpu on blit2024-03-17T21:41:33ZcolumbariusDraft: vulkan: Avoid blocking waits on the gpu on blitThis allows the blit-filter to run in synchronous or asynchronous mode.
In asynchronous mode the blocking wait on the gpu is replaced by
registering a fd from vulkan with the event loop.This allows the blit-filter to run in synchronous or asynchronous mode.
In asynchronous mode the blocking wait on the gpu is replaced by
registering a fd from vulkan with the event loop.https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1927Draft: bluez5:Add support for the broadcast source multiple BIS implementatio...2024-03-27T17:14:37ZsilviubarbulescuDraft: bluez5:Add support for the broadcast source multiple BIS implementation in BlueZ.In BlueZ implementation of broadcast source multiple BISes an endpoint is created at register and a transports will be created for each BIS. Each transport will point to this endpoint. Given this design I moved the creation of the simula...In BlueZ implementation of broadcast source multiple BISes an endpoint is created at register and a transports will be created for each BIS. Each transport will point to this endpoint. Given this design I moved the creation of the simulated device, from the endpoint device discovery to the transport discovery, a new simulated device is created when we detect a new transport for broadcast sink profile.https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1923Draft: bluez5: rate match whole ISO group as one2024-02-26T20:52:43ZP VDraft: bluez5: rate match whole ISO group as oneNow that all nodes in the ISO group set node.group and are scheduled
together with same clock, do rate matching to ISO rate in a better way.
- Pick one node as 'leader' that rate matches as usual
- Other nodes resync playback position ...Now that all nodes in the ISO group set node.group and are scheduled
together with same clock, do rate matching to ISO rate in a better way.
- Pick one node as 'leader' that rate matches as usual
- Other nodes resync playback position with that node (drop samples /
insert silence to align), and use the same rate correction.
- When the driver is one of the nodes of the group, turn off rate
matching in all nodes, as it's not needed.
Playback position resync only occurs when some node fails to be
scheduled, but then we have a playback glitch in any case. Resync occurs
also at playback start.
This avoids TWS left/right playback sync oscillating for a brief time at
playback start or when there are scheduling glitches, as the nodes
previously rate matched independently. (This does not address the HW
issue that causes persistent desync, though.)
----------------------------
I guess they can be one sample off if the resamplers are not in same phase.
<s>To fight Pipewire design less, one could instead have one big ISO group node with channels for all connected devices, and then have front-end nodes that split it to the individual logical device nodes.</s> Different devices in group can have different samplerates, so it has to be separate nodes like now.
- [ ] figure out if common rate matching can work with different samplerates in same grouphttps://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1917Slow consumer hangs the graph.2024-03-07T01:25:24ZAshok SidipotuSlow consumer hangs the graph.I've a gst pipeline which makes a simple pipewire graph of two video nodes one producer and another consumer. Consumer here is running slow and taking up all the buffers in the graph. Producer meanwhile stops producing the output as he s...I've a gst pipeline which makes a simple pipewire graph of two video nodes one producer and another consumer. Consumer here is running slow and taking up all the buffers in the graph. Producer meanwhile stops producing the output as he sees a busy buffer. The graph eventually hangs.
cc @gkiagiaAshok SidipotuAshok Sidipotuhttps://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1886Draft: Create a security policy2024-02-04T17:33:00ZDemi Marie Obenourdemiobenour@gmail.comDraft: Create a security policyThis SECURITY.md is what _I_ would use if PipeWire was _my_ project. I expect it to need changes!
Fixes: #3720This SECURITY.md is what _I_ would use if PipeWire was _my_ project. I expect it to need changes!
Fixes: #3720https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1855Draft: vulkan: compute return from process on invalid buffer id2024-01-22T16:11:46ZcolumbariusDraft: vulkan: compute return from process on invalid buffer id**[WIP]**
Combined with the blit filter the process function of the source is
often called without a valid buffer, which results in a crash. This hack
mitigates this.
MR opened to track the issue. Probably this should be catched in the...**[WIP]**
Combined with the blit filter the process function of the source is
often called without a valid buffer, which results in a crash. This hack
mitigates this.
MR opened to track the issue. Probably this should be catched in the PipeWire spa_node and not in the vulkan part.https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1854Draft: videoconvert: Fallback to dummy converter2024-02-29T15:41:56ZcolumbariusDraft: videoconvert: Fallback to dummy converterVideoadapter will fall back to the dummy converter if the configured
converter fails to load.
Assuming the existence of a converter allows removing all checks for the
existence of the converter and simplifies the adapter to a single
cod...Videoadapter will fall back to the dummy converter if the configured
converter fails to load.
Assuming the existence of a converter allows removing all checks for the
existence of the converter and simplifies the adapter to a single
codepath.
Requires: !1812https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1830Draft: videoconvert: Add vulkan converter, take 22024-02-29T15:44:43ZcolumbariusDraft: videoconvert: Add vulkan converter, take 2This MR creates a videoconvert plugin which can be loaded from the videoadapter (part of !1812).
Based on: !1644
Supersedes: !1704This MR creates a videoconvert plugin which can be loaded from the videoadapter (part of !1812).
Based on: !1644
Supersedes: !1704https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1812Draft: Videoconvert dummy2024-03-13T09:30:53ZcolumbariusDraft: Videoconvert dummyThis MR ~~enables the videoadapter, wrapping each videostream~~(moved to !1853) and creates a dummy converter plugin. This addition of a noop converter will be the fallback (see !1854) if "real" converters, like the vulkan one (!1830) ar...This MR ~~enables the videoadapter, wrapping each videostream~~(moved to !1853) and creates a dummy converter plugin. This addition of a noop converter will be the fallback (see !1854) if "real" converters, like the vulkan one (!1830) are unable to run on the provided hardware.https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1786Draft: bluez5: add LHDC V3 A2DP vendor codec2023-12-02T19:13:59Zanonymix007Draft: bluez5: add LHDC V3 A2DP vendor codecCodec enumerates just fine, but nothing is being played and the following error message is shown:
```
W 16:40:12.664192 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:328:debug_params: params Spa:Enum:ParamId:EnumFormat: 1...Codec enumerates just fine, but nothing is being played and the following error message is shown:
```
W 16:40:12.664192 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:328:debug_params: params Spa:Enum:ParamId:EnumFormat: 1:0 (convert format) no matching params
W 16:40:12.664205 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:335:debug_params: with this filter:
W 16:40:12.664210 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Object: size 192, type Spa:Pod:Object:Param:Format (262147), id Spa:Enum:ParamId:EnumFormat (3)
W 16:40:12.664213 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Prop: key Spa:Pod:Object:Param:Format:mediaType (1), flags 00000000
W 16:40:12.664216 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Id 1 (Spa:Enum:MediaType:audio)
W 16:40:12.664219 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Prop: key Spa:Pod:Object:Param:Format:mediaSubtype (2), flags 00000000
W 16:40:12.664221 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Id 1 (Spa:Enum:MediaSubtype:raw)
W 16:40:12.664224 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Prop: key Spa:Pod:Object:Param:Format:Audio:format (65537), flags 00000000
W 16:40:12.664227 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Choice: type Spa:Enum:Choice:Enum, flags 00000000 20 4
W 16:40:12.664230 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Id 267 (Spa:Enum:AudioFormat:S32LE)
W 16:40:12.664232 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Prop: key Spa:Pod:Object:Param:Format:Audio:rate (65539), flags 00000000
W 16:40:12.664235 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Choice: type Spa:Enum:Choice:None, flags 00000000 24 4
W 16:40:12.664238 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Int 48000
W 16:40:12.664240 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Int 48000
W 16:40:12.664243 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Prop: key Spa:Pod:Object:Param:Format:Audio:channels (65540), flags 00000000
W 16:40:12.664246 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Int 2
W 16:40:12.664249 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Prop: key Spa:Pod:Object:Param:Format:Audio:position (65541), flags 00000000
W 16:40:12.664251 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Array: child.size 4, child.type Spa:Id
W 16:40:12.664254 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Id 3 (Spa:Enum:AudioChannel:FL)
W 16:40:12.664257 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params: Id 4 (Spa:Enum:AudioChannel:FR)
W 16:40:12.664261 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:353:debug_params: unmatched convert format 0:
W 16:40:12.664264 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Object: size 288, type Spa:Pod:Object:Param:Format (262147), id Spa:Enum:ParamId:EnumFormat (3)
W 16:40:12.664266 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Prop: key Spa:Pod:Object:Param:Format:mediaType (1), flags 00000000
W 16:40:12.664269 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 1 (Spa:Enum:MediaType:audio)
W 16:40:12.664271 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Prop: key Spa:Pod:Object:Param:Format:mediaSubtype (2), flags 00000000
W 16:40:12.664274 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 1 (Spa:Enum:MediaSubtype:raw)
W 16:40:12.664276 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Prop: key Spa:Pod:Object:Param:Format:Audio:format (65537), flags 00000000
W 16:40:12.664279 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Choice: type Spa:Enum:Choice:Enum, flags 00000000 116 4
W 16:40:12.664281 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 518 (Spa:Enum:AudioFormat:F32P)
W 16:40:12.664284 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 518 (Spa:Enum:AudioFormat:F32P)
W 16:40:12.664286 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 283 (Spa:Enum:AudioFormat:F32LE)
W 16:40:12.664289 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 284 (Spa:Enum:AudioFormat:F32BE)
W 16:40:12.664291 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 519 (Spa:Enum:AudioFormat:F64P)
W 16:40:12.664294 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 285 (Spa:Enum:AudioFormat:F64LE)
W 16:40:12.664297 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 286 (Spa:Enum:AudioFormat:F64BE)
W 16:40:12.664299 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 516 (Spa:Enum:AudioFormat:S32P)
W 16:40:12.664302 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 267 (Spa:Enum:AudioFormat:S32LE)
W 16:40:12.664305 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 268 (Spa:Enum:AudioFormat:S32BE)
W 16:40:12.664308 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 515 (Spa:Enum:AudioFormat:S24_32P)
W 16:40:12.664310 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 263 (Spa:Enum:AudioFormat:S24_32LE)
W 16:40:12.664313 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 264 (Spa:Enum:AudioFormat:S24_32BE)
W 16:40:12.664317 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 517 (Spa:Enum:AudioFormat:S24P)
W 16:40:12.664320 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 271 (Spa:Enum:AudioFormat:S24LE)
W 16:40:12.664322 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 272 (Spa:Enum:AudioFormat:S24BE)
W 16:40:12.664326 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 514 (Spa:Enum:AudioFormat:S16P)
W 16:40:12.664329 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 259 (Spa:Enum:AudioFormat:S16LE)
W 16:40:12.664331 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 260 (Spa:Enum:AudioFormat:S16BE)
W 16:40:12.664334 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 520 (Spa:Enum:AudioFormat:S8P)
W 16:40:12.664337 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 257 (Spa:Enum:AudioFormat:S8)
W 16:40:12.664340 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 513 (Spa:Enum:AudioFormat:U8P)
W 16:40:12.664342 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 258 (Spa:Enum:AudioFormat:U8)
W 16:40:12.664345 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 287 (Spa:Enum:AudioFormat:ULAW)
W 16:40:12.664348 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Id 288 (Spa:Enum:AudioFormat:ALAW)
W 16:40:12.664350 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Prop: key Spa:Pod:Object:Param:Format:Audio:rate (65539), flags 00000000
W 16:40:12.664353 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Choice: type Spa:Enum:Choice:Range, flags 00000000 28 4
W 16:40:12.664355 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Int 48000
W 16:40:12.664358 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Int 1
W 16:40:12.664360 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Int 2147483647
W 16:40:12.664363 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Prop: key Spa:Pod:Object:Param:Format:Audio:channels (65540), flags 00000000
W 16:40:12.664365 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Choice: type Spa:Enum:Choice:Range, flags 00000000 28 4
W 16:40:12.664368 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Int 2
W 16:40:12.664370 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Int 1
W 16:40:12.664373 spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params: Int 64
W 16:40:12.664392 pw.node ../src/pipewire/impl-node.c:409:node_update_state: (bluez_output.28_6F_40_3A_D4_52.1-92) suspended -> error (Start error: Operation not supported)
```
Codec libraries and headers can be downloaded [here](https://github.com/arkq/bluez-alsa/pull/672#issuecomment-1817877044).
The build process is almost the same as in `INSTALL.md` with the addition of
```console
LHDC_INCLUDE_DIR=/path/to/headers
export C_INCLUDE_PATH=$LHDC_INCLUDE_DIR/liblhdc/include:$LHDC_INCLUDE_DIR/liblhdc/inc
```
before setup.
**UPD** Most of my changes are being recognized as spam. This is **VERY** annoying.https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1760Draft: Fix set state not seated on linked transport2023-11-08T08:46:18ZsilviubarbulescuDraft: Fix set state not seated on linked transportFound issue in transport_acquire_reply linked transport is not sated active because of a typo.Found issue in transport_acquire_reply linked transport is not sated active because of a typo.https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1706Draft: module-raop-sink: Start with GET /info2023-09-27T09:40:07ZChristian GlombekDraft: module-raop-sink: Start with GET /infoThe `features` and `statusFlags` bitfields returned (among other things) by `GET /info` could in the future be used to update the previously discovered properties of the speaker.
Adds a build dependency on libplist. This will also be re...The `features` and `statusFlags` bitfields returned (among other things) by `GET /info` could in the future be used to update the previously discovered properties of the speaker.
Adds a build dependency on libplist. This will also be required for future AirPlay v2 support.
Includes changes from: https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1710
Tested with IKEA Sonos Bookshelf and Apple Homepod.https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1704Draft: videoconvert: Add vulkan converter2024-01-05T11:41:16ZcolumbariusDraft: videoconvert: Add vulkan converterThis work was done as a GSOC 2023 Project to implement a way to convert videoformats in case client capabilities don't overlap.
The goal of the MR is creating a videoconvert plugin leveraging vulkans `vkCmdBlitImage` implemented as a `s...This work was done as a GSOC 2023 Project to implement a way to convert videoformats in case client capabilities don't overlap.
The goal of the MR is creating a videoconvert plugin leveraging vulkans `vkCmdBlitImage` implemented as a `spa_node` based filter in !1644.
Currently it requires manual configuration via `PIPEWIRE_REMOTE=pipewire-1 pw-cli set-param <node-id> PortConfig "{"direction": 0, "mode": 2}"`.
Producers are run in `passtrough` mode, while clients should run in `passtrough` if formats are compatible or `convert` mode if convertion is required.
Instructions:
1. Build the branch and enter the build directory with `ninja -C <builddir> pw-uninstalled`
2. Start the `video-src` example and get the id if the node
3. Start the sink with `PIPEWIRE_NODE=<src-id> video-play`
4. Set the mode of the converter with `pw-cli set-param <sink-id> PortConfig "{"direction": 0, "mode": 2}"`
5. Inspect the configuration with `pw-dump`
Based on:
- !1644
- !1542https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1658Draft: module-raop: Add initial AirPlay v2 support2023-08-08T16:32:42ZChristian GlombekDraft: module-raop: Add initial AirPlay v2 supportTODOs:
- [x] RTSP pair-setup control messages for transient HomeKit Pairing (HKP 4)
- [ ] chacha-encrypt OPTIONS RTSP control messages (headers and body) with 64 bytes shared key
- [ ] chacha-encrypt RTP messages with first 32 bytes of s...TODOs:
- [x] RTSP pair-setup control messages for transient HomeKit Pairing (HKP 4)
- [ ] chacha-encrypt OPTIONS RTSP control messages (headers and body) with 64 bytes shared key
- [ ] chacha-encrypt RTP messages with first 32 bytes of shared keyhttps://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1454Allow overriding the plugged status of a port2023-06-14T17:17:53ZDemi Marie Obenourdemiobenour@gmail.comAllow overriding the plugged status of a portSome users have broken jacks that do not report the plugged-in status.
hdjackretask can work around this, but only on platforms with Intel HD
Audio or compatible sound cards. This provides a general solution that
works for all sound car...Some users have broken jacks that do not report the plugged-in status.
hdjackretask can work around this, but only on platforms with Intel HD
Audio or compatible sound cards. This provides a general solution that
works for all sound cards.
I used an environment variable because this is fairly deep in the code
and I am not sure how to plumb a property there.
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1441pipewire/keys: Add Microphone and Speaker media roles2023-02-22T16:32:16ZJonas Ã…dahlpipewire/keys: Add Microphone and Speaker media rolesIntended to be used for node classification in the context of access
management.Intended to be used for node classification in the context of access
management.https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1409Draft: [WIP] Resolve "PipeWire detection"2023-10-24T07:53:52ZAnthony IlersichDraft: [WIP] Resolve "PipeWire detection"This is intented to solve #1835 based on the discussion in wireplumber!313.
A "session.services" property is added to store a list of available services (e.g. audio, video). If the property is found and is empty in `pw_context_connect`,...This is intented to solve #1835 based on the discussion in wireplumber!313.
A "session.services" property is added to store a list of available services (e.g. audio, video). If the property is found and is empty in `pw_context_connect`, the function blocks until it is signalled that services have become available.
The changes in antonio.ilersich/wireplumber:1835-session-detection populate the session services property and make the monitor scripts activate asynchronously. See wireplumber!441.
There is an issue right now where blocking in `pw_context_connect` seems to prevent the lua scripts from finishing their activation at all.
See also the corresponding issue on SDL: https://github.com/libsdl-org/SDL/issues/5304https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1299gst: try to purge buffers when renegotiating2022-06-30T19:19:56ZJames Hilliardgst: try to purge buffers when renegotiatingTrack dequeued buffer counts and ensure they are flushed before reconnecting stream.
When purging use empty buffers to try and push buffers we need to reclaim out of the pipeline.Track dequeued buffer counts and ensure they are flushed before reconnecting stream.
When purging use empty buffers to try and push buffers we need to reclaim out of the pipeline.