Software Screen Capture not working when HDR is enabled under Gnome
HyperHDR-21.0.0.0-Backup-2025-03-26.json
Steps to reproduce
- Enable Software Screen Capture
- Enable HDR under a Gnome Wayland Session
What is expected?
The screen should be grabbed correctly and the screen content should be visible in live video under LED visualization
What is actually happening?
LEDs do not change color according to the contents of the screen. When looking at live video, the screen capture does work but is extremely dark, barely anything is visible. When HDR is turned off in Gnome display settings screen capture works as expected and screen content is visible in live video.
Screenshot of a test image taken from LED visualization:
This is the original image that was displayed on that screen:
System
HyperHDR Server:
- Build: (HEAD detached at v21.0.0.0) (Awawa-24e1675/803162c-1741515688)
- Build time: Mar 9 2025 10:35:55
- Git Remote: https://github.com/awawa-dev/HyperHDR
- Version: 21.0.0.0
- UI Lang: en (BrowserLang: de-DE)
- Avail Capt: Linux (V4L2)
- Database: read/write
HyperHDR Server OS:
- Distribution: Arch Linux
- Architecture: x86_64
- CPU Model: AMD Ryzen 5 5600X 6-Core Processor
- CPU Type: 33
- Kernel: linux (6.13.8-arch1-1 (WS: 64))
- Qt Version: 5.15.16
- OpenSSL: OpenSSL 3.4.0 22 Oct 2024
- Browser: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Log:
2025-03-26T21:05:54.116Z [CORE] TTY is not attached to the log output
2025-03-26T21:05:54.124Z [MAIN] Database path: '/home/thomas/.hyperhdr/db/hyperhdr.db', readonlyMode = disabled
2025-03-26T21:05:54.124Z [MAIN] Starting HyperHdr - 21.0.0.0, (HEAD detached at v21.0.0.0) (Awawa-24e1675/803162c-1741515688), built: Mar 9 2025:10:35:55
2025-03-26T21:05:54.124Z [MAIN] Set user data path to '/home/thomas/.hyperhdr'
2025-03-26T21:05:54.124Z [INSTANCE_CFG] Loading instance configuration
2025-03-26T21:05:54.450Z [DB] Database opened: /home/thomas/.hyperhdr/db/hyperhdr.db
2025-03-26T21:05:54.453Z [INSTANCE_CFG] Settings database initialized
2025-03-26T21:05:54.515Z [SOUND_GRABBER] Sound device is disabled
2025-03-26T21:05:54.538Z [JSONSERVER] (JsonServer.cpp:26) Created new instance
2025-03-26T21:05:54.538Z [JSONSERVER] Started on port 19444
2025-03-26T21:05:54.539Z [SSDP] (SSDPHandler.cpp:31) SSDPHandler is initialized
2025-03-26T21:05:54.531Z [V4L2:auto] (GrabberWrapper.cpp:53) Starting the grabber wrapper
2025-03-26T21:05:54.532Z [PIPEWIRE_SYSTEM:AUTO] Loaded Pipewire proxy library for screen capturing
2025-03-26T21:05:54.532Z [HYPERHDR0] Starting the instance
2025-03-26T21:05:54.532Z [INSTANCE_CFG0] Loading instance configuration
2025-03-26T21:05:54.532Z [DB] Database opened: /home/thomas/.hyperhdr/db/hyperhdr.db
2025-03-26T21:05:54.533Z [PIPEWIRE_SYSTEM:AUTO] Restarting video grabber is now blocked due to reloading of the configuration
2025-03-26T21:05:54.533Z [PIPEWIRE_SYSTEM:AUTO] (Grabber.cpp:276) Set new width: 512, height: 512 for capture
2025-03-26T21:05:54.533Z [PIPEWIRE_SYSTEM:AUTO] (Grabber.cpp:452) setWidthHeight preparing to restarting video grabber 0
2025-03-26T21:05:54.533Z [PIPEWIRE_SYSTEM:AUTO] Delayed restart of the grabber due to change of the capturing resolution
2025-03-26T21:05:54.533Z [PIPEWIRE_SYSTEM:AUTO] Delayed restart of the grabber due to change of the framerate
2025-03-26T21:05:54.533Z [PIPEWIRE_SYSTEM:AUTO] Signal detection is now enabled
2025-03-26T21:05:54.533Z [PIPEWIRE_SYSTEM:AUTO] (Grabber.cpp:238) Set hardware acceleration to enabled
2025-03-26T21:05:54.533Z [PIPEWIRE_SYSTEM:AUTO] Delayed restart of the grabber due to change of the hardware acceleration
2025-03-26T21:05:54.533Z [SIGNAL_OLD] (DetectionManual.cpp:84) Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
2025-03-26T21:05:54.533Z [SIGNAL_OLD] (DetectionManual.cpp:74) Signal threshold set to: {12, 12, 12} and frames: 200
2025-03-26T21:05:54.533Z [PIPEWIRE_SYSTEM:AUTO] (Grabber.cpp:497) setDeviceVideoStandard preparing to restart video grabber. Old: '' new: 'auto'
2025-03-26T21:05:54.533Z [PIPEWIRE_SYSTEM:AUTO] Delayed restart of the grabber due to change of selected device
2025-03-26T21:05:54.543Z [INSTANCE_CFG0] Settings database initialized
2025-03-26T21:05:54.543Z [COMPONENTCTRL0] (ComponentController.cpp:27) ComponentController is initialized. Components are ENABLED
2025-03-26T21:05:54.543Z [MUXER0] (Muxer.cpp:54) Muxer initialized
2025-03-26T21:05:54.543Z [BLACKBORDER] Set mode to: default
2025-03-26T21:05:54.543Z [IMAGETOLED_MNG0] (ImageToLedManager.cpp:192) Set LED mapping type to advanced
2025-03-26T21:05:54.543Z [IMAGETOLED_MNG0] (ImageToLedManager.cpp:176) setSparseProcessing to 0
2025-03-26T21:05:54.543Z [IMAGETOLED_MNG0] (ImageToLedManager.cpp:103) ImageToLedManager initialized
2025-03-26T21:05:54.543Z [CHANNEL_WHITE0] (ChannelCalibration.cpp:57) Target: [255, 180, 170, active], Correction: 255
2025-03-26T21:05:54.543Z [CHANNEL_YELLOW0] (ChannelCalibration.cpp:57) Target: [255, 180, 0, active], Correction: 255
2025-03-26T21:05:54.543Z [COLORSPACE_CALIBRATION0] classicMode: no, gammas:[1.50, 1.50, 1.50], saturation: 1.00, luminance: 1.00, backLight: [enabled, threshold: 1, colored: yes]
2025-03-26T21:05:54.543Z [LED_CALIBRATION0] (LedCalibration.cpp:101) Calibration config '0' for LED segment: [0, 36]
2025-03-26T21:05:54.543Z [HYPERHDR0] Led strip RGB order is: rgb
2025-03-26T21:05:54.543Z [SMOOTHING0] High resolution clock is NOT STEADY!
2025-03-26T21:05:54.543Z [SMOOTHING0] Clearing queued colors before: enabling
2025-03-26T21:05:54.543Z [SMOOTHING0] Smoothing queue is cleared
2025-03-26T21:05:54.543Z [COMPONENTCTRL0] Smoothing: enabled
2025-03-26T21:05:54.543Z [SMOOTHING0] Creating config (0) => type: Alternative, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 32, antiFlickStep: 2, antiFlickTime: 250
2025-03-26T21:05:54.543Z [SMOOTHING0] Clearing queued colors before: enabling. Smoothing configuration changed: restarting timer.
2025-03-26T21:05:54.543Z [SMOOTHING0] Smoothing queue is cleared
2025-03-26T21:05:54.543Z [SMOOTHING0] Selecting config (0) => type: Alternative, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 32, antiFlickStep: 2, antiFlickTime: 250
2025-03-26T21:05:54.543Z [SMOOTHING0] Selecting config (0) => type: Alternative, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 32, antiFlickStep: 2, antiFlickTime: 250
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] Start LedDevice 'adalight'.
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:336) deviceConfig: [{"awa_mode":false,"colorOrder":"rgb","currentLedCount":37,"delayAfterConnect":0,"lightberry_apa102_mode":false,"maxRetry":0,"output":"ttyACM0","rate":115200,"refreshTime":20,"smoothingRefreshTime":20,"type":"adalight"}]
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] Ignoring user LED refresh rate. Forcing smoothing refresh rate = 50.00 Hz
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:422) Refresh rate = 50.00 Hz
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:372) Device is not ready to start a timer
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:432) Refresh interval updated to 20ms
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:50) DeviceType : adalight
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:51) LedCount : 37
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:52) RefreshTime : 20
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:67) Device name : ttyACM0
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:68) Auto selection: 0
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:69) Baud rate : 115200
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:70) ESP handshake : OFF
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:71) Force ESP/Pico Detection : OFF
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:72) Delayed open : 0
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:73) Retry limit : 0
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] The refresh timer is enabled ('Refresh time' > 0) and may limit the performance of the LED driver. Ignore this error if you set it on purpose for some reason (but you almost never need it).
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (DriverSerialAdalight.cpp:87) Adalight header for 37 leds: Ada 0x00 0x24 0x71
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:246) Enable the device
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] Opening UART: ttyACM0
2025-03-26T21:05:54.551Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:209) _serialPort.open(QIODevice::ReadWrite): ttyACM0, Baud rate [115200]bps
2025-03-26T21:05:54.581Z [HYPER_MANAGER] HyperHDR instance 'First LED instance' has been started
2025-03-26T21:05:54.551Z [HYPERHDR0] The instance is running
2025-03-26T21:05:54.551Z [MUXER0] Register new input 'System/SYSTEMGRABBER' with priority 245 as inactive
2025-03-26T21:05:54.551Z [COMPONENTCTRL0] System capture device: enabled
2025-03-26T21:05:54.551Z [PIPEWIRE_SYSTEM:AUTO] (PipewireGrabber.cpp:161) init
2025-03-26T21:05:54.551Z [PIPEWIRE_SYSTEM:AUTO] (PipewireGrabber.cpp:186) Forcing auto discovery device
2025-03-26T21:05:54.551Z [PIPEWIRE_SYSTEM:AUTO] (PipewireGrabber.cpp:191) Auto discovery set to Pipewire System Dialog selection
2025-03-26T21:05:54.551Z [PIPEWIRE_SYSTEM:AUTO] *************************************************************************************************
2025-03-26T21:05:54.551Z [PIPEWIRE_SYSTEM:AUTO] Starting Pipewire grabber. Selected: 'Pipewire System Dialog selection' (1) max width: 512 (512) @ 10 fps
2025-03-26T21:05:54.551Z [PIPEWIRE_SYSTEM:AUTO] *************************************************************************************************
2025-03-26T21:05:54.551Z [DB] Database opened: /home/thomas/.hyperhdr/db/hyperhdr.db
2025-03-26T21:05:54.551Z [PIPEWIRE_SYSTEM:AUTO] Loading restoration token: ************************7d4d32588f01
2025-03-26T21:05:54.553Z [PIPEWIRE_SYSTEM:AUTO] Started
2025-03-26T21:05:54.572Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:214) portName: ttyACM0
2025-03-26T21:05:54.572Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:215) systemLocation: /dev/ttyACM0
2025-03-26T21:05:54.572Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:216) description: SparkFun Pro Micro
2025-03-26T21:05:54.572Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:217) manufacturer: SparkFun
2025-03-26T21:05:54.572Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:218) productIdentifier: 0x9206
2025-03-26T21:05:54.572Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:219) vendorIdentifier: 0x1b4f
2025-03-26T21:05:54.572Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:220) serialNumber:
2025-03-26T21:05:54.577Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:63) Switch on
2025-03-26T21:05:54.577Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:139) Power On
2025-03-26T21:05:54.577Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:366) Starting timer with interval = 20ms
2025-03-26T21:05:54.577Z [COMPONENTCTRL0] LED device: enabled
2025-03-26T21:05:54.577Z [SMOOTHING0] Using alternative smoothing input (0)
2025-03-26T21:05:54.577Z [EFFECTENGINE0] Run effect "Rainbow swirl fast" on channel 0
2025-03-26T21:05:54.577Z [EFFECTENGINE0] (EffectEngine.cpp:92) Start the effect: name [Rainbow swirl fast]
2025-03-26T21:05:54.577Z [MUXER0] Register new input 'System/EFFECT' with priority 0 as inactive
2025-03-26T21:05:54.581Z [HYPERHDR0] Boot effect: animation set to 'Rainbow swirl fast' [started]
2025-03-26T21:05:54.581Z [EFFECT0(Rainbo...)] Begin playing the effect with priority: 0
2025-03-26T21:05:54.581Z [MUXER0] Priority 0 is now active
2025-03-26T21:05:54.581Z [MUXER0] Set visible priority to 0
2025-03-26T21:05:54.581Z [SMOOTHING0] Clearing queued colors before: enabling. Smoothing configuration changed: restarting timer.
2025-03-26T21:05:54.581Z [SMOOTHING0] Smoothing queue is cleared
2025-03-26T21:05:54.581Z [SMOOTHING0] Selecting config (1) => type: Linear, pause: false, settlingTime: 200ms, interval: 40ms (25Hz), antiFlickTres: 0, antiFlickStep: 0, antiFlickTime: 0
2025-03-26T21:05:54.581Z [SMOOTHING0] Using linear smoothing input (1)
2025-03-26T21:05:54.582Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:380) Stopping refresh timer
2025-03-26T21:05:54.582Z [HYPERHDR0] New priority[0], previous [255]
2025-03-26T21:05:54.582Z [HYPERHDR0] New source available -> switch LED-Device on
2025-03-26T21:05:54.582Z [LEDDEVICE0_ADALIGHT] Ignoring user LED refresh rate. Forcing smoothing refresh rate = 25,00 Hz
2025-03-26T21:05:54.582Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:422) Refresh rate = 25,00 Hz
2025-03-26T21:05:54.582Z [SMOOTHING0] Clearing queued colors before: enabling
2025-03-26T21:05:54.582Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:366) Starting timer with interval = 40ms
2025-03-26T21:05:54.582Z [SMOOTHING0] Smoothing queue is cleared
2025-03-26T21:05:54.582Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:432) Refresh interval updated to 40ms
2025-03-26T21:05:54.582Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:447) LED refresh interval adjustment caused by smoothing configuration change to 40ms (proposed: 40ms)
2025-03-26T21:05:54.582Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:246) Enable the device
2025-03-26T21:05:54.582Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:224) setBackLightEnabled: 0
2025-03-26T21:05:54.582Z [IMAGETOLED_MNG0] Total index number is: 680 (memory: 680). User sparse processing is: disabled, image size: 80 x 45, area number: 37
2025-03-26T21:05:54.582Z [SMOOTHING0] Using linear smoothing input (1)
2025-03-26T21:05:54.634Z [V4L2:AUTO] Found capture device: /dev/video0
2025-03-26T21:05:54.634Z [V4L2:AUTO] (V4L2Grabber.cpp:425) Device has 'brightness' control => min: -64, max: 64, default: 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] (V4L2Grabber.cpp:431) Device has 'contrast' control => min: 0, max: 95, default: 1
2025-03-26T21:05:54.634Z [V4L2:AUTO] (V4L2Grabber.cpp:437) Device has 'saturation' control => min: 0, max: 100, default: 64
2025-03-26T21:05:54.634Z [V4L2:AUTO] (V4L2Grabber.cpp:443) Device has 'hue' control => min: -2000, max: 2000, default: 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 30 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 25 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 20 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 15 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 10 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1024 x 576 @ 30 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1024 x 576 @ 25 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1024 x 576 @ 20 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1024 x 576 @ 15 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1024 x 576 @ 10 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 30 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 25 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 20 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 15 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 10 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 30 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 25 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 20 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 15 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 10 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 30 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 25 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 20 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 15 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 10 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 30 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 25 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 20 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 15 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 10 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 600 @ 30 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 600 @ 25 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 600 @ 20 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 600 @ 15 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 600 @ 10 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1280 x 720 @ 30 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1280 x 720 @ 25 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1280 x 720 @ 20 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1280 x 720 @ 15 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1280 x 720 @ 10 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1600 x 896 @ 30 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1600 x 896 @ 25 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1600 x 896 @ 20 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1600 x 896 @ 15 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1600 x 896 @ 10 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1920 x 1080 @ 30 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1920 x 1080 @ 25 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1920 x 1080 @ 20 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1920 x 1080 @ 15 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1920 x 1080 @ 10 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 2560 x 1440 @ 30 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 2560 x 1440 @ 25 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 2560 x 1440 @ 20 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 2560 x 1440 @ 15 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 2560 x 1440 @ 10 fps mjpeg input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 30 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 25 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 20 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 15 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 10 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1024 x 576 @ 7 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 30 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 25 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 20 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 15 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 10 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 30 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 25 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 20 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 15 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 10 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 30 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 25 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 20 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 15 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 10 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 25 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 20 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 15 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 600 @ 15 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1280 x 720 @ 7 fps yuyv input 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] (V4L2Grabber.cpp:102) P010 was supported on the build machine
2025-03-26T21:05:54.634Z [V4L2:AUTO] Restarting video grabber is now blocked due to reloading of the configuration
2025-03-26T21:05:54.634Z [V4L2:AUTO] Cropping image: width=0 height=0; crop: left=0 right=0 top=0 bottom=0
2025-03-26T21:05:54.634Z [V4L2:auto] (GrabberWrapper.cpp:180) CEC keycode. Start: 0, stop: 0
2025-03-26T21:05:54.634Z [V4L2:AUTO] (Grabber.cpp:390) setBrightnessContrastSaturationHue nothing changed
2025-03-26T21:05:54.634Z [V4L2:AUTO] (V4L2Grabber.cpp:143) setHdrToneMappingMode to: Disabled
2025-03-26T21:05:54.634Z [AUTOTONEMAPPING] Tone mapping is currently: disabled
2025-03-26T21:05:54.634Z [V4L2:AUTO] (Grabber.cpp:299) setFpsSoftwareDecimation to: 1
2025-03-26T21:05:54.634Z [SIGNAL_OLD] (DetectionManual.cpp:84) Signal detection area set to: 0,250000,0,250000 x 0,750000,0,750000
2025-03-26T21:05:54.634Z [SIGNAL_OLD] (DetectionManual.cpp:74) Signal threshold set to: {12, 12, 12} and frames: 200
2025-03-26T21:05:54.634Z [SIGNAL_AUTO] (DetectionAutomatic.cpp:375) Automatic signal detection -> errorTolerance: 9, modelTolerance: 90, sleepTime: 5000, wakeTime: 1000
2025-03-26T21:05:54.634Z [V4L2:AUTO] (Grabber.cpp:497) setDeviceVideoStandard preparing to restart video grabber. Old: '' new: 'auto'
2025-03-26T21:05:54.634Z [V4L2:AUTO] Delayed restart of the grabber due to change of selected device
2025-03-26T21:05:54.634Z [V4L2:AUTO] (Grabber.cpp:317) Force encoding to: NO_CHANGE (old: NO_CHANGE)
2025-03-26T21:05:54.634Z [V4L2:AUTO] setQFrameDecimation is now: disabled
2025-03-26T21:05:54.634Z [AUTOTONEMAPPING] Enabled: no, time to enable: 30s, time to disable: 500ms, thresholds: { 180, 175, 160}
2025-03-26T21:05:54.634Z [FLATBUFSERVER] Tone mapping: 0
2025-03-26T21:05:54.635Z [FLATBUFSERVER] Started on port 19400
2025-03-26T21:05:54.635Z [WEBSERVER] Initialize Webserver
2025-03-26T21:05:54.635Z [FLATBUFSERVER] Could not start local domain socket server 'hyperhdr-domain'
2025-03-26T21:05:54.635Z [FLATBUFSERVER] Tone mapping: 0
2025-03-26T21:05:54.635Z [FLATBUFSERVER] NV12 quarter of frame mode: 0
2025-03-26T21:05:54.636Z [WEBSERVER] Apply Webserver settings
2025-03-26T21:05:54.636Z [WEBSERVER] Set document root to: :/www
2025-03-26T21:05:54.636Z [WEBSERVER] Started: 'HyperHDR WebServer (HTTP)' on port: 8090
2025-03-26T21:05:54.636Z [SSDP] (SSDPHandler.cpp:93) The local address is empty
2025-03-26T21:05:54.636Z [WEBSERVER] Initialize Webserver
2025-03-26T21:05:54.636Z [WEBSERVER] Apply Webserver settings
2025-03-26T21:05:54.636Z [WEBSERVER] Set document root to: :/www
2025-03-26T21:05:54.662Z [SMOOTHING0] Using linear smoothing procedure (1)
2025-03-26T21:05:54.865Z [WEBSERVER] Setup SSL certificate
2025-03-26T21:05:54.865Z [WEBSERVER] Setup private SSL key
2025-03-26T21:05:54.865Z [WEBSERVER] Started: 'HyperHDR WebServer (HTTPS)' on port: 8092
2025-03-26T21:05:54.865Z [SSDP] (SSDPHandler.cpp:42) SSDPHandler is initializing
2025-03-26T21:05:54.865Z [SSDP] (SSDPHandler.cpp:183) The local address is: 192.168.178.50
2025-03-26T21:05:54.865Z [SSDP] (SSDPServer.cpp:94) Initialize the SSDP server
2025-03-26T21:05:54.865Z [SSDP] Starting the SSDP server
2025-03-26T21:05:54.866Z [NETFORWARDER] Forwarder has changed state to disabled
2025-03-26T21:05:54.885Z [PIPEWIRE_SYSTEM:AUTO] Portal protocol version: 5
2025-03-26T21:05:54.885Z [PIPEWIRE_SYSTEM:AUTO] Saving restoration token: ************************7d4d32588f01
2025-03-26T21:05:54.885Z [MUXER0] Priority 245 is now active
2025-03-26T21:05:55.374Z [WEBSERVER] Web server resources initialized: /usr/share/hyperhdr/bin/../lib/web_resources.rcc
2025-03-26T21:05:56.156Z [NET_DISCOVERY] Found ESP board at ttyUSB0:-1 (CP2102 USB to UART Bridge Controller)
2025-03-26T21:05:56.138Z [SERVICE_mDNS] Starting the network discovery thread
2025-03-26T21:05:57.584Z [EFFECT0(Rainbo...)] The effect quits with priority: 0
2025-03-26T21:05:57.584Z [MUXER0] Removed source priority 0
2025-03-26T21:05:57.584Z [MUXER0] Set visible priority to 245
2025-03-26T21:05:57.584Z [SMOOTHING0] Clearing queued colors before: enabling. Smoothing configuration changed: restarting timer.
2025-03-26T21:05:57.584Z [SMOOTHING0] Smoothing queue is cleared
2025-03-26T21:05:57.584Z [SMOOTHING0] Selecting config (0) => type: Alternative, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 32, antiFlickStep: 2, antiFlickTime: 250
2025-03-26T21:05:57.584Z [SMOOTHING0] Using alternative smoothing input (0)
2025-03-26T21:05:57.584Z [HYPERHDR0] New priority[245], previous [0]
2025-03-26T21:05:57.584Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:380) Stopping refresh timer
2025-03-26T21:05:57.584Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:224) setBackLightEnabled: 1
2025-03-26T21:05:57.584Z [EFFECTENGINE0] Effect 'Rainbow swirl fast' has finished.
2025-03-26T21:05:57.584Z [LEDDEVICE0_ADALIGHT] Ignoring user LED refresh rate. Forcing smoothing refresh rate = 50,00 Hz
2025-03-26T21:05:57.584Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:422) Refresh rate = 50,00 Hz
2025-03-26T21:05:57.584Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:366) Starting timer with interval = 20ms
2025-03-26T21:05:57.584Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:432) Refresh interval updated to 20ms
2025-03-26T21:05:57.584Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:447) LED refresh interval adjustment caused by smoothing configuration change to 20ms (proposed: 20ms)
2025-03-26T21:05:57.584Z [EFFECT0(Rainbo...)] Effect named: 'Rainbow swirl fast' is deleted
2025-03-26T21:05:57.586Z [IMAGETOLED_MNG0] Total index number is: 26752 (memory: 26752). User sparse processing is: disabled, image size: 512 x 288, area number: 37
2025-03-26T21:05:57.624Z [SMOOTHING0] Using alternative smoothing procedure (0)
2025-03-26T21:06:07.653Z [WEBSOCKET] (WebSocketClient.cpp:40) New connection from ::1
2025-03-26T21:06:14.786Z [SIGNAL_OLD] Signal lost
2025-03-26T21:06:15.746Z [MUXER0] Priority 245 is now inactive
2025-03-26T21:06:15.746Z [MUXER0] Set visible priority to 255
2025-03-26T21:06:15.746Z [HYPERHDR0] New priority[255], previous [245]
2025-03-26T21:06:15.746Z [HYPERHDR0] No source left -> switch LED-Device off
2025-03-26T21:06:15.746Z [SMOOTHING0] Clearing queued colors before: disabling
2025-03-26T21:06:15.746Z [SMOOTHING0] Smoothing queue is cleared
2025-03-26T21:06:15.746Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:296) Disable the device
2025-03-26T21:06:15.746Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:380) Stopping refresh timer
2025-03-26T21:06:15.746Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:224) setBackLightEnabled: 0
2025-03-26T21:06:15.746Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:89) Switch off
2025-03-26T21:06:15.746Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:543) Set LED strip to black/power off
2025-03-26T21:06:15.747Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:146) Flush was successful
2025-03-26T21:06:15.752Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:164) Serial port is closed: ttyACM0
2025-03-26T21:06:15.752Z [COMPONENTCTRL0] LED device: disabled
2025-03-26T21:06:26.589Z [WEBSOCKET] (HyperAPI.cpp:1097) message: [{"command":"leddevice","ledDeviceType":"adalight","subcommand":"discover","tan":105}]
2025-03-26T21:06:26.609Z [WEBSOCKET] (HyperAPI.cpp:1121) response: [{"devices":[{"name":"Auto","value":"auto"},{"name":"CP2102 USB to UART Bridge Controller (/dev/ttyUSB0)","value":"ttyUSB0"},{"name":"SparkFun Pro Micro (/dev/ttyACM0)","value":"ttyACM0"},{"name":" (/dev/ttyS0)","value":"ttyS0"},{"name":" (/dev/ttyS1)","value":"ttyS1"},{"name":" (/dev/ttyS10)","value":"ttyS10"},{"name":" (/dev/ttyS11)","value":"ttyS11"},{"name":" (/dev/ttyS12)","value":"ttyS12"},{"name":" (/dev/ttyS13)","value":"ttyS13"},{"name":" (/dev/ttyS14)","value":"ttyS14"},{"name":" (/dev/ttyS15)","value":"ttyS15"},{"name":" (/dev/ttyS16)","value":"ttyS16"},{"name":" (/dev/ttyS17)","value":"ttyS17"},{"name":" (/dev/ttyS18)","value":"ttyS18"},{"name":" (/dev/ttyS19)","value":"ttyS19"},{"name":" (/dev/ttyS2)","value":"ttyS2"},{"name":" (/dev/ttyS20)","value":"ttyS20"},{"name":" (/dev/ttyS21)","value":"ttyS21"},{"name":" (/dev/ttyS22)","value":"ttyS22"},{"name":" (/dev/ttyS23)","value":"ttyS23"},{"name":" (/dev/ttyS24)","value":"ttyS24"},{"name":" (/dev/ttyS25)","value":"ttyS25"},{"name":" (/de
2025-03-26T21:06:49.871Z [PIPEWIRE_SYSTEM:AUTO] Restarting video grabber is now blocked due to reloading of the configuration
2025-03-26T21:06:49.871Z [PIPEWIRE_SYSTEM:AUTO] Signal detection is now disabled
2025-03-26T21:06:49.871Z [SIGNAL_OLD] (DetectionManual.cpp:84) Signal detection area set to: 0,250000,0,250000 x 0,750000,0,750000
2025-03-26T21:06:49.871Z [SIGNAL_OLD] (DetectionManual.cpp:74) Signal threshold set to: {0, 0, 0} and frames: 50
2025-03-26T21:06:49.886Z [MUXER0] Priority 245 is now active
2025-03-26T21:06:49.886Z [MUXER0] Set visible priority to 245
2025-03-26T21:06:49.886Z [HYPERHDR0] New priority[245], previous [255]
2025-03-26T21:06:49.886Z [HYPERHDR0] New source available -> switch LED-Device on
2025-03-26T21:06:49.886Z [SMOOTHING0] Clearing queued colors before: enabling
2025-03-26T21:06:49.886Z [SMOOTHING0] Smoothing queue is cleared
2025-03-26T21:06:49.886Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:246) Enable the device
2025-03-26T21:06:49.886Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:224) setBackLightEnabled: 1
2025-03-26T21:06:49.886Z [LEDDEVICE0_ADALIGHT] Opening UART: ttyACM0
2025-03-26T21:06:49.886Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:209) _serialPort.open(QIODevice::ReadWrite): ttyACM0, Baud rate [115200]bps
2025-03-26T21:06:49.905Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:214) portName: ttyACM0
2025-03-26T21:06:49.905Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:215) systemLocation: /dev/ttyACM0
2025-03-26T21:06:49.905Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:216) description: SparkFun Pro Micro
2025-03-26T21:06:49.905Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:217) manufacturer: SparkFun
2025-03-26T21:06:49.905Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:218) productIdentifier: 0x9206
2025-03-26T21:06:49.905Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:219) vendorIdentifier: 0x1b4f
2025-03-26T21:06:49.905Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:220) serialNumber:
2025-03-26T21:06:49.910Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:63) Switch on
2025-03-26T21:06:49.910Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:139) Power On
2025-03-26T21:06:49.910Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:366) Starting timer with interval = 20ms
2025-03-26T21:06:49.910Z [COMPONENTCTRL0] LED device: enabled
2025-03-26T21:06:49.910Z [SMOOTHING0] Using alternative smoothing input (0)
2025-03-26T21:06:49.950Z [SMOOTHING0] Using alternative smoothing procedure (0)
2025-03-26T21:07:48.338Z [V4L2:AUTO] setHdrToneMappingMode to: enable, but the LUT file is currently unloaded
2025-03-26T21:07:48.338Z [AUTOTONEMAPPING] Tone mapping is currently: enabled
2025-03-26T21:07:48.338Z [FLATBUFSERVER] Tone mapping: 0
2025-03-26T21:07:48.338Z [COMPONENTCTRL0] HDR (global): enabled
2025-03-26T21:07:54.186Z [PERFORMANCE] [INSTANCE0: FPS = 10.00, processed = 600], [LED0: FPS = 50.00, send = 3000, processed = 3000, dropped = 0]
2025-03-26T21:07:54.762Z [V4L2:AUTO] (V4L2Grabber.cpp:143) setHdrToneMappingMode to: Disabled
2025-03-26T21:07:54.762Z [FLATBUFSERVER] Tone mapping: 0
2025-03-26T21:07:54.762Z [AUTOTONEMAPPING] Tone mapping is currently: disabled
2025-03-26T21:07:54.762Z [COMPONENTCTRL0] HDR (global): disabled
2025-03-26T21:07:55.555Z [V4L2:AUTO] setHdrToneMappingMode to: enable, but the LUT file is currently unloaded
2025-03-26T21:07:55.555Z [FLATBUFSERVER] Tone mapping: 0
2025-03-26T21:07:55.555Z [AUTOTONEMAPPING] Tone mapping is currently: enabled
2025-03-26T21:07:55.555Z [COMPONENTCTRL0] HDR (global): enabled
2025-03-26T21:08:54.186Z [PERFORMANCE] [INSTANCE0: FPS = 10.02, processed = 601], [LED0: FPS = 50.00, send = 3000, processed = 3000, dropped = 0]
2025-03-26T21:09:54.186Z [PERFORMANCE] [INSTANCE0: FPS = 10.00, processed = 600], [LED0: FPS = 50.00, send = 3000, processed = 3000, dropped = 0]
2025-03-26T21:09:59.434Z [WEBSOCKET] (WebSocketClient.cpp:189) send close: 1000
2025-03-26T21:09:59.664Z [WEBSOCKET] (WebSocketClient.cpp:40) New connection from ::1
2025-03-26T21:10:45.259Z [WEBSOCKET] (HyperAPI.cpp:946) log streaming activated for client ::1
2025-03-26T21:10:54.186Z [PERFORMANCE] [INSTANCE0: FPS = 10.00, processed = 600], [LED0: FPS = 50.00, send = 3000, processed = 3000, dropped = 0]
Hi Not sure if we can do something about because capturing still working only returns black images. Most likely limitation of the pipewire on your setup which we depend on.
Thank you for the quick response! I also tried screen capture via Pipewire in OBS and it works fine there even with HDR enabled in Gnome, so it seems to be possible somehow. I also noticed that when I started screen capture in OBS my LEDs showed the correct colors for a second, so that seemed to have done something that fixed it for a short moment.
It seems to me that when HDR is enabled the pictures that come from pipewire may be using a different color space and need to be mapped accordingly.
It is reproducible on my System and only happens when I enable HDR in Gnome. I would look into it myself but I have no experience in C++
Try to run HyperHDR from the command line. There should be more information about the screen grabbing process.
I looked into it some more, it seems to be a common problem when taking screenshots/recordings while HDR is enabled and even happens on Windows: https://www.reddit.com/r/OLED_Gaming/comments/vrd544/win_11_hdr_causing_screenshot_to_be_washed_out_on/
Snipping tool has an option to compensate for it, so it seems to be possible to adjust the colors.
There was also a similar problem in KDE when HDR is enabled: https://bugs.kde.org/show_bug.cgi?id=496185
This is the output when I run from the command line:
22:08:01.210 INSTANCE_CFG : <WARNING> Config Fix: [root].mqtt.disableApiAccess: Create property: disableApiAccess with value: False
22:08:01.210 INSTANCE_CFG : <WARNING> Config Fix: [root].systemGrabber.reorder_displays: Create property: reorder_displays with value: 0
22:08:01.221 INSTANCE_CFG : <INFO> Settings database initialized
22:08:01.226 SOUND_GRABBER : <INFO> Sound device is disabled
22:08:01.242 V4L2:auto : <DEBUG> GrabberWrapper.cpp:53:GrabberWrapper() | Starting the grabber wrapper
22:08:01.243 PIPEWIRE_SYSTEM:PIPEWI : <INFO> Loaded Pipewire proxy library for screen capturing
22:08:01.243 HYPERHDR0 : <INFO> Starting the instance
22:08:01.243 INSTANCE_CFG0 : <INFO> Loading instance configuration
22:08:01.243 DB : <INFO> Database opened: /home/thomas/.hyperhdr/db/hyperhdr.db
Portal.ScreenCast: protocol version = 5
22:08:01.244 PIPEWIRE_SYSTEM:PIPEWI : <INFO> Restarting video grabber is now blocked due to reloading of the configuration
22:08:01.244 PIPEWIRE_SYSTEM:PIPEWI : <DEBUG> Grabber.cpp:276:trySetWidthHeight() | Set new width: 512, height: 512 for capture
22:08:01.244 PIPEWIRE_SYSTEM:PIPEWI : <DEBUG> Grabber.cpp:452:setWidthHeight() | setWidthHeight preparing to restarting video grabber 0
22:08:01.244 PIPEWIRE_SYSTEM:PIPEWI : <INFO> Delayed restart of the grabber due to change of the capturing resolution
22:08:01.244 PIPEWIRE_SYSTEM:PIPEWI : <INFO> Delayed restart of the grabber due to change of the framerate
22:08:01.244 PIPEWIRE_SYSTEM:PIPEWI : <DEBUG> Grabber.cpp:238:enableHardwareAcceleration() | Set hardware acceleration to enabled
22:08:01.244 PIPEWIRE_SYSTEM:PIPEWI : <INFO> Delayed restart of the grabber due to change of the hardware acceleration
22:08:01.244 SIGNAL_OLD : <DEBUG> DetectionManual.cpp:84:setSignalDetectionOffset() | Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
22:08:01.244 SIGNAL_OLD : <DEBUG> DetectionManual.cpp:74:setSignalThreshold() | Signal threshold set to: {0, 0, 0} and frames: 50
22:08:01.244 PIPEWIRE_SYSTEM:PIPEWI : <DEBUG> Grabber.cpp:497:setDeviceVideoStandard() | setDeviceVideoStandard preparing to restart video grabber. Old: '' new: 'Pipewire System Dialog selection'
22:08:01.244 PIPEWIRE_SYSTEM:PIPEWI : <INFO> Delayed restart of the grabber due to change of selected device
22:08:01.247 JSONSERVER : <DEBUG> JsonServer.cpp:26:JsonServer() | Created new instance
22:08:01.247 JSONSERVER : <INFO> Started on port 19444
22:08:01.248 SSDP : <DEBUG> SSDPHandler.cpp:31:SSDPHandler() | SSDPHandler is initialized
22:08:01.253 INSTANCE_CFG0 : <INFO> Settings database initialized
22:08:01.253 COMPONENTCTRL0 : <DEBUG> ComponentController.cpp:27:ComponentController() | ComponentController is initialized. Components are ENABLED
22:08:01.254 MUXER0 : <DEBUG> Muxer.cpp:54:Muxer() | Muxer initialized
22:08:01.254 BLACKBORDER : <INFO> Set mode to: default
22:08:01.254 IMAGETOLED_MNG0 : <DEBUG> ImageToLedManager.cpp:192:setLedMappingType() | Set LED mapping type to advanced
22:08:01.254 IMAGETOLED_MNG0 : <DEBUG> ImageToLedManager.cpp:176:setSparseProcessing() | setSparseProcessing to 0
22:08:01.254 IMAGETOLED_MNG0 : <DEBUG> ImageToLedManager.cpp:103:ImageToLedManager() | ImageToLedManager initialized
22:08:01.254 CHANNEL_WHITE0 : <DEBUG> ChannelCalibration.cpp:57:ChannelCalibration() | Target: [255, 180, 170, active], Correction: 255
22:08:01.254 CHANNEL_YELLOW0 : <DEBUG> ChannelCalibration.cpp:57:ChannelCalibration() | Target: [255, 180, 0, active], Correction: 255
22:08:01.254 COLORSPACE_CALIBRATION : <INFO> classicMode: no, gammas:[1.50, 1.50, 1.50], saturation: 1.00, luminance: 1.00, backLight: [enabled, threshold: 1, colored: yes]
22:08:01.254 LED_CALIBRATION0 : <DEBUG> LedCalibration.cpp:101:setAdjustmentForLed() | Calibration config '0' for LED segment: [0, 36]
22:08:01.254 HYPERHDR0 : <INFO> Led strip RGB order is: rgb
22:08:01.254 SMOOTHING0 : <WARNING> High resolution clock is NOT STEADY!
22:08:01.254 SMOOTHING0 : <INFO> Clearing queued colors before: enabling
22:08:01.254 SMOOTHING0 : <INFO> Smoothing queue is cleared
22:08:01.254 COMPONENTCTRL0 : <INFO> Smoothing: enabled
22:08:01.254 SMOOTHING0 : <INFO> Creating config (0) => type: Alternative, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 32, antiFlickStep: 2, antiFlickTime: 250
22:08:01.254 SMOOTHING0 : <INFO> Clearing queued colors before: enabling. Smoothing configuration changed: restarting timer.
22:08:01.254 SMOOTHING0 : <INFO> Smoothing queue is cleared
22:08:01.254 SMOOTHING0 : <INFO> Selecting config (0) => type: Alternative, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 32, antiFlickStep: 2, antiFlickTime: 250
22:08:01.254 SMOOTHING0 : <INFO> Selecting config (0) => type: Alternative, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 32, antiFlickStep: 2, antiFlickTime: 250
22:08:01.260 LEDDEVICE0_ADALIGHT : <INFO> Start LedDevice 'adalight'.
22:08:01.260 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:336:init() | deviceConfig: [{"awa_mode":false,"colorOrder":"rgb","currentLedCount":37,"delayAfterConnect":0,"lightberry_apa102_mode":false,"maxRetry":0,"output":"ttyACM0","rate":115200,"refreshTime":20,"smoothingRefreshTime":20,"type":"adalight"}]
22:08:01.260 LEDDEVICE0_ADALIGHT : <WARNING> Ignoring user LED refresh rate. Forcing smoothing refresh rate = 50,00 Hz
22:08:01.260 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:422:setRefreshTime() | Refresh rate = 50,00 Hz
22:08:01.260 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:372:startRefreshTimer() | Device is not ready to start a timer
22:08:01.260 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:432:setRefreshTime() | Refresh interval updated to 20ms
22:08:01.260 HYPERHDR0 : <INFO> The instance is running
22:08:01.260 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:50:init() | DeviceType : adalight
22:08:01.260 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:51:init() | LedCount : 37
22:08:01.261 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:52:init() | RefreshTime : 20
22:08:01.261 MUXER0 : <INFO> Register new input 'System/SYSTEMGRABBER' with priority 245 as inactive
22:08:01.261 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:67:init() | Device name : ttyACM0
22:08:01.261 COMPONENTCTRL0 : <INFO> System capture device: enabled
22:08:01.261 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:68:init() | Auto selection: 0
22:08:01.261 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:69:init() | Baud rate : 115200
22:08:01.261 PIPEWIRE_SYSTEM:PIPEWI : <DEBUG> PipewireGrabber.cpp:161:init() | init
22:08:01.261 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:70:init() | ESP handshake : OFF
22:08:01.261 PIPEWIRE_SYSTEM:PIPEWI : <INFO> *************************************************************************************************
22:08:01.261 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:71:init() | Force ESP/Pico Detection : OFF
22:08:01.261 PIPEWIRE_SYSTEM:PIPEWI : <INFO> Starting Pipewire grabber. Selected: 'Pipewire System Dialog selection' (1) max width: 512 (512) @ 10 fps
22:08:01.261 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:72:init() | Delayed open : 0
22:08:01.261 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:73:init() | Retry limit : 0
22:08:01.261 PIPEWIRE_SYSTEM:PIPEWI : <INFO> *************************************************************************************************
22:08:01.261 LEDDEVICE0_ADALIGHT : <WARNING> The refresh timer is enabled ('Refresh time' > 0) and may limit the performance of the LED driver. Ignore this error if you set it on purpose for some reason (but you almost never need it).
22:08:01.261 LEDDEVICE0_ADALIGHT : <DEBUG> DriverSerialAdalight.cpp:87:CreateHeader() | Adalight header for 37 leds: Ada 0x00 0x24 0x71
22:08:01.261 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:246:enable() | Enable the device
22:08:01.261 LEDDEVICE0_ADALIGHT : <INFO> Opening UART: ttyACM0
22:08:01.261 DB : <INFO> Database opened: /home/thomas/.hyperhdr/db/hyperhdr.db
22:08:01.261 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:209:tryOpen() | _serialPort.open(QIODevice::ReadWrite): ttyACM0, Baud rate [115200]bps
22:08:01.261 PIPEWIRE_SYSTEM:PIPEWI : <INFO> Loading restoration token: ************************7d4d32588f01
Pipewire: initialization invoked. Cleaning up first...
Pipewire: driver is closed now
Sender: 1_379
Requested FPS: 10
Pipewire: CreateSession finished
22:08:01.262 PIPEWIRE_SYSTEM:PIPEWI : <INFO> Started
Pipewire: Got response from portal CreateSession
Pipewire: Has restoration token: 7d4d32588f01
Pipewire: SelectSources finished
Pipewire: Got response from portal SelectSources
Pipewire: Start finished
22:08:01.280 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:214:tryOpen() | portName: ttyACM0
22:08:01.280 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:215:tryOpen() | systemLocation: /dev/ttyACM0
22:08:01.280 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:216:tryOpen() | description: SparkFun Pro Micro
22:08:01.280 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:217:tryOpen() | manufacturer: SparkFun
22:08:01.280 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:218:tryOpen() | productIdentifier: 0x9206
22:08:01.280 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:219:tryOpen() | vendorIdentifier: 0x1b4f
22:08:01.280 LEDDEVICE0_ADALIGHT : <DEBUG> ProviderSerial.cpp:220:tryOpen() | serialNumber:
22:08:01.285 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:63:switchOn() | Switch on
22:08:01.285 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:139:powerOn() | Power On
22:08:01.285 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:366:startRefreshTimer() | Starting timer with interval = 20ms
22:08:01.285 COMPONENTCTRL0 : <INFO> LED device: enabled
22:08:01.285 SMOOTHING0 : <INFO> Using alternative smoothing input (0)
22:08:01.285 EFFECTENGINE0 : <INFO> Run effect "Rainbow swirl fast" on channel 0
22:08:01.285 EFFECTENGINE0 : <DEBUG> EffectEngine.cpp:92:runEffectScript() | Start the effect: name [Rainbow swirl fast]
22:08:01.285 MUXER0 : <INFO> Register new input 'System/EFFECT' with priority 0 as inactive
22:08:01.286 HYPERHDR0 : <INFO> Boot effect: animation set to 'Rainbow swirl fast' [started]
22:08:01.286 EFFECT0(Rainbo...) : <INFO> Begin playing the effect with priority: 0
22:08:01.286 MUXER0 : <INFO> Priority 0 is now active
22:08:01.286 MUXER0 : <INFO> Set visible priority to 0
22:08:01.286 SMOOTHING0 : <INFO> Clearing queued colors before: enabling. Smoothing configuration changed: restarting timer.
22:08:01.286 SMOOTHING0 : <INFO> Smoothing queue is cleared
22:08:01.286 SMOOTHING0 : <INFO> Selecting config (1) => type: Linear, pause: false, settlingTime: 200ms, interval: 40ms (25Hz), antiFlickTres: 0, antiFlickStep: 0, antiFlickTime: 0
22:08:01.286 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:380:stopRefreshTimer() | Stopping refresh timer
22:08:01.286 SMOOTHING0 : <INFO> Using linear smoothing input (1)
22:08:01.286 HYPERHDR0 : <INFO> New priority[0], previous [255]
22:08:01.286 HYPERHDR0 : <INFO> New source available -> switch LED-Device on
22:08:01.286 LEDDEVICE0_ADALIGHT : <WARNING> Ignoring user LED refresh rate. Forcing smoothing refresh rate = 25,00 Hz
22:08:01.286 SMOOTHING0 : <INFO> Clearing queued colors before: enabling
22:08:01.286 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:422:setRefreshTime() | Refresh rate = 25,00 Hz
22:08:01.286 SMOOTHING0 : <INFO> Smoothing queue is cleared
22:08:01.286 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:366:startRefreshTimer() | Starting timer with interval = 40ms
22:08:01.286 COLORSPACE_CALIBRATION : <DEBUG> ColorSpaceCalibration.cpp:224:setBackLightEnabled() | setBackLightEnabled: 0
22:08:01.286 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:432:setRefreshTime() | Refresh interval updated to 40ms
22:08:01.286 IMAGETOLED_MNG0 : <INFO> Total index number is: 680 (memory: 680). User sparse processing is: disabled, image size: 80 x 45, area number: 37
22:08:01.286 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:447:smoothingRestarted() | LED refresh interval adjustment caused by smoothing configuration change to 40ms (proposed: 40ms)
22:08:01.286 SMOOTHING0 : <INFO> Using linear smoothing input (1)
22:08:01.286 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:246:enable() | Enable the device
22:08:01.291 HYPER_MANAGER : <INFO> HyperHDR instance 'First LED instance' has been started
THE SLEEP HANDLER IS REGISTERED!
22:08:01.345 V4L2:AUTO : <INFO> Found capture device: /dev/video0
22:08:01.345 V4L2:AUTO : <DEBUG> V4L2Grabber.cpp:425:enumerateV4L2devices() | Device has 'brightness' control => min: -64, max: 64, default: 0
22:08:01.345 V4L2:AUTO : <DEBUG> V4L2Grabber.cpp:431:enumerateV4L2devices() | Device has 'contrast' control => min: 0, max: 95, default: 1
22:08:01.345 V4L2:AUTO : <DEBUG> V4L2Grabber.cpp:437:enumerateV4L2devices() | Device has 'saturation' control => min: 0, max: 100, default: 64
22:08:01.345 V4L2:AUTO : <DEBUG> V4L2Grabber.cpp:443:enumerateV4L2devices() | Device has 'hue' control => min: -2000, max: 2000, default: 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 30 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 25 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 20 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 15 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 10 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1024 x 576 @ 30 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1024 x 576 @ 25 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1024 x 576 @ 20 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1024 x 576 @ 15 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1024 x 576 @ 10 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 30 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 25 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 20 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 15 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 10 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 30 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 25 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 20 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 15 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 10 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 30 fps mjpeg input 0
22:08:01.345 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 25 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 20 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 15 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 10 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 30 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 25 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 20 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 15 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 10 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 600 @ 30 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 600 @ 25 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 600 @ 20 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 600 @ 15 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 600 @ 10 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1280 x 720 @ 30 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1280 x 720 @ 25 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1280 x 720 @ 20 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1280 x 720 @ 15 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1280 x 720 @ 10 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1600 x 896 @ 30 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1600 x 896 @ 25 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1600 x 896 @ 20 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1600 x 896 @ 15 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1600 x 896 @ 10 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1920 x 1080 @ 30 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1920 x 1080 @ 25 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1920 x 1080 @ 20 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1920 x 1080 @ 15 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1920 x 1080 @ 10 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 2560 x 1440 @ 30 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 2560 x 1440 @ 25 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 2560 x 1440 @ 20 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 2560 x 1440 @ 15 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 2560 x 1440 @ 10 fps mjpeg input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 30 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 25 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 20 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 15 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 480 @ 10 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1024 x 576 @ 7 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 30 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 25 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 20 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 15 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 352 x 288 @ 10 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 30 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 25 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 20 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 15 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 424 x 240 @ 10 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 30 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 25 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 20 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 15 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 640 x 360 @ 10 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 25 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 20 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 480 @ 15 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 800 x 600 @ 15 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <INFO> Hama C-800 Pro QHD: Hama C-800 (video0) [/dev/video0] 1280 x 720 @ 7 fps yuyv input 0
22:08:01.346 V4L2:AUTO : <DEBUG> V4L2Grabber.cpp:102:V4L2Grabber() | P010 was supported on the build machine
22:08:01.346 V4L2:AUTO : <INFO> Restarting video grabber is now blocked due to reloading of the configuration
22:08:01.346 V4L2:AUTO : <INFO> Cropping image: width=0 height=0; crop: left=0 right=0 top=0 bottom=0
22:08:01.346 V4L2:auto : <DEBUG> GrabberWrapper.cpp:180:setCecStartStop() | CEC keycode. Start: 0, stop: 0
22:08:01.346 V4L2:AUTO : <DEBUG> Grabber.cpp:390:setBrightnessContrastSaturationHue() | setBrightnessContrastSaturationHue nothing changed
22:08:01.346 V4L2:AUTO : <DEBUG> V4L2Grabber.cpp:143:setHdrToneMappingEnabled() | setHdrToneMappingMode to: Disabled
22:08:01.346 AUTOTONEMAPPING : <INFO> Tone mapping is currently: disabled
22:08:01.346 V4L2:AUTO : <DEBUG> Grabber.cpp:299:setFpsSoftwareDecimation() | setFpsSoftwareDecimation to: 1
22:08:01.346 SIGNAL_OLD : <DEBUG> DetectionManual.cpp:84:setSignalDetectionOffset() | Signal detection area set to: 0,250000,0,250000 x 0,750000,0,750000
22:08:01.346 SIGNAL_OLD : <DEBUG> DetectionManual.cpp:74:setSignalThreshold() | Signal threshold set to: {12, 12, 12} and frames: 200
22:08:01.346 SIGNAL_AUTO : <DEBUG> DetectionAutomatic.cpp:375:setAutoSignalParams() | Automatic signal detection -> errorTolerance: 9, modelTolerance: 90, sleepTime: 5000, wakeTime: 1000
22:08:01.346 V4L2:AUTO : <DEBUG> Grabber.cpp:497:setDeviceVideoStandard() | setDeviceVideoStandard preparing to restart video grabber. Old: '' new: 'auto'
22:08:01.346 V4L2:AUTO : <INFO> Delayed restart of the grabber due to change of selected device
22:08:01.346 V4L2:AUTO : <DEBUG> Grabber.cpp:317:setEncoding() | Force encoding to: NO_CHANGE (old: NO_CHANGE)
22:08:01.346 V4L2:AUTO : <INFO> setQFrameDecimation is now: disabled
22:08:01.346 AUTOTONEMAPPING : <INFO> Enabled: no, time to enable: 30s, time to disable: 500ms, thresholds: { 155, 175, 160}
22:08:01.346 FLATBUFSERVER : <INFO> Tone mapping: 0
22:08:01.347 FLATBUFSERVER : <INFO> Started on port 19400
22:08:01.347 WEBSERVER : <INFO> Initialize Webserver
22:08:01.347 FLATBUFSERVER : <ERROR> Could not start local domain socket server 'hyperhdr-domain'
22:08:01.347 FLATBUFSERVER : <INFO> Tone mapping: 0
22:08:01.347 FLATBUFSERVER : <INFO> NV12 quarter of frame mode: 0
22:08:01.348 WEBSERVER : <INFO> Apply Webserver settings
22:08:01.348 WEBSERVER : <INFO> Set document root to: :/www
22:08:01.348 WEBSERVER : <INFO> Started: 'HyperHDR WebServer (HTTP)' on port: 8090
22:08:01.348 SSDP : <DEBUG> SSDPHandler.cpp:93:handleWebServerStateChange() | The local address is empty
22:08:01.348 WEBSERVER : <INFO> Initialize Webserver
22:08:01.348 WEBSERVER : <INFO> Apply Webserver settings
22:08:01.348 WEBSERVER : <INFO> Set document root to: :/www
22:08:01.350 WEBSERVER : <INFO> Setup SSL certificate
22:08:01.351 WEBSERVER : <INFO> Setup private SSL key
22:08:01.351 WEBSERVER : <INFO> Started: 'HyperHDR WebServer (HTTPS)' on port: 8092
22:08:01.351 SSDP : <DEBUG> SSDPHandler.cpp:42:initServer() | SSDPHandler is initializing
22:08:01.351 SSDP : <DEBUG> SSDPHandler.cpp:183:getLocalAddress() | The local address is: 192.168.178.50
22:08:01.351 SSDP : <DEBUG> SSDPServer.cpp:94:initServer() | Initialize the SSDP server
22:08:01.351 SSDP : <INFO> Starting the SSDP server
22:08:01.353 NETFORWARDER : <INFO> Forwarder has changed state to disabled
22:08:01.362 PIPEWIRE_SYSTEM:PIPEWI : <INFO> Portal protocol version: 5
22:08:01.366 SMOOTHING0 : <INFO> Using linear smoothing procedure (1)
(hyperhdr:56657): Gtk-CRITICAL **: 22:08:01.456: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed 22:08:02.850 SERVICE_mDNS : <INFO> Starting the network discovery thread 22:08:02.869 NET_DISCOVERY : <INFO> Found ESP board at ttyUSB0:-1 (CP2102 USB to UART Bridge Controller) Pipewire: Got response from portal Start Received restoration token: 3e3cca8bb2fd Connecting to Pipewire interface for stream: 2560 x 1440 Session type: wayland , X11 detected: no PipewireEGL: EGL initialized for HyperHDR. Version: 1.5 PipewireEGL: Found 50 DMA-BUF formats PipewireEGL: got DMA format list (count = 50) PipewireEGL: Found unsupported by HyperHDR 'AB4H' DMA format PipewireEGL: Found unsupported by HyperHDR 'XB4H' DMA format PipewireEGL: Found unsupported by HyperHDR 'AB48' DMA format PipewireEGL: Found unsupported by HyperHDR 'XB48' DMA format PipewireEGL: Found unsupported by HyperHDR 'AR30' DMA format PipewireEGL: Found unsupported by HyperHDR 'XR30' DMA format PipewireEGL: Found unsupported by HyperHDR 'AB30' DMA format PipewireEGL: Found unsupported by HyperHDR 'XB30' DMA format PipewireEGL: Found DRM_FORMAT_ARGB8888 DMA format (AR24) PipewireEGL: Found DRM_FORMAT_ABGR8888 DMA format (AB24) PipewireEGL: Found DRM_FORMAT_XRGB8888 DMA format (XR24) PipewireEGL: Found DRM_FORMAT_XBGR8888 DMA format (XB24) PipewireEGL: Found unsupported by HyperHDR 'AR15' DMA format PipewireEGL: Found unsupported by HyperHDR 'AB15' DMA format PipewireEGL: Found unsupported by HyperHDR 'AR12' DMA format PipewireEGL: Found unsupported by HyperHDR 'AB12' DMA format PipewireEGL: Found unsupported by HyperHDR 'RG16' DMA format PipewireEGL: Found unsupported by HyperHDR 'R8 ' DMA format PipewireEGL: Found unsupported by HyperHDR 'R16 ' DMA format PipewireEGL: Found unsupported by HyperHDR 'GR88' DMA format PipewireEGL: Found unsupported by HyperHDR 'GR32' DMA format PipewireEGL: Found unsupported by HyperHDR 'YUV9' DMA format PipewireEGL: Found unsupported by HyperHDR 'YU11' DMA format PipewireEGL: Found unsupported by HyperHDR 'YU12' DMA format PipewireEGL: Found unsupported by HyperHDR 'YU16' DMA format PipewireEGL: Found unsupported by HyperHDR 'YU24' DMA format PipewireEGL: Found unsupported by HyperHDR 'YVU9' DMA format PipewireEGL: Found unsupported by HyperHDR 'YV11' DMA format PipewireEGL: Found unsupported by HyperHDR 'YV12' DMA format PipewireEGL: Found unsupported by HyperHDR 'YV16' DMA format PipewireEGL: Found unsupported by HyperHDR 'YV24' DMA format PipewireEGL: Found unsupported by HyperHDR 'NV12' DMA format PipewireEGL: Found unsupported by HyperHDR 'NV21' DMA format PipewireEGL: Found unsupported by HyperHDR 'P010' DMA format PipewireEGL: Found unsupported by HyperHDR 'P012' DMA format PipewireEGL: Found unsupported by HyperHDR 'P016' DMA format PipewireEGL: Found unsupported by HyperHDR 'P030' DMA format PipewireEGL: Found unsupported by HyperHDR 'NV16' DMA format PipewireEGL: Found unsupported by HyperHDR 'AYUV' DMA format PipewireEGL: Found unsupported by HyperHDR 'XYUV' DMA format PipewireEGL: Found unsupported by HyperHDR 'Y410' DMA format PipewireEGL: Found unsupported by HyperHDR 'Y412' DMA format PipewireEGL: Found unsupported by HyperHDR 'Y416' DMA format PipewireEGL: Found unsupported by HyperHDR 'YUYV' DMA format PipewireEGL: Found unsupported by HyperHDR 'YVYU' DMA format PipewireEGL: Found unsupported by HyperHDR 'UYVY' DMA format PipewireEGL: Found unsupported by HyperHDR 'VYUY' DMA format PipewireEGL: Found unsupported by HyperHDR 'Y210' DMA format PipewireEGL: Found unsupported by HyperHDR 'Y212' DMA format PipewireEGL: Found unsupported by HyperHDR 'Y216' DMA format Pipewire: state CONNECTING (1, 0) Pipewire: the stream is connected Pipewire: core info reported. Version = 1.4.1 Pipewire: state PAUSED (2, 1) Pipewire: got new video format selected Pipewire: got new video format selected Pipewire: got new video format selected Pipewire: video format = 8 (Spa:Enum:VideoFormat:BGRx) Pipewire: video size = 2560x1440 (RGB order = false) Pipewire: framerate = 0/1 Pipewire: DMA buffer available. Format: XR24. Modifier: ????. Pipewire: MemFD buffer available Pipewire: MemPTR buffer available Pipewire: updated parameters 0 Pipewire: got new video format selected Pipewire: video format = 8 (Spa:Enum:VideoFormat:BGRx) Pipewire: video size = 2560x1440 (RGB order = false) Pipewire: framerate = 0/1 Pipewire: DMA buffer available. Format: XR24. Modifier: ??? . Pipewire: MemFD buffer available Pipewire: MemPTR buffer available Pipewire: updated parameters 0 Pipewire: state STREAMING (3, 2) Pipewire: Using DmaBuf frame type. The hardware acceleration is ENABLED. PipewireEGL: got the texture PipewireEGL: succesfully rendered the DMA texture 22:08:04.264 PIPEWIRE_SYSTEM:PIPEWI : <INFO> Saving restoration token: ************************3e3cca8bb2fd 22:08:04.269 MUXER0 : <INFO> Priority 245 is now active 22:08:04.288 EFFECT0(Rainbo...) : <INFO> The effect quits with priority: 0 22:08:04.288 MUXER0 : <INFO> Removed source priority 0 22:08:04.288 MUXER0 : <INFO> Set visible priority to 245 22:08:04.288 SMOOTHING0 : <INFO> Clearing queued colors before: enabling. Smoothing configuration changed: restarting timer. 22:08:04.288 SMOOTHING0 : <INFO> Smoothing queue is cleared 22:08:04.288 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:380:stopRefreshTimer() | Stopping refresh timer 22:08:04.288 SMOOTHING0 : <INFO> Selecting config (0) => type: Alternative, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 32, antiFlickStep: 2, antiFlickTime: 250 22:08:04.288 LEDDEVICE0_ADALIGHT : <WARNING> Ignoring user LED refresh rate. Forcing smoothing refresh rate = 50,00 Hz 22:08:04.288 SMOOTHING0 : <INFO> Using alternative smoothing input (0) 22:08:04.288 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:422:setRefreshTime() | Refresh rate = 50,00 Hz 22:08:04.288 HYPERHDR0 : <INFO> New priority[245], previous [0] 22:08:04.288 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:366:startRefreshTimer() | Starting timer with interval = 20ms 22:08:04.288 COLORSPACE_CALIBRATION : <DEBUG> ColorSpaceCalibration.cpp:224:setBackLightEnabled() | setBackLightEnabled: 1 22:08:04.288 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:432:setRefreshTime() | Refresh interval updated to 20ms 22:08:04.288 EFFECTENGINE0 : <INFO> Effect 'Rainbow swirl fast' has finished. SmartPointer is removing: effect0/0 => "Rainbow swirl fast" 22:08:04.288 LEDDEVICE0_ADALIGHT : <DEBUG> LedDevice.cpp:447:smoothingRestarted() | LED refresh interval adjustment caused by smoothing configuration change to 20ms (proposed: 20ms) 22:08:04.288 EFFECT0(Rainbo...) : <INFO> Effect named: 'Rainbow swirl fast' is deleted 22:08:04.328 SMOOTHING0 : <INFO> Using alternative smoothing procedure (0) 22:08:04.364 IMAGETOLED_MNG0 : <INFO> Total index number is: 26752 (memory: 26752). User sparse processing is: disabled, image size: 512 x 288, area number: 37
This makes me think that tone mapping might be necessary to get a normal picture: https://steamcommunity.com/discussions/forum/10/2924479876987146934/ https://en.wikipedia.org/wiki/Tone_mapping
On Windows there is no problem at all with HDR10 as we can fully transform & scale the image using PixelShaders (incredible fast and reliable).
Tone mapping is absolutely no problem, we can tabulate it and any other transformation to a LUT. However, in the case of these extended Pipewire logs that you have attached recently, we have absolutely no point of reference: Pipewire supposedly works OK but generates black boards. We will not skip over this Pipewire issue.
I see, to be honest I don't know much about tone mapping and what the issue could be here. But the image coming from pipewire is not completely black, but just very very dark. When I move windows around and look at the live preview I can see them moving when I look closely. So there is data coming from pipewire, it's just that the image is way too dark
How dark the image is has a huge impact on tone mapping. You have an example on the main page of a typical HDR captured as SDR: faded and a bit dark. We can handle that perfectly well. However, if it is very dark, it goes beyond the processing capabilities of typical 8-bits and you need at least 10-bit resolution to extract detail. So here comes the P010 format, which by the way is not fully supported in Linux and thats why my kernel patch was necessary, which you can read about in the P010 thread pinned here. In the case of Pipewire, I currently have no knowledge of such a pipeline being supported.
OBS supports many alternative capture plugins. Either another plugin supports the HDR you are writing about here or Pipewire has recently added new features that I admit I have not heard of. And is this a global solution or will it only work on Gnome? So you see, the matter is unfortunately very complicated when it comes to Linux and would require a detailed investigation not to mention the dedication of resources to implementation, taking into account that it may only work on some systems and handle numerous reports from users that they could have some problems on their own configuration ;-) just like it was with Pipewire where the initial implementation of session authentication worked only on some environments, e.g. Gnome and did not work on KDE because they did not fully implement this extension of the Pipewire protocol.
So we will see, maybe something will finally move with Linux because currently it is far behind when it comes to a universal API for screen capturing compared to Windows.
I see, I understand that there isn't much you can do. Hopefully it will be fixed by Gnome/Pipewire. When I have some time I might look into it more myself and try to find the root cause, but right now I don't have much experience with this.
Thanks for the detailed explanation and also for this project in general, it's really cool :)
BTW did you use Pipewire capturer plugin in OBS? If so could you obtain OBS logs from the moment when you switched to HDR from SDR? Or it was a different OBS plugin?
Yes, I used the pipewire plugin that comes with OBS and didn't change any settings. Sure, I recorded the video and turned HDR on and off while recording. In the video no change is visible (I can also upload it if it helps).
Here are the logs: 19:40:17.691: Platform: Wayland 19:40:17.691: CPU Name: AMD Ryzen 5 5600X 6-Core Processor 19:40:17.691: CPU Speed: 4649.014MHz 19:40:17.691: Physical Cores: 6, Logical Cores: 12 19:40:17.691: Physical Memory: 32015MB Total, 23839MB Free 19:40:17.691: Kernel Version: Linux 6.13.8-arch1-1 19:40:17.691: Distribution: "Arch Linux" Unknown 19:40:17.691: Desktop Environment: GNOME (gnome) 19:40:17.691: Session Type: wayland 19:40:17.693: Qt Version: 6.8.2 (runtime), 6.8.1 (compiled) 19:40:17.693: Portable mode: false 19:40:17.719: OBS 31.0.1 (linux) 19:40:17.719: --------------------------------- 19:40:17.720: --------------------------------- 19:40:17.720: audio settings reset: 19:40:17.720: samples per sec: 48000 19:40:17.720: speakers: 2 19:40:17.720: max buffering: 960 milliseconds 19:40:17.720: buffering type: dynamically increasing 19:40:17.721: --------------------------------- 19:40:17.721: Initializing OpenGL... 19:40:17.721: Using EGL/Wayland 19:40:17.753: Initialized EGL 1.5 19:40:17.765: Loading up OpenGL on adapter AMD AMD Radeon RX 7800 XT (radeonsi, navi32, LLVM 19.1.7, DRM 3.61, 6.13.8-arch1-1) 19:40:17.765: OpenGL loaded successfully, version 4.6 (Core Profile) Mesa 25.0.2-arch1.2, shading language 4.60 19:40:17.797: --------------------------------- 19:40:17.797: video settings reset: 19:40:17.797: base resolution: 1920x1080 19:40:17.797: output resolution: 1920x1080 19:40:17.797: downscale filter: Bicubic 19:40:17.797: fps: 60/1 19:40:17.797: format: NV12 19:40:17.797: YUV mode: Rec. 709/Partial 19:40:17.797: NV12 texture support enabled 19:40:17.797: P010 texture support not available 19:40:17.800: Audio monitoring device: 19:40:17.800: name: Standard 19:40:17.800: id: default 19:40:17.800: --------------------------------- 19:40:17.808: Failed to load 'en-US' text for module: 'decklink-captions.so' 19:40:17.814: Failed to load 'en-US' text for module: 'decklink-output-ui.so' 19:40:17.821: A DeckLink iterator could not be created. The DeckLink drivers may not be installed 19:40:17.821: Failed to initialize module 'decklink.so' 19:40:17.927: [pipewire] Available capture sources: 19:40:17.927: [pipewire] - Monitor source 19:40:17.927: [pipewire] - Window source 19:40:17.979: VAAPI: API version 1.22 19:40:17.979: FFmpeg VAAPI H264 encoding supported 19:40:17.983: FFmpeg VAAPI AV1 encoding supported 19:40:17.987: FFmpeg VAAPI HEVC encoding supported 19:40:18.006: os_dlopen(libnvidia-encode.so.1->libnvidia-encode.so.1): libnvidia-encode.so.1: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden 19:40:18.006: 19:40:18.006: NVENC not supported 19:40:18.006: Failed to initialize module 'obs-nvenc.so' 19:40:18.061: os_dlopen(/usr/lib/obs-plugins/obs-websocket.so->/usr/lib/obs-plugins/obs-websocket.so): libqrcodegencpp.so.1: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden 19:40:18.061: 19:40:18.064: os_dlopen(/usr/lib/obs-plugins/obs-websocket.so->/usr/lib/obs-plugins/obs-websocket.so): libqrcodegencpp.so.1: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden 19:40:18.064: 19:40:18.064: Module '/usr/lib/obs-plugins/obs-websocket.so' not loaded 19:40:18.083: --------------------------------- 19:40:18.083: Loaded Modules: 19:40:18.083: text-freetype2.so 19:40:18.083: rtmp-services.so 19:40:18.083: obs-x264.so 19:40:18.083: obs-webrtc.so 19:40:18.083: obs-vst.so 19:40:18.083: obs-transitions.so 19:40:18.083: obs-qsv11.so 19:40:18.083: obs-outputs.so 19:40:18.083: obs-libfdk.so 19:40:18.083: obs-filters.so 19:40:18.083: obs-ffmpeg.so 19:40:18.083: linux-v4l2.so 19:40:18.083: linux-pulseaudio.so 19:40:18.083: linux-pipewire.so 19:40:18.083: linux-jack.so 19:40:18.083: linux-capture.so 19:40:18.083: linux-alsa.so 19:40:18.083: image-source.so 19:40:18.083: frontend-tools.so 19:40:18.083: decklink-output-ui.so 19:40:18.083: decklink-captions.so 19:40:18.083: --------------------------------- 19:40:18.083: --------------------------------- 19:40:18.083: Available Encoders: 19:40:18.083: Video Encoders: 19:40:18.083: - ffmpeg_svt_av1 (SVT-AV1) 19:40:18.083: - ffmpeg_aom_av1 (AOM AV1) 19:40:18.083: - ffmpeg_vaapi_tex (FFmpeg VAAPI H.264) 19:40:18.083: - av1_ffmpeg_vaapi_tex (FFmpeg VAAPI AV1) 19:40:18.083: - hevc_ffmpeg_vaapi_tex (FFmpeg VAAPI HEVC) 19:40:18.083: - obs_x264 (x264) 19:40:18.083: Audio Encoders: 19:40:18.083: - ffmpeg_aac (FFmpeg AAC) 19:40:18.083: - ffmpeg_opus (FFmpeg Opus) 19:40:18.083: - ffmpeg_pcm_s16le (FFmpeg PCM (16 Bit)) 19:40:18.083: - ffmpeg_pcm_s24le (FFmpeg PCM (24 Bit)) 19:40:18.083: - ffmpeg_pcm_f32le (FFmpeg PCM (32 Bit Float)) 19:40:18.083: - ffmpeg_alac (FFmpeg ALAC (24 Bit)) 19:40:18.083: - ffmpeg_flac (FFmpeg FLAC (16 Bit)) 19:40:18.083: - libfdk_aac (libfdk AAC) 19:40:18.083: ==== Startup complete =============================================== 19:40:18.106: All scene data cleared 19:40:18.106: ------------------------------------------------ 19:40:18.109: pulse-input: Server name: 'PulseAudio (on PipeWire 1.4.1) 15.0.0' 19:40:18.110: pulse-input: Audio format: s32le, 48000 Hz, 2 channels 19:40:18.110: pulse-input: Started recording from 'alsa_output.pci-0000_06_04.0.analog-stereo.monitor' (default) 19:40:18.110: [Loaded global audio device]: 'Desktop-Audio' 19:40:18.110: pulse-input: Server name: 'PulseAudio (on PipeWire 1.4.1) 15.0.0' 19:40:18.110: pulse-input: Audio format: s16le, 48000 Hz, 1 channels 19:40:18.110: pulse-input: Started recording from 'alsa_input.usb-Antlion_Audio_Antlion_Wireless_Microphone-00.mono-fallback' (default) 19:40:18.110: [Loaded global audio device]: 'Mikrofon-/AUX-Audio' 19:40:18.110: PipeWire initialized 19:40:18.111: Switched to scene 'Szene' 19:40:18.111: ------------------------------------------------ 19:40:18.111: Loaded scenes: 19:40:18.111: - scene 'Szene': 19:40:18.111: - source: 'Bildschirmaufnahme (PipeWire)' (pipewire-screen-capture-source) 19:40:18.111: ------------------------------------------------ 19:40:18.227: [pipewire] Screencast session created 19:40:18.301: [pipewire] Asking for monitor and window 19:40:18.313: [pipewire] source selected, setting up screencast 19:40:18.317: [pipewire] Server version: 1.4.1 19:40:18.317: [pipewire] Library version: 1.4.1 19:40:18.317: [pipewire] Header version: 1.2.7 19:40:18.318: [pipewire] Created stream 0x5d2abb6c3620 19:40:18.318: [pipewire] Stream 0x5d2abb6c3620 state: "connecting" (error: none) 19:40:18.318: [pipewire] Playing stream 0x5d2abb6c3620 19:40:18.318: [pipewire] Stream 0x5d2abb6c3620 state: "paused" (error: none) 19:40:18.325: [pipewire] Negotiated format: 19:40:18.325: [pipewire] Format: 12 (Spa:Enum:VideoFormat:BGRA) 19:40:18.325: [pipewire] Modifier: 0x0 19:40:18.325: [pipewire] Size: 2560x1440 19:40:18.325: [pipewire] Framerate: 0/1 19:40:18.325: [pipewire] Negotiated format: 19:40:18.325: [pipewire] Format: 12 (Spa:Enum:VideoFormat:BGRA) 19:40:18.325: [pipewire] Modifier: 0x200000020801b04 19:40:18.325: [pipewire] Size: 2560x1440 19:40:18.325: [pipewire] Framerate: 0/1 19:40:18.332: [pipewire] Stream 0x5d2abb6c3620 state: "streaming" (error: none) 19:40:18.659: adding 21 milliseconds of audio buffering, total audio buffering is now 21 milliseconds (source: Desktop-Audio) 19:40:18.659: 19:40:30.651: --------------------------------- 19:40:30.651: [x264 encoder: 'simple_video_recording'] preset: veryfast 19:40:30.651: [x264 encoder: 'simple_video_recording'] profile: high 19:40:30.651: [x264 encoder: 'simple_video_recording'] settings: 19:40:30.651: rate_control: CRF 19:40:30.651: bitrate: 0 19:40:30.651: buffer size: 0 19:40:30.651: crf: 23 19:40:30.651: fps_num: 60 19:40:30.651: fps_den: 1 19:40:30.651: width: 1920 19:40:30.651: height: 1080 19:40:30.651: keyint: 250 19:40:30.651: 19:40:30.664: libfdk_aac encoder created 19:40:30.664: libfdk_aac bitrate: 192, channels: 2 19:40:30.665: ==== Recording Start =============================================== 19:40:30.666: [ffmpeg muxer: 'simple_file_output'] Writing file '/home/.../2025-03-28 19-40-30.mkv'... 19:40:47.825: [ffmpeg muxer: 'simple_file_output'] Output of file '/home/.../2025-03-28 19-40-30.mkv' stopped 19:40:47.825: Output 'simple_file_output': stopping 19:40:47.825: Output 'simple_file_output': Total frames output: 992 19:40:47.825: Output 'simple_file_output': Total drawn frames: 995 (1030 attempted) 19:40:47.825: Output 'simple_file_output': Number of lagged frames due to rendering lag/stalls: 35 (3.4%) 19:40:47.825: ==== Recording Stop ================================================ 19:40:47.829: libfdk_aac encoder destroyed
It doesn't look like anything changed in pipewire, when I started the recording it says the video format is BGRA
I also tried recording my screen with Kooha (https://github.com/SeaDve/Kooha) and turning HDR on and off and it worked perfectly as well, so maybe it is something specific to HyperHDR after all
Maybe it's because of the EGL acceleration that is forced in HyperHDR. I don't use OBS but from from the logs I suspect they use simply stream prepared by Pipewire.
Could you compile HyperHDR with ENABLE_PIPEWIRE_EGL disabled (add to cmake configuration phase -DENABLE_PIPEWIRE_EGL=OFF) and provide logs from the command line? Manual is here: https://github.com/awawa-dev/HyperHDR/wiki/Compiling-HyperHDR
So from this manual: cmake -DENABLE_PIPEWIRE_EGL=OFF -DCMAKE_BUILD_TYPE=Release ..
I got some errors when building it initially but I managed to get it to compile now. However when I run it now I get this message in the log and it tries to use the X11 screen grabber instead: <WARNING> The system doesn't support the Pipewire/Portal grabber
Edit: When I compile without the DENABLE_PIPEWIRE_EGL=OFF the pipewire screen grabber works, but when I add the flag I add it I get a compile error:
In function ‘sqlite3Strlen30’, inlined from ‘sqlite3ColumnSetColl’ at /home/.../Downloads/hyperhdr/external/sqlite/sqlite3.c:122105:10: /home/.../Downloads/hyperhdr/external/sqlite/sqlite3.c:35003:28: warning: ‘strlen’ reading 1 or more bytes from a region of size 0 [-Wstringop-overread] 35003 | return 0x3fffffff & (int)strlen(z); | ^~~~~~~~~ In function ‘sqlite3ColumnSetColl’: cc1: note: source object is likely at address zero [ 96%] Linking CXX shared library ../lib/libsqlite3.so [ 96%] Built target sqlite3 make: *** [Makefile:156: all] Error 2
Yes, there was a problem. Please git pull and try to build with -DENABLE_PIPEWIRE_EGL=OFF again
Okay, now it works with HDR enabled! Thanks for the help! What does the EGL do? Are there downsides to using HyperHDR without it enabled?
Thanks for the feedback. EGL provides direct access to and conversion of the gfx memory buffer. In theory its very fast. But as you can see it may cause problems with HDR. when EGL is disabled the pipewire does the HDR to SDR tone mapping. At the time it was implemented there was no ready to test HDR capable Gnome setup that I could verify it. I will add later option to disable EGL is the interface (without a need to recompile HyperHDR) and will let you know.
Perfect, thank you! Yeah HDR support was only added to Gnome very recently
I just updated to Gnome 49 and it seems like this issue does not occur anymore even with EGL enabled, so I think this was fixed by Gnome.