Skip to content

[BUG] Get critical video error (loop), when frontend requests a resolution with width less than 4098px #83

@baxerus

Description

@baxerus

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

I agree the title sounds strange and I agree.
I first had the issue when switching the HiDPI mode off. The frontend was going getting a critical video error... , resetting to default settings and re-connecting. But in a loop forever 😞
I was able to get back the desktop by deleting the Application data in the browsers developer tab. I later found, that setting _useCssScaling back to false also enough (side note: Obviously the resetting to default settings step does not also reset _useCssScaling. Maybe this should get added 😉).

I tried around other stuff. And realized that making the browser window more narrow also caused the issue. While checking the docker logs I noticed that this was happening around 4100 pixel width (height doesn't seem to have any influence 🤷). By using the manual resolution setting, I figured out that the 4098px is the width limit (for some reason)...

I'm pretty sure the 4098px is not a general limit, but somehow relevant on my system. Maybe something with the screen size (3840x2160)???
I will happily deliver more data and/or logs, when told where the relevant stuff can be found!

Browser console output (when working):

universalTouchGamepad.js:862 Universal Touch Gamepad library loaded. Send 'TOUCH_GAMEPAD_SETUP' message to initialize.
index-dMamlh9s.js:171 Canvas internal buffer reset to: 2048x1536
index-dMamlh9s.js:171 Reset canvas CSS to 1024px x 768px, Pos -512,-384, object-fit: fill. Buffer: 2048x1536
index-dMamlh9s.js:80 Setting canvas rendering to 'pixelated' for 1:1 display.
index-dMamlh9s.js:171 Initialized UI in Auto Resolution Mode (defaulting to 1024x768 logical for now)
index-dMamlh9s.js:171 Dynamically added #keyboard-input-assist element.
index-dMamlh9s.js:387 Pre-flight checks passed: Secure context and VideoDecoder API are available.
index-dMamlh9s.js:171 initializeDecoder function assigned to triggerInitializeDecoder.
index-dMamlh9s.js:80 Dashboard: Detected browser language: de-DE, using primary: de
index-dMamlh9s.js:80 Dashboard: Mobile detected via userAgentData.mobile: false
index-dMamlh9s.js:252 [websockets] Connection opened!
index-dMamlh9s.js:252 [websockets] Sent initial settings (resolutions are physical) to server: {webrtc_SCALING_DPI: 96, pixelflux_h264_paintover_burst_frames: 5, webrtc_videoBitRate: 8000, webrtc_videoBufferSize: 0, pixelflux_h264_paintover_crf: 18, …}
index-dMamlh9s.js:252 [websockets] Sent initial clipboard request (cr) to server.
index-dMamlh9s.js:252 [websockets] Started sending client metrics every 500ms.
index-dMamlh9s.js:252 [websockets] Started sending backpressure ACKs every 50ms.
index-dMamlh9s.js:252 [websockets] Switched to websockets mode.
index-dMamlh9s.js:171 Clearing all VNC stripe decoders.
index-dMamlh9s.js:171 All VNC stripe decoders and metadata cleared.
index-dMamlh9s.js:171 Playback AudioContext initialized. Actual sampleRate: 48000 Initial state: suspended
index-dMamlh9s.js:171 Initializing Input system...
index-dMamlh9s.js:171 initializeInput: Auto-resolution mode. Attaching 'resize' event listener for subsequent changes.
index-dMamlh9s.js:171 Canvas internal buffer reset to: 6016x2304
index-dMamlh9s.js:171 Reset canvas CSS to 3008px x 1152px, Pos 0,0, object-fit: fill. Buffer: 6016x2304
index-dMamlh9s.js:171 initializeInput: Canvas style reset to reflect current auto-dimensions: 3008x1152 (logical). Initial resolution was already sent by onopen.
index-dMamlh9s.js:171 initializeInput: Added 'input' and 'keydown' listeners to #keyboard-input-assist.
index-dMamlh9s.js:171 Input system initialized.
index-dMamlh9s.js:171 Received pipelineStatusUpdate message: {type: 'pipelineStatusUpdate', video: true, audio: true}
index-dMamlh9s.js:252 Non-shared mode: Received stream_resolution (ignored for control): 6016x2306
index-dMamlh9s.js:171 Received pipelineStatusUpdate message: {type: 'pipelineStatusUpdate', video: true}
index-dMamlh9s.js:171 Received pipelineStatusUpdate message: {type: 'pipelineStatusUpdate', audio: true}
index-dMamlh9s.js:252 Playback AudioWorkletProcessor initialized and connected.
index-dMamlh9s.js:171 No preferred output device set, using default.
index-dMamlh9s.js:252 [Main] Audio Decoder Worker created and init message sent.
index-dMamlh9s.js:252 [Main] Requesting Audio Decoder Worker to reinitialize its decoder.
index-dMamlh9s.js:252 [Main] Audio Decoder Worker confirmed its decoder is initialized.
index-dMamlh9s.js:252 [Main] Audio Decoder Worker confirmed its decoder is initialized.
index-dMamlh9s.js:171 Processing 1 pending chunks for stripe Y=0
index-dMamlh9s.js:171 Stream started (UI elements hidden).
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. 

(The AudioContext was not allowed repeated a million times after that)

Expected Behavior

  • Narrow browser windows should work
  • No death loop
    • Really resetting all settings to default
    • I would also implement a backoff into the reset mechanism, since the loop is so fast, it is even not possible to look at the setting or try to change them.
      • Something like waiting 1 second for the first reset and than doubling this with every retry (also nicer for the backend, if you e.g. have a multiuser setup)

Steps To Reproduce

  1. Making browser window to narrow (less than 4098px)

Environment

### Frontend:
* **OS:** macOS 14.7.5 (23H527)
* **Browser:** Chrome version 134.0.6998.166 (official build) (x86_64)

### Backend:
* **Container image:** lscr.io/linuxserver/orcaslicer@sha256:247941d28397644fe2d73a8dd8bde4ec133d088c6616353ef7aa53361d9dc4ce (but also had the issue with other images in the past, but rolled back to older KasmVNC based versions)
* **OS:** Ubuntu 24.04.3 LTS (x86_64)
* **Docker:** Docker version 28.4.0, build d8eb465

### How docker service was installed:
* Of course with the distro's packagemanager. After adding the https://download.docker.com/linux/ubuntu repo
* For sure this is no Docker issue

Docker creation

**docker-compose.yml**
(skipping irrelevant, but private parts)

services:
  docker-orcaslicer:
    image: lscr.io/linuxserver/orcaslicer:latest
    container_name: docker-orcaslicer
    restart: unless-stopped
    volumes:
      - ./volumes/config:/config
    devices:
      - /dev/dri:/dev/dri
    ports:
      - 3001:3001
    environment:
      PUID: 1000
      PGID: 1000
      TZ: "Europe/Berlin"
      NO_FULL: "I do not every window to be fullscreen"
    network_mode: bridge
    cpus: 1
    mem_limit: 2000M

Container logs

## Container log snipplet:
Only relevant part. Going into error state (because making browser window to narrow), than 2 (maybe 3) loops and recovery to working state (by making browser window wide again)

docker-orcaslicer  | 2025-09-19T20:19:09.897809212Z INFO:data_websocket:Received resize request: 3008x2304 from ('127.0.0.1', 45724)
docker-orcaslicer  | 2025-09-19T20:19:09.898490441Z INFO:data_websocket:Resize handler: Stopping x264enc (Pixelflux H264) pipeline.
docker-orcaslicer  | 2025-09-19T20:19:09.898888828Z INFO:data_websocket:Stopping X11 x264-striped capture...
docker-orcaslicer  | 2025-09-19T20:19:09.946474257Z Capture loop stopped. X resources released.
docker-orcaslicer  | 2025-09-19T20:19:09.951944434Z INFO:data_websocket:Frame-based backpressure logic task cancelled.
docker-orcaslicer  | 2025-09-19T20:19:09.951994440Z INFO:data_websocket:Frame-based backpressure logic task finished.
docker-orcaslicer  | 2025-09-19T20:19:09.952340970Z INFO:data_websocket:Backpressure task was stopped. Calling _reset_frame_ids_and_notify.
docker-orcaslicer  | 2025-09-19T20:19:09.952366315Z INFO:data_websocket:Resetting frame IDs.
docker-orcaslicer  | 2025-09-19T20:19:09.952379104Z INFO:data_websocket:Broadcasting PIPELINE_RESETTING to 1 client(s).
docker-orcaslicer  | 2025-09-19T20:19:09.952491474Z INFO:gst_app_resize:on_resize_handler attempting resize for: 3008x2304
docker-orcaslicer  | 2025-09-19T20:19:09.952509156Z INFO:gst_app_resize:App dimensions updated to 3008x2304 before xrandr call.
docker-orcaslicer  | 2025-09-19T20:19:09.961446797Z INFO:gst_app_resize:Mode 3008x2304 not found in xrandr list. Attempting to add for screen 'screen'.
docker-orcaslicer  | 2025-09-19T20:19:10.002241953Z INFO:gst_app_resize:Successfully ran: xrandr --newmode 3008x2304 595.25 3008 3256 3584 4160 2304 2307 2317 2386 -hsync +vsync
docker-orcaslicer  | 2025-09-19T20:19:10.009498263Z INFO:gst_app_resize:Successfully ran: xrandr --addmode screen 3008x2304
docker-orcaslicer  | 2025-09-19T20:19:10.009593810Z INFO:gst_app_resize:Applying xrandr mode '3008x2304' for screen 'screen'.
docker-orcaslicer  | 2025-09-19T20:19:10.024919734Z INFO:gst_app_resize:Successfully applied xrandr mode '3008x2304'.
docker-orcaslicer  | 2025-09-19T20:19:10.024985621Z INFO:gst_app_resize:resize_display('3008x2304') reported success.
docker-orcaslicer  | 2025-09-19T20:19:10.024999410Z INFO:data_websocket:Resize handler: Restarting video (x264enc) after successful resize to 3008x2304
docker-orcaslicer  | 2025-09-19T20:19:10.025011975Z INFO:data_websocket:Starting x264enc: 3008x2304 @ 60.0fps, CRF: 25, FullFrame: True
docker-orcaslicer  | 2025-09-19T20:19:10.025024218Z INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 3008, "height": 2304}
docker-orcaslicer  | 2025-09-19T20:19:10.028846479Z INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc').
docker-orcaslicer  | 2025-09-19T20:19:10.028890257Z INFO:data_websocket:x264enc capture started successfully.
docker-orcaslicer  | 2025-09-19T20:19:10.028902940Z INFO:data_websocket:Frame-based backpressure logic task started.
docker-orcaslicer  | 2025-09-19T20:19:10.029680307Z INFO:data_websocket:Client settings received, proceeding with backpressure loop.
docker-orcaslicer  | 2025-09-19T20:19:10.035859424Z X Shared Memory Extension available.
docker-orcaslicer  | 2025-09-19T20:19:10.035927002Z XShm setup complete for 3008x2304.
docker-orcaslicer  | 2025-09-19T20:19:10.036521225Z CPU cores available: 4
docker-orcaslicer  | 2025-09-19T20:19:10.036544676Z Stream settings active -> Res: 3008x2304 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f
docker-orcaslicer  | 2025-09-19T20:19:10.532047624Z INFO:data_websocket:Frame-based backpressure logic task finished.
docker-orcaslicer  | 2025-09-19T20:19:10.602074578Z INFO:data_websocket:Cleaning up Data WS handler for ('127.0.0.1', 45724)...
docker-orcaslicer  | 2025-09-19T20:19:10.611495864Z INFO:data_websocket:No other clients in set after ('127.0.0.1', 45724) disconnected. Marking pipelines for stop.
docker-orcaslicer  | 2025-09-19T20:19:10.611581417Z INFO:data_websocket:Stopping global pipelines due to last client disconnect (('127.0.0.1', 45724)).
docker-orcaslicer  | 2025-09-19T20:19:10.613666475Z INFO:main:Initiating unified pipeline shutdown...
docker-orcaslicer  | 2025-09-19T20:19:10.630473309Z INFO:main:Queueing x264-striped capture stop.
docker-orcaslicer  | 2025-09-19T20:19:10.630603142Z INFO:main:Queueing pcmflux audio capture stop.
docker-orcaslicer  | 2025-09-19T20:19:10.695349835Z INFO:main:Waiting for 2 capture module(s) to stop...
docker-orcaslicer  | 2025-09-19T20:19:10.697513532Z [pcmflux] Stop requested. Cleaning up capture loop...
docker-orcaslicer  | 2025-09-19T20:19:10.698937218Z [pcmflux] Audio capture loop finished. Resources released.
docker-orcaslicer  | 2025-09-19T20:19:10.814373944Z Capture loop stopped. X resources released.
docker-orcaslicer  | 2025-09-19T20:19:10.817687246Z INFO:main:All C++ capture modules have stopped.
docker-orcaslicer  | 2025-09-19T20:19:10.817737651Z INFO:data_websocket:pcmflux audio chunk broadcasting task cancelled.
docker-orcaslicer  | 2025-09-19T20:19:10.817747957Z INFO:data_websocket:pcmflux audio chunk broadcasting task finished.
docker-orcaslicer  | 2025-09-19T20:19:10.817757263Z INFO:main:Unified pipeline shutdown complete.
docker-orcaslicer  | 2025-09-19T20:19:10.817766490Z INFO:data_websocket:Data WS handler for ('127.0.0.1', 45724) finished all cleanup.
docker-orcaslicer  | 2025-09-19T20:19:12.540496047Z INFO:data_websocket:Stats sender: WS connection closed.
docker-orcaslicer  | 2025-09-19T20:19:13.517041370Z INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 45196)
docker-orcaslicer  | 2025-09-19T20:19:13.517111917Z INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 3008, "height": 2304}
docker-orcaslicer  | 2025-09-19T20:19:13.517261246Z INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 45196)
docker-orcaslicer  | 2025-09-19T20:19:13.518809570Z INFO:data_websocket:Attempting to establish PulseAudio connection...
docker-orcaslicer  | 2025-09-19T20:19:13.521620698Z INFO:data_websocket:PulseAudio connection established.
docker-orcaslicer  | 2025-09-19T20:19:13.573406624Z INFO:data_websocket:Applying client settings (initial=True): {'videoBitRate': 8000, 'videoFramerate': 60, 'videoCRF': 25, 'encoder': 'x264enc', 'h264_fullcolor': False, 'h264_streaming_mode': False, 'resizeRemote': True, 'isManualResolutionMode': False, 'manualWidth': 3008, 'manualHeight': 2304, 'audioBitRate': 320000, 'videoBufferSize': 0, 'initialClientWidth': 3008, 'initialClientHeight': 2306, 'jpeg_quality': 60, 'paint_over_jpeg_quality': 90, 'use_cpu': False, 'h264_paintover_crf': 18, 'h264_paintover_burst_frames': 5, 'use_paint_over_quality': True, 'scaling_dpi': 96, 'enableBinaryClipboard': False}
docker-orcaslicer  | 2025-09-19T20:19:13.573493654Z INFO:gst_app_resize:on_resize_handler attempting resize for: 3008x2306
docker-orcaslicer  | 2025-09-19T20:19:13.573504295Z INFO:gst_app_resize:App dimensions updated to 3008x2306 before xrandr call.
docker-orcaslicer  | 2025-09-19T20:19:13.581882497Z INFO:gst_app_resize:Mode 3008x2306 not found in xrandr list. Attempting to add for screen 'screen'.
docker-orcaslicer  | 2025-09-19T20:19:13.592084862Z INFO:gst_app_resize:Successfully ran: xrandr --newmode 3008x2306 595.75 3008 3256 3584 4160 2306 2309 2319 2388 -hsync +vsync
docker-orcaslicer  | 2025-09-19T20:19:13.599813100Z INFO:gst_app_resize:Successfully ran: xrandr --addmode screen 3008x2306
docker-orcaslicer  | 2025-09-19T20:19:13.599866730Z INFO:gst_app_resize:Applying xrandr mode '3008x2306' for screen 'screen'.
docker-orcaslicer  | 2025-09-19T20:19:13.615930969Z INFO:gst_app_resize:Successfully applied xrandr mode '3008x2306'.
docker-orcaslicer  | 2025-09-19T20:19:13.615977718Z INFO:gst_app_resize:resize_display('3008x2306') reported success.
docker-orcaslicer  | 2025-09-19T20:19:13.615988585Z INFO:data_websocket:Applying SCALING_DPI from initial settings: 96
docker-orcaslicer  | 2025-09-19T20:19:13.615999020Z INFO:gst_app_resize:Openbox detected. Applying xrdb for DPI 96.
docker-orcaslicer  | 2025-09-19T20:19:13.616009107Z INFO:gst_app_resize:Wrote 'Xft.dpi:   96' to /config/.Xresources.
docker-orcaslicer  | 2025-09-19T20:19:13.618194944Z INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 3008, "height": 2306}
docker-orcaslicer  | 2025-09-19T20:19:13.659157710Z INFO:gst_app_resize:Successfully loaded /config/.Xresources using xrdb.
docker-orcaslicer  | 2025-09-19T20:19:13.694906216Z INFO:gst_app_resize:Wrote font and DPI settings to /config/.xsettingsd.
docker-orcaslicer  | 2025-09-19T20:19:13.719590218Z INFO:gst_app_resize:Found xsettingsd process with PID: 386.
docker-orcaslicer  | 2025-09-19T20:19:13.722684723Z xsettingsd: Reloading configuration
docker-orcaslicer  | 2025-09-19T20:19:13.723295090Z xsettingsd: Loaded 5 settings from /config/.xsettingsd
docker-orcaslicer  | 2025-09-19T20:19:13.726650148Z INFO:gst_app_resize:Sent SIGHUP to xsettingsd process 386 to reload config.
docker-orcaslicer  | 2025-09-19T20:19:13.727065411Z INFO:data_websocket:Successfully set DPI to 96 from initial settings.
docker-orcaslicer  | 2025-09-19T20:19:13.727401342Z INFO:data_websocket:Attempting to set cursor size to 32 based on initial DPI.
docker-orcaslicer  | 2025-09-19T20:19:13.936230680Z INFO:data_websocket:Successfully set cursor size to 32.
docker-orcaslicer  | 2025-09-19T20:19:13.936401731Z WARNING:data_websocket:Pipeline is inactive for the initial client. Forcing a start.
docker-orcaslicer  | 2025-09-19T20:19:13.936414076Z INFO:data_websocket:Video pipeline for x264enc needs to start (was not active or forced).
docker-orcaslicer  | 2025-09-19T20:19:13.936581550Z INFO:data_websocket:Starting x264enc: 3008x2306 @ 60.0fps, CRF: 25, FullFrame: True
docker-orcaslicer  | 2025-09-19T20:19:13.938989687Z WARNING:data_websocket:Attempting to start backpressure task, but client_settings_received event is not set or None. The task will wait for this event. Ensure it's set when initial client settings are processed.
docker-orcaslicer  | 2025-09-19T20:19:13.939058368Z INFO:data_websocket:Trying to ensure client_settings_received is set for backpressure task start.
docker-orcaslicer  | 2025-09-19T20:19:13.939922168Z INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc').
docker-orcaslicer  | 2025-09-19T20:19:13.939976958Z INFO:data_websocket:x264enc capture started successfully.
docker-orcaslicer  | 2025-09-19T20:19:13.939987332Z INFO:data_websocket:Initial client settings message processed by ws_handler.
docker-orcaslicer  | 2025-09-19T20:19:13.942023011Z INFO:data_websocket:Initial setup: Audio pipeline not yet active, attempting start.
docker-orcaslicer  | 2025-09-19T20:19:13.943197212Z INFO:data_websocket:Starting pcmflux audio pipeline...
docker-orcaslicer  | 2025-09-19T20:19:13.943256798Z INFO:data_websocket:pcmflux settings: device='output.monitor', bitrate=320000, channels=2
docker-orcaslicer  | 2025-09-19T20:19:13.943335913Z INFO:data_websocket:Frame-based backpressure logic task started.
docker-orcaslicer  | 2025-09-19T20:19:13.943345917Z INFO:data_websocket:Client settings received, proceeding with backpressure loop.
docker-orcaslicer  | 2025-09-19T20:19:13.943847128Z X Shared Memory Extension available.
docker-orcaslicer  | 2025-09-19T20:19:13.943885821Z XShm setup complete for 3008x2306.
docker-orcaslicer  | 2025-09-19T20:19:13.943896354Z CPU cores available: 4
docker-orcaslicer  | 2025-09-19T20:19:13.943906101Z Stream settings active -> Res: 3008x2306 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f
docker-orcaslicer  | 2025-09-19T20:19:13.944885553Z INFO:data_websocket:pcmflux audio capture started successfully.
docker-orcaslicer  | 2025-09-19T20:19:13.994225222Z [pcmflux] Attempting to connect to PulseAudio device: output.monitor...
docker-orcaslicer  | 2025-09-19T20:19:13.996643024Z INFO:data_websocket:pcmflux audio chunk broadcasting task started.
docker-orcaslicer  | 2025-09-19T20:19:14.002219269Z [pcmflux] SUCCESS: Connected to PulseAudio.
docker-orcaslicer  | 2025-09-19T20:19:14.002264258Z [pcmflux] SUCCESS: Opus encoder created.
docker-orcaslicer  | 2025-09-19T20:19:14.002274747Z [pcmflux] Capture loop started. Device: output.monitor, Rate: 48000, Channels: 2, Bitrate: 320 kbps, VBR: On, Silence Gate: Off, Debug Logging: Off, PCM Chunk: 3840 bytes
docker-orcaslicer  | 2025-09-19T20:19:14.125633433Z INFO:data_websocket:Received START_VIDEO for encoder: x264enc
docker-orcaslicer  | 2025-09-19T20:19:14.125688782Z INFO:data_websocket:x264enc pipeline is already capturing.
docker-orcaslicer  | 2025-09-19T20:19:14.125924143Z INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio.
docker-orcaslicer  | 2025-09-19T20:19:14.125936698Z INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active.
docker-orcaslicer  | 2025-09-19T20:19:14.366324920Z [pcmflux] First non-silent audio chunk detected! Encoding...
docker-orcaslicer  | 2025-09-19T20:19:14.598728417Z INFO:data_websocket:Cleaning up Data WS handler for ('127.0.0.1', 45196)...
docker-orcaslicer  | 2025-09-19T20:19:14.598765016Z INFO:data_websocket:Last client (('127.0.0.1', 45196)) disconnected. Cancelling frame backpressure task.
docker-orcaslicer  | 2025-09-19T20:19:14.599968447Z INFO:data_websocket:No other clients in set after ('127.0.0.1', 45196) disconnected. Marking pipelines for stop.
docker-orcaslicer  | 2025-09-19T20:19:14.600470916Z INFO:data_websocket:Stopping global pipelines due to last client disconnect (('127.0.0.1', 45196)).
docker-orcaslicer  | 2025-09-19T20:19:14.600740603Z INFO:main:Initiating unified pipeline shutdown...
docker-orcaslicer  | 2025-09-19T20:19:14.612054878Z INFO:main:Queueing x264-striped capture stop.
docker-orcaslicer  | 2025-09-19T20:19:14.612175134Z INFO:main:Queueing pcmflux audio capture stop.
docker-orcaslicer  | 2025-09-19T20:19:14.612189692Z INFO:main:Waiting for 2 capture module(s) to stop...
docker-orcaslicer  | 2025-09-19T20:19:14.655926783Z Capture loop stopped. X resources released.
docker-orcaslicer  | 2025-09-19T20:19:16.367111820Z [pcmflux] Stop requested. Cleaning up capture loop...
docker-orcaslicer  | 2025-09-19T20:19:16.367652475Z [pcmflux] Audio capture loop finished. Resources released.
docker-orcaslicer  | 2025-09-19T20:19:16.368121784Z INFO:main:All C++ capture modules have stopped.
docker-orcaslicer  | 2025-09-19T20:19:16.368530868Z INFO:data_websocket:Frame-based backpressure logic task cancelled.
docker-orcaslicer  | 2025-09-19T20:19:16.368553981Z INFO:data_websocket:Frame-based backpressure logic task finished.
docker-orcaslicer  | 2025-09-19T20:19:16.368749710Z INFO:data_websocket:Backpressure task was stopped. Calling _reset_frame_ids_and_notify.
docker-orcaslicer  | 2025-09-19T20:19:16.369687597Z INFO:data_websocket:Resetting frame IDs.
docker-orcaslicer  | 2025-09-19T20:19:16.369711986Z INFO:data_websocket:Frame IDs reset, but no clients to notify.
docker-orcaslicer  | 2025-09-19T20:19:16.369722345Z INFO:data_websocket:pcmflux audio chunk broadcasting task cancelled.
docker-orcaslicer  | 2025-09-19T20:19:16.369747936Z INFO:data_websocket:pcmflux audio chunk broadcasting task finished.
docker-orcaslicer  | 2025-09-19T20:19:16.369758325Z INFO:main:Unified pipeline shutdown complete.
docker-orcaslicer  | 2025-09-19T20:19:16.369770844Z INFO:data_websocket:Data WS handler for ('127.0.0.1', 45196) finished all cleanup.
docker-orcaslicer  | 2025-09-19T20:19:16.839468634Z INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 45198)
docker-orcaslicer  | 2025-09-19T20:19:16.839763389Z INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 3008, "height": 2306}
docker-orcaslicer  | 2025-09-19T20:19:16.839913195Z INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 45198)
docker-orcaslicer  | 2025-09-19T20:19:16.841494991Z INFO:data_websocket:Attempting to establish PulseAudio connection...
docker-orcaslicer  | 2025-09-19T20:19:16.844923811Z INFO:data_websocket:PulseAudio connection established.
docker-orcaslicer  | 2025-09-19T20:19:16.894435014Z INFO:data_websocket:Applying client settings (initial=True): {'videoBitRate': 8000, 'videoFramerate': 60, 'videoCRF': 25, 'encoder': 'x264enc', 'h264_fullcolor': False, 'h264_streaming_mode': False, 'resizeRemote': True, 'isManualResolutionMode': False, 'manualWidth': 3008, 'manualHeight': 2306, 'audioBitRate': 320000, 'videoBufferSize': 0, 'initialClientWidth': 3008, 'initialClientHeight': 2306, 'jpeg_quality': 60, 'paint_over_jpeg_quality': 90, 'use_cpu': False, 'h264_paintover_crf': 18, 'h264_paintover_burst_frames': 5, 'use_paint_over_quality': True, 'scaling_dpi': 96, 'enableBinaryClipboard': False}
docker-orcaslicer  | 2025-09-19T20:19:16.894493543Z INFO:data_websocket:Applying SCALING_DPI from initial settings: 96
docker-orcaslicer  | 2025-09-19T20:19:16.895489865Z INFO:gst_app_resize:Openbox detected. Applying xrdb for DPI 96.
docker-orcaslicer  | 2025-09-19T20:19:16.896050281Z INFO:gst_app_resize:Wrote 'Xft.dpi:   96' to /config/.Xresources.
docker-orcaslicer  | 2025-09-19T20:19:16.928400743Z INFO:gst_app_resize:Successfully loaded /config/.Xresources using xrdb.
docker-orcaslicer  | 2025-09-19T20:19:16.930770671Z INFO:gst_app_resize:Wrote font and DPI settings to /config/.xsettingsd.
docker-orcaslicer  | 2025-09-19T20:19:16.947063965Z INFO:gst_app_resize:Found xsettingsd process with PID: 386.
docker-orcaslicer  | 2025-09-19T20:19:16.950362655Z xsettingsd: Reloading configuration
docker-orcaslicer  | 2025-09-19T20:19:16.950497232Z xsettingsd: Loaded 5 settings from /config/.xsettingsd
docker-orcaslicer  | 2025-09-19T20:19:16.951363147Z INFO:gst_app_resize:Sent SIGHUP to xsettingsd process 386 to reload config.
docker-orcaslicer  | 2025-09-19T20:19:16.952181708Z INFO:data_websocket:Successfully set DPI to 96 from initial settings.
docker-orcaslicer  | 2025-09-19T20:19:16.952697941Z INFO:data_websocket:Attempting to set cursor size to 32 based on initial DPI.
docker-orcaslicer  | 2025-09-19T20:19:16.975938809Z INFO:data_websocket:Successfully set cursor size to 32.
docker-orcaslicer  | 2025-09-19T20:19:16.976912180Z WARNING:data_websocket:Pipeline is inactive for the initial client. Forcing a start.
docker-orcaslicer  | 2025-09-19T20:19:16.977307438Z INFO:data_websocket:Video pipeline for x264enc needs to start (was not active or forced).
docker-orcaslicer  | 2025-09-19T20:19:16.978363040Z INFO:data_websocket:Starting x264enc: 3008x2306 @ 60.0fps, CRF: 25, FullFrame: True
docker-orcaslicer  | 2025-09-19T20:19:16.981010575Z WARNING:data_websocket:Attempting to start backpressure task, but client_settings_received event is not set or None. The task will wait for this event. Ensure it's set when initial client settings are processed.
docker-orcaslicer  | 2025-09-19T20:19:16.982533082Z INFO:data_websocket:Trying to ensure client_settings_received is set for backpressure task start.
docker-orcaslicer  | 2025-09-19T20:19:16.982581954Z INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc').
docker-orcaslicer  | 2025-09-19T20:19:16.982592653Z INFO:data_websocket:x264enc capture started successfully.
docker-orcaslicer  | 2025-09-19T20:19:16.982602587Z INFO:data_websocket:Initial client settings message processed by ws_handler.
docker-orcaslicer  | 2025-09-19T20:19:16.982612015Z INFO:data_websocket:Initial setup: Audio pipeline not yet active, attempting start.
docker-orcaslicer  | 2025-09-19T20:19:16.982621825Z INFO:data_websocket:Starting pcmflux audio pipeline...
docker-orcaslicer  | 2025-09-19T20:19:16.982631355Z INFO:data_websocket:pcmflux settings: device='output.monitor', bitrate=320000, channels=2
docker-orcaslicer  | 2025-09-19T20:19:16.982641019Z INFO:data_websocket:Frame-based backpressure logic task started.
docker-orcaslicer  | 2025-09-19T20:19:16.982650549Z INFO:data_websocket:Client settings received, proceeding with backpressure loop.
docker-orcaslicer  | 2025-09-19T20:19:16.983100633Z INFO:data_websocket:pcmflux audio capture started successfully.
docker-orcaslicer  | 2025-09-19T20:19:16.983389372Z [pcmflux] Attempting to connect to PulseAudio device: output.monitor...
docker-orcaslicer  | 2025-09-19T20:19:16.985683481Z INFO:data_websocket:pcmflux audio chunk broadcasting task started.
docker-orcaslicer  | 2025-09-19T20:19:16.986836020Z X Shared Memory Extension available.
docker-orcaslicer  | 2025-09-19T20:19:16.986885610Z XShm setup complete for 3008x2306.
docker-orcaslicer  | 2025-09-19T20:19:16.986896230Z CPU cores available: 4
docker-orcaslicer  | 2025-09-19T20:19:16.986905646Z Stream settings active -> Res: 3008x2306 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f
docker-orcaslicer  | 2025-09-19T20:19:16.988389415Z [pcmflux] SUCCESS: Connected to PulseAudio.
docker-orcaslicer  | 2025-09-19T20:19:16.988439568Z [pcmflux] SUCCESS: Opus encoder created.
docker-orcaslicer  | 2025-09-19T20:19:16.988449951Z [pcmflux] Capture loop started. Device: output.monitor, Rate: 48000, Channels: 2, Bitrate: 320 kbps, VBR: On, Silence Gate: Off, Debug Logging: Off, PCM Chunk: 3840 bytes
docker-orcaslicer  | 2025-09-19T20:19:16.998102186Z INFO:data_websocket:Received START_VIDEO for encoder: x264enc
docker-orcaslicer  | 2025-09-19T20:19:16.998172465Z INFO:data_websocket:x264enc pipeline is already capturing.
docker-orcaslicer  | 2025-09-19T20:19:16.998699189Z INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio.
docker-orcaslicer  | 2025-09-19T20:19:16.998715775Z INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active.
docker-orcaslicer  | 2025-09-19T20:19:17.251383955Z INFO:data_websocket:Cleaning up Data WS handler for ('127.0.0.1', 45198)...
docker-orcaslicer  | 2025-09-19T20:19:17.251524177Z INFO:data_websocket:Last client (('127.0.0.1', 45198)) disconnected. Cancelling frame backpressure task.
docker-orcaslicer  | 2025-09-19T20:19:17.252814216Z INFO:data_websocket:No other clients in set after ('127.0.0.1', 45198) disconnected. Marking pipelines for stop.
docker-orcaslicer  | 2025-09-19T20:19:17.253082716Z INFO:data_websocket:Stopping global pipelines due to last client disconnect (('127.0.0.1', 45198)).
docker-orcaslicer  | 2025-09-19T20:19:17.253234271Z INFO:main:Initiating unified pipeline shutdown...
docker-orcaslicer  | 2025-09-19T20:19:17.264071917Z INFO:main:Queueing x264-striped capture stop.
docker-orcaslicer  | 2025-09-19T20:19:17.264707751Z INFO:main:Queueing pcmflux audio capture stop.
docker-orcaslicer  | 2025-09-19T20:19:17.264817827Z INFO:main:Waiting for 2 capture module(s) to stop...
docker-orcaslicer  | 2025-09-19T20:19:17.282318956Z Capture loop stopped. X resources released.
docker-orcaslicer  | 2025-09-19T20:19:18.366680690Z [pcmflux] First non-silent audio chunk detected! Encoding...
docker-orcaslicer  | 2025-09-19T20:19:18.367148729Z [pcmflux] Stop requested. Cleaning up capture loop...
docker-orcaslicer  | 2025-09-19T20:19:18.367694617Z [pcmflux] Audio capture loop finished. Resources released.
docker-orcaslicer  | 2025-09-19T20:19:18.368188142Z INFO:main:All C++ capture modules have stopped.
docker-orcaslicer  | 2025-09-19T20:19:18.368390732Z INFO:data_websocket:Frame-based backpressure logic task cancelled.
docker-orcaslicer  | 2025-09-19T20:19:18.368531335Z INFO:data_websocket:Frame-based backpressure logic task finished.
docker-orcaslicer  | 2025-09-19T20:19:18.368543708Z INFO:data_websocket:Backpressure task was stopped. Calling _reset_frame_ids_and_notify.
docker-orcaslicer  | 2025-09-19T20:19:18.368716961Z INFO:data_websocket:Resetting frame IDs.
docker-orcaslicer  | 2025-09-19T20:19:18.368735604Z INFO:data_websocket:Frame IDs reset, but no clients to notify.
docker-orcaslicer  | 2025-09-19T20:19:18.368753015Z INFO:data_websocket:pcmflux audio chunk broadcasting task cancelled.
docker-orcaslicer  | 2025-09-19T20:19:18.368871523Z INFO:data_websocket:pcmflux audio chunk broadcasting task finished.
docker-orcaslicer  | 2025-09-19T20:19:18.368884600Z INFO:main:Unified pipeline shutdown complete.
docker-orcaslicer  | 2025-09-19T20:19:18.369395296Z INFO:data_websocket:Data WS handler for ('127.0.0.1', 45198) finished all cleanup.
docker-orcaslicer  | 2025-09-19T20:19:18.523478065Z INFO:data_websocket:Stats sender: WS connection closed.
docker-orcaslicer  | 2025-09-19T20:19:20.400205009Z INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 47272)
docker-orcaslicer  | 2025-09-19T20:19:20.400725108Z INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 3008, "height": 2306}
docker-orcaslicer  | 2025-09-19T20:19:20.400750045Z INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 47272)
docker-orcaslicer  | 2025-09-19T20:19:20.403018774Z INFO:data_websocket:Attempting to establish PulseAudio connection...
docker-orcaslicer  | 2025-09-19T20:19:20.409045646Z INFO:data_websocket:PulseAudio connection established.
docker-orcaslicer  | 2025-09-19T20:19:20.439406045Z INFO:data_websocket:Applying client settings (initial=True): {'videoBitRate': 8000, 'videoFramerate': 60, 'videoCRF': 25, 'encoder': 'x264enc', 'h264_fullcolor': False, 'h264_streaming_mode': False, 'resizeRemote': True, 'isManualResolutionMode': False, 'manualWidth': 3008, 'manualHeight': 2306, 'audioBitRate': 320000, 'videoBufferSize': 0, 'initialClientWidth': 6016, 'initialClientHeight': 2306, 'jpeg_quality': 60, 'paint_over_jpeg_quality': 90, 'use_cpu': False, 'h264_paintover_crf': 18, 'h264_paintover_burst_frames': 5, 'use_paint_over_quality': True, 'scaling_dpi': 96, 'enableBinaryClipboard': False}
docker-orcaslicer  | 2025-09-19T20:19:20.439456372Z INFO:gst_app_resize:on_resize_handler attempting resize for: 6016x2306
docker-orcaslicer  | 2025-09-19T20:19:20.439467132Z INFO:gst_app_resize:App dimensions updated to 6016x2306 before xrandr call.
docker-orcaslicer  | 2025-09-19T20:19:20.448931361Z INFO:gst_app_resize:Mode 6016x2306 not found in xrandr list. Attempting to add for screen 'screen'.
docker-orcaslicer  | 2025-09-19T20:19:20.459731256Z INFO:gst_app_resize:Successfully ran: xrandr --newmode 6016x2306 1194.25 6016 6512 7176 8336 2306 2309 2319 2388 -hsync +vsync
docker-orcaslicer  | 2025-09-19T20:19:20.468031830Z INFO:gst_app_resize:Successfully ran: xrandr --addmode screen 6016x2306
docker-orcaslicer  | 2025-09-19T20:19:20.468430565Z INFO:gst_app_resize:Applying xrandr mode '6016x2306' for screen 'screen'.
docker-orcaslicer  | 2025-09-19T20:19:20.479496780Z INFO:gst_app_resize:Successfully applied xrandr mode '6016x2306'.
docker-orcaslicer  | 2025-09-19T20:19:20.480373220Z INFO:gst_app_resize:resize_display('6016x2306') reported success.
docker-orcaslicer  | 2025-09-19T20:19:20.480406100Z INFO:data_websocket:Applying SCALING_DPI from initial settings: 96
docker-orcaslicer  | 2025-09-19T20:19:20.481898377Z INFO:gst_app_resize:Openbox detected. Applying xrdb for DPI 96.
docker-orcaslicer  | 2025-09-19T20:19:20.482574184Z INFO:gst_app_resize:Wrote 'Xft.dpi:   96' to /config/.Xresources.
docker-orcaslicer  | 2025-09-19T20:19:20.484523399Z INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 6016, "height": 2306}
docker-orcaslicer  | 2025-09-19T20:19:20.600429256Z INFO:gst_app_resize:Successfully loaded /config/.Xresources using xrdb.
docker-orcaslicer  | 2025-09-19T20:19:20.601494849Z INFO:gst_app_resize:Wrote font and DPI settings to /config/.xsettingsd.
docker-orcaslicer  | 2025-09-19T20:19:20.625225312Z INFO:gst_app_resize:Found xsettingsd process with PID: 386.
docker-orcaslicer  | 2025-09-19T20:19:20.629117665Z xsettingsd: Reloading configuration
docker-orcaslicer  | 2025-09-19T20:19:20.629883969Z xsettingsd: Loaded 5 settings from /config/.xsettingsd
docker-orcaslicer  | 2025-09-19T20:19:20.630340023Z INFO:gst_app_resize:Sent SIGHUP to xsettingsd process 386 to reload config.
docker-orcaslicer  | 2025-09-19T20:19:20.630375863Z INFO:data_websocket:Successfully set DPI to 96 from initial settings.
docker-orcaslicer  | 2025-09-19T20:19:20.630743380Z INFO:data_websocket:Attempting to set cursor size to 32 based on initial DPI.
docker-orcaslicer  | 2025-09-19T20:19:20.822278548Z INFO:data_websocket:Successfully set cursor size to 32.
docker-orcaslicer  | 2025-09-19T20:19:20.822335377Z WARNING:data_websocket:Pipeline is inactive for the initial client. Forcing a start.
docker-orcaslicer  | 2025-09-19T20:19:20.822346037Z INFO:data_websocket:Video pipeline for x264enc needs to start (was not active or forced).
docker-orcaslicer  | 2025-09-19T20:19:20.822355784Z INFO:data_websocket:Starting x264enc: 6016x2306 @ 60.0fps, CRF: 25, FullFrame: True
docker-orcaslicer  | 2025-09-19T20:19:20.823514172Z WARNING:data_websocket:Attempting to start backpressure task, but client_settings_received event is not set or None. The task will wait for this event. Ensure it's set when initial client settings are processed.
docker-orcaslicer  | 2025-09-19T20:19:20.823567928Z INFO:data_websocket:Trying to ensure client_settings_received is set for backpressure task start.
docker-orcaslicer  | 2025-09-19T20:19:20.823579759Z INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc').
docker-orcaslicer  | 2025-09-19T20:19:20.823590334Z INFO:data_websocket:x264enc capture started successfully.
docker-orcaslicer  | 2025-09-19T20:19:20.823600647Z INFO:data_websocket:Initial client settings message processed by ws_handler.
docker-orcaslicer  | 2025-09-19T20:19:20.823611415Z INFO:data_websocket:Initial setup: Audio pipeline not yet active, attempting start.
docker-orcaslicer  | 2025-09-19T20:19:20.823621917Z INFO:data_websocket:Starting pcmflux audio pipeline...
docker-orcaslicer  | 2025-09-19T20:19:20.823632147Z INFO:data_websocket:pcmflux settings: device='output.monitor', bitrate=320000, channels=2
docker-orcaslicer  | 2025-09-19T20:19:20.825715797Z [pcmflux] Attempting to connect to PulseAudio device: output.monitor...
docker-orcaslicer  | 2025-09-19T20:19:20.830813064Z INFO:data_websocket:Frame-based backpressure logic task started.
docker-orcaslicer  | 2025-09-19T20:19:20.831394438Z X Shared Memory Extension available.
docker-orcaslicer  | 2025-09-19T20:19:20.831419234Z XShm setup complete for 6016x2306.
docker-orcaslicer  | 2025-09-19T20:19:20.831429385Z CPU cores available: 4
docker-orcaslicer  | 2025-09-19T20:19:20.831438572Z Stream settings active -> Res: 6016x2306 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f
docker-orcaslicer  | 2025-09-19T20:19:20.831565370Z INFO:data_websocket:Client settings received, proceeding with backpressure loop.
docker-orcaslicer  | 2025-09-19T20:19:20.833895908Z [pcmflux] SUCCESS: Connected to PulseAudio.
docker-orcaslicer  | 2025-09-19T20:19:20.833979832Z [pcmflux] SUCCESS: Opus encoder created.
docker-orcaslicer  | 2025-09-19T20:19:20.833990550Z [pcmflux] Capture loop started. Device: output.monitor, Rate: 48000, Channels: 2, Bitrate: 320 kbps, VBR: On, Silence Gate: Off, Debug Logging: Off, PCM Chunk: 3840 bytes
docker-orcaslicer  | 2025-09-19T20:19:20.834445201Z INFO:data_websocket:pcmflux audio capture started successfully.
docker-orcaslicer  | 2025-09-19T20:19:20.839665370Z INFO:data_websocket:pcmflux audio chunk broadcasting task started.
docker-orcaslicer  | 2025-09-19T20:19:20.846238535Z INFO:data_websocket:Received START_VIDEO for encoder: x264enc
docker-orcaslicer  | 2025-09-19T20:19:20.846291493Z INFO:data_websocket:x264enc pipeline is already capturing.
docker-orcaslicer  | 2025-09-19T20:19:20.846321755Z INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio.
docker-orcaslicer  | 2025-09-19T20:19:20.846332117Z INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active.
docker-orcaslicer  | 2025-09-19T20:19:21.847228156Z INFO:data_websocket:Stats sender: WS connection closed.
docker-orcaslicer  | 2025-09-19T20:19:22.336820014Z INFO:data_websocket:Frame-based backpressure logic task finished.
docker-orcaslicer  | 2025-09-19T20:19:22.369635669Z [pcmflux] First non-silent audio chunk detected! Encoding...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions