aboutsummaryrefslogtreecommitdiff
path: root/src/pw_utils.rs
AgeCommit message (Collapse)Author
2025-11-24Upgrade to new stable pipewire-rsIvan Molodetskikh
2025-08-27pw_utils: Add session/stream id to logsIvan Molodetskikh
Signed-off-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-04pw_utils: Add Tracy span to queue_after_sync()Ivan Molodetskikh
2025-08-04pw_utils: Set sequence in buffer meta headerIvan Molodetskikh
Useful for debugging.
2025-08-04pw_utils: Remove commented-out unused buffer propsIvan Molodetskikh
2025-08-04pw_utils: Wait for frame completion before queueingIvan Molodetskikh
Without explicit sync, we have no way to signal the PipeWire consumer when the rendering is done. So, wait until it's done before giving it the frame. This should fix flickering screencasts on NVIDIA.
2025-08-04pw_utils: Fill dmabuf strides and offsets at add_buffer()Ivan Molodetskikh
As far as I understand, these don't change.
2025-08-04pw_utils: Store LoopHandleIvan Molodetskikh
2025-08-04pw_utils: Switch to using raw pw_buffersIvan Molodetskikh
We're gonna need to store these in the future, and the lifetime on the pw-rs Buffer prevents us from easily doing that. Besides, we'll need access to metadata which pw-rs doesn't expose yet.
2025-08-04pw_utils: Extract shared state to CastInnerIvan Molodetskikh
2025-08-04pw_utils: Unmark CastState as pubIvan Molodetskikh
2025-08-04pw_utils: Add clarifying comments on maxsize and sizeIvan Molodetskikh
2025-05-16Deal with new Clippy warningsIvan Molodetskikh
2025-03-17Add wait-for-frame-completion-in-pipewire debug flag for NVIDIA screencastsCole Leavitt
2025-03-16Keep buffer size when switching dynamic cast to NothingIvan Molodetskikh
Otherwise, we won't actually clear it because it'll become Pending.
2025-03-15Implement dynamic screencast targetIvan Molodetskikh
2025-03-15Move CastTarget to src/niri.rsIvan Molodetskikh
2025-03-15Store cast Stream ID, use it for Redraw requestIvan Molodetskikh
Unlike StopCast, Redraw targets a specific Cast. Use the stream ID to identify it.
2025-01-10Fix two manual let-elseIvan Molodetskikh
2025-01-04Restart PipeWire on errorsIvan Molodetskikh
This lets you restart pipewire and then get a screencast successfully.
2025-01-02Upgrade `zbus` and `async-io`bbb651
2024-12-30Update Smithay (presentation-time v2)Ivan Molodetskikh
2024-11-23pw: Fix potential crash when disconnecting outputIvan Molodetskikh
2024-08-24Rework PW screencast frame timingIvan Molodetskikh
- Remove the 0.5 ms hack. - Add redraw scheduling to fix stuck frame if the last redrawn frame happened too soon.
2024-08-23pw_utils: Re-create damage tracker on scale changeIvan Molodetskikh
2024-08-23Add damage check to PW screencastsIvan Molodetskikh
Avoids unnecessary frames.
2024-08-06Implement PipeWire DMA-BUF modifier negotiationIvan Molodetskikh
2024-07-26pw: Don't require LINEAR bufferIvan Molodetskikh
It's not needed and apparently doesn't work on NVIDIA together with the rendering flag.
2024-06-28Ignore compositor opacity for window screencastsIvan Molodetskikh
When using opacity as unfocused indicator, it will show up on the screencast, which is undesired. This is not a problem for window screen*shot*s where the window is focused.
2024-06-28Add transparency support to window screencastsIvan Molodetskikh
Turns out it needed to be in a separate pod.
2024-06-28Implement initial window screencastingIvan Molodetskikh
2024-06-21Keep screencast running through size changesIvan Molodetskikh
2024-05-16Update Smithay and other depsIvan Molodetskikh
2024-02-22Fix new warningsIvan Molodetskikh
2024-02-10Update dependenciesIvan Molodetskikh
2024-01-31Stop screencasts on size changesIvan Molodetskikh
2024-01-31Add option to rotate outputsaxtloss
2024-01-18Redraw upon starting PW streamIvan Molodetskikh
Otherwise it may take a while for the first frame to arrive.
2023-10-10Rename ToNiriMsg to ScreenCastToNiriIvan Molodetskikh
2023-09-26Remove LoopDataIvan Molodetskikh
The calloop Smithay update finally lets me do this.
2023-09-26Update SmithayIvan Molodetskikh
2023-09-08Add initial monitor screencast portal implIvan Molodetskikh
DmaBuf monitor screencasting through xdg-dekstop-portal-gnome! Somewhat limited currently, e.g. the cursor is always embedded. But gets most of the job done.