updated wine to newer version, replaced xvfb with weston wayland that is using Xwayland. also switching from WineD3D to inbuilt vulkan support through DXVK which is send to weston using lavapipe instead of llvmpipe

This commit is contained in:
2026-06-13 22:17:22 +01:00
parent cf4c95fe2c
commit 5975979415
5 changed files with 72 additions and 31 deletions
+8 -5
View File
@@ -3,12 +3,15 @@
GStreamer WebRTC Agent for CSS Streaming
Two tracks published to Cloudflare Calls:
- Video: ximagesrc → VP8 → webrtcbin
- Game audio: pulsesrc → Opus → webrtcbin
- Video: ximagesrc (Xwayland :99) → VP8 → webrtcbin
- Game audio: pulsesrc → Opus → webrtcbin
CSS renders via Wine Wayland driver → Weston (Vulkan/DXVK) → Xwayland → X11
ximagesrc captures from Xwayland X11 display :99
Dependencies:
apt: python3-gst-1.0 gstreamer1.0-plugins-bad gstreamer1.0-plugins-good
gstreamer1.0-plugins-ugly gstreamer1.0-libav xdotool
gstreamer1.0-plugins-ugly gstreamer1.0-libav xdotool weston xwayland
pip: requests websockets
"""
@@ -106,7 +109,7 @@ class CSSStreamAgent:
def build_pipeline(self):
pipeline_str = (
# Video: ximagesrc → VP8
# Video: ximagesrc from Xwayland display → VP8
f'ximagesrc display-name={DISPLAY} use-damage=0 ! '
f'video/x-raw,framerate={CAP_FPS}/1,width={CAP_W},height={CAP_H} ! '
f'videoconvert ! '
@@ -130,7 +133,7 @@ class CSSStreamAgent:
f'stun-server=stun://stun.cloudflare.com:3478'
)
log.info(f'Building pipeline {CAP_W}x{CAP_H}@{CAP_FPS}fps')
log.info(f'Building pipeline {CAP_W}x{CAP_H}@{CAP_FPS}fps via Xwayland')
self.pipeline = Gst.parse_launch(pipeline_str)
self.webrtcbin = self.pipeline.get_by_name('webrtcbin')