HyperHDR icon indicating copy to clipboard operation
HyperHDR copied to clipboard

Software Screen Capture not working when HDR is enabled under Gnome

Open Freymi opened this issue 9 months ago • 19 comments

HyperHDR-21.0.0.0-Backup-2025-03-26.json

Steps to reproduce

  1. Enable Software Screen Capture
  2. 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: Image

This is the original image that was displayed on that screen: Image

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]

Freymi avatar Mar 26 '25 20:03 Freymi

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.

awawa-dev avatar Mar 26 '25 20:03 awawa-dev

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++

Freymi avatar Mar 26 '25 20:03 Freymi

Try to run HyperHDR from the command line. There should be more information about the screen grabbing process.

awawa-dev avatar Mar 26 '25 21:03 awawa-dev

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

Freymi avatar Mar 26 '25 21:03 Freymi

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

Freymi avatar Mar 26 '25 21:03 Freymi

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.

awawa-dev avatar Mar 26 '25 22:03 awawa-dev

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

Freymi avatar Mar 27 '25 16:03 Freymi

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.

awawa-dev avatar Mar 27 '25 18:03 awawa-dev

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 :)

Freymi avatar Mar 27 '25 20:03 Freymi

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?

awawa-dev avatar Mar 27 '25 22:03 awawa-dev

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

Freymi avatar Mar 28 '25 18:03 Freymi

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

Freymi avatar Mar 28 '25 18:03 Freymi

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.

awawa-dev avatar Mar 28 '25 19:03 awawa-dev

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 ..

awawa-dev avatar Mar 28 '25 21:03 awawa-dev

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

Freymi avatar Mar 29 '25 12:03 Freymi

Yes, there was a problem. Please git pull and try to build with -DENABLE_PIPEWIRE_EGL=OFF again

awawa-dev avatar Mar 29 '25 15:03 awawa-dev

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?

Freymi avatar Mar 29 '25 15:03 Freymi

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.

awawa-dev avatar Mar 29 '25 15:03 awawa-dev

Perfect, thank you! Yeah HDR support was only added to Gnome very recently

Freymi avatar Mar 29 '25 15:03 Freymi

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.

Freymi avatar Sep 23 '25 14:09 Freymi