awawa-dev / HyperHDR

Highly optimized open source ambient lighting implementation based on modern digital video and audio stream analysis for Windows, macOS and Linux (x86 and Raspberry Pi / ARM).
http://www.hyperhdr.eu/
MIT License
1.12k stars 117 forks source link

Windows detect screen off when PC is locked. #735

Closed kenny-nt closed 9 months ago

kenny-nt commented 9 months ago

Feature request

What problem does this feature solve?

The led will turn off when PC turn off the screen.

What does the proposed API look like?

How should this be implemented in your opinion?

Are you willing to work on this yourself?

awawa-dev commented 9 months ago

You can test it. The installer is here: https://github.com/awawa-dev/HyperHDR/actions/runs/7562278403

kenny-nt commented 9 months ago

20240118_081400 Screenshot_20240118_081323_Samsung Internet Screenshot_20240118_081305_Samsung Internet

Installed the build: session_locker (Awawa-f676dd4/9a406ce-1705528819)

I locked windows via Win + L, 1 minutes later the screen turn off but leds still on. Check live preview of HyperHDR via my phone > Screen Capture still capture the lock screen. But the point is HyperHDR should stop Screen Capture only. The new setting should place in Video Capturing > Instance Screen Capture or Software Screen Capture.

kenny-nt commented 9 months ago

Test again.

2024-01-18T08:25:56.467Z [COMPONENTCTRL0] LED device: disabled 2024-01-18T08:26:17.171Z [WEBSOCKET] (HyperAPI.cpp:966) log streaming deactivated for client ::1 2024-01-18T08:26:51.108Z [WEBSOCKET] (HyperAPI.cpp:957) log streaming activated for client ::1 2024-01-18T08:27:18.385Z [WEBSOCKET] (HyperAPI.cpp:966) log streaming deactivated for client ::1 2024-01-18T08:27:23.829Z [WEBSOCKET] (HyperAPI.cpp:957) log streaming activated for client ::1 2024-01-18T08:27:34.748Z [WEBSOCKET] (HyperAPI.cpp:966) log streaming deactivated for client ::1 2024-01-18T08:28:04.313Z [WEBSOCKET] (HyperAPI.cpp:957) log streaming activated for client ::1

Leds turned off then turn on with boot effect then turn off. But leds still turn off when log in again. Disable led instance > leds still off. Go to Screen Capture > disable System Capture > save > enable again > save > leds with screen capture working again.

awawa-dev commented 9 months ago

It should turn off everything immediately (leds, grabber etc). Please run hyperhdr from the command line to get full logs when you press Win+L: hyperhdr.exe -c This mechanism won't work if RDP is used. The same user must run hyperhdr and lock the system (the app must run in the current user session).

kenny-nt commented 9 months ago

hyperHDR.log Amazing... It work now... but when unlock windows > sometimes the screen grabber work again and sometimes led still go off. When press Win + L -> Leds behavior: off 1s > all white 1s > off 1s > all white 3s > off 1s > all white 3s > OFF( or turn on idle effect) Dont know why I have tested all this morning but it do not work, after run hyperhdr via terminal: hyperhdr.exe -c > I work now :|

awawa-dev commented 9 months ago

Thank you for testing and logs. It didn't quite work as it should because there was feedback/looping from some components that didn't want to turn off permanently so easily. That's why sometimes it might not work. I think I fixed it.

The improved version + one new option (described in #737) can be downloaded here: https://github.com/awawa-dev/HyperHDR/actions/runs/7573447093

kenny-nt commented 9 months ago

The feature "Turn off LEDs at startup" working good but it will override the "Boot Effect" in Effects menu? Leds behavior now: Win + L -> Lock screen and Leds turn all white for 3s > off and on all white for 1s > OFF The same with Unlock PC: Enter Pass > Main windows > led turn all white for 3s > > off and on all white for 1s > screen capture work again. I am testing if windows autolock when afk for a while. hyperHDR.log

awawa-dev commented 9 months ago

Logs look fine now.

2024-01-19T08:26:20.321Z [HYPER_MANAGER] The system is going to sleep
...
2024-01-19T08:26:21.992Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:297) Disable the device

the process from receiving the lock signal from the operating system took ~2 seconds when the LED device (and everything else) was then turned off. Next the system woke up (unlock event):

2024-01-19T08:26:33.489Z [HYPER_MANAGER] The system is going to wake up

And it started restoring LEDs and other devices to their state before locking the screen.

The feature "Turn off LEDs at startup" working good but it will override the "Boot Effect" in Effects menu?

New feature should prevent the boot effect from turning on the LEDs.

kenny-nt commented 9 months ago

The latest commit seem have something wrong... Win locked and leds turn off but I can not use effect with HyperHDR too.. The point is just need HyperHDR disable Screen Capture when PC turn off (not turn off HyperHDR completely like now) I think the first commited version is better. Just need Windows get locked or Windows turn off the screen (set Windows turn off after xx minutes in Power Settings) >>> HyperHDR turn off Screen Capture. Currently HyperHDR disable Led Instance.

kenny-nt commented 9 months ago

You can test it. The installer is here: https://github.com/awawa-dev/HyperHDR/actions/runs/7562278403

@awawa-dev Can you upload this release again?

awawa-dev commented 9 months ago

It's already merged, but I submitted rebuild of that version. Should be available soon.

Maybe there was a misunderstanding, but my main goal from the very beginning was to block the LEDs (as in the feature request) and, consequently, the entire HyperHDR processing. Since this function is used to also hibernate the application during resume/suspend events, it is difficult at this stage to separate the operation of the screen locker so that the effect running in the background can turn on the LEDs and continue working.

kenny-nt commented 9 months ago

That version maybe better, I lock windows > leds changed to off or idle effect and screen capture turn back on when I unlock pc and when pc locked I still can set some effects to leds So we can not just turn off all Video Capturing components when video connection lost?

kenny-nt commented 9 months ago

I saw the previous version is rebuilded... But I have uninstall the current version then install previous (which dont have Turn off led on start up) but HyperHDR still disable led instances when pc lock... How to completely cleaning HyperHDR for fresh install?

Update: Have delete hyperHDR db and have a fresh install

kenny-nt commented 9 months ago

Have tested again with https://github.com/awawa-dev/HyperHDR/actions/runs/7562278403 Don't know why this build still turn off led instance... As I have tested before: Lock windows > if I enable idle effect, led will start idle effect instead of turn off... May be my memory have a glitch...

awawa-dev commented 9 months ago

I think it would be possible to do it differently: if the user locks the OS and has set at least one background effect in any instance, we do not block the LEDs, we only turn off the USB grabber and software grabber. But you would have to test it thoroughly, because I have serious doubts about what will happen if, in the meantime, the user, for example, hibernates the system. The current solution precisely solves this.

kenny-nt commented 9 months ago

2024-01-23T21:51:29.517Z [HYPER_MANAGER] The system is going to sleep 2024-01-23T21:51:29.487Z [MUXER0] Priority 245 is now inactive 2024-01-23T21:51:29.487Z [MUXER0] Set visible priority to 255 2024-01-23T21:51:29.487Z [HYPERHDR0] New priority[255], previous [245] 2024-01-23T21:51:29.487Z [HYPERHDR0] No source left -> switch LED-Device off 2024-01-23T21:51:29.487Z [SMOOTHING0] Clearing queued colors before: disabling 2024-01-23T21:51:29.488Z [SMOOTHING0] Smoothing queue is cleared 2024-01-23T21:51:29.528Z [PERFORMANCE] [LED0: FPS = 20.00, send = 1200, processed = 1200, dropped = 0] 2024-01-23T21:51:29.488Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:225) setBackLightEnabled: 0 2024-01-23T21:51:29.491Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:270) Disable the device 2024-01-23T21:51:29.491Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:354) Stopping refresh timer 2024-01-23T21:51:29.491Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:89) Switch off 2024-01-23T21:51:29.491Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:517) Set LED strip to black/power off 2024-01-23T21:51:29.519Z [COMPONENTCTRL0] (ComponentController.cpp:44) Disabling HyperHDR instance: saving current component states first 2024-01-23T21:51:29.519Z [SMOOTHING0] Clearing queued colors before: disabling 2024-01-23T21:51:29.519Z [SMOOTHING0] Smoothing queue is cleared 2024-01-23T21:51:29.519Z [COMPONENTCTRL0] Smoothing: disabled 2024-01-23T21:51:29.519Z [COMPONENTCTRL0] Blackborder detector: disabled 2024-01-23T21:51:29.520Z [MUXER0] Removed source priority 245 2024-01-23T21:51:29.520Z [COMPONENTCTRL0] System capture device: disabled 2024-01-23T21:51:29.521Z [SMOOTHING0] Clearing queued colors before: disabling 2024-01-23T21:51:29.521Z [SMOOTHING0] Smoothing queue is cleared 2024-01-23T21:51:29.521Z [COMPONENTCTRL0] HyperHDR: disabled 2024-01-23T21:51:29.523Z [DX11_SYSTEM:\.\DISPLAY3|N] Stopped 2024-01-23T21:51:29.618Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:143) Flush was successful 2024-01-23T21:51:29.637Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:161) Serial port is closed: COM12 2024-01-23T21:51:29.638Z [COMPONENTCTRL0] LED device: disabled 2024-01-23T21:51:29.639Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:396) Refresh rate = 20.00 Hz 2024-01-23T21:51:29.639Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:346) Device is not ready to start a timer 2024-01-23T21:51:29.640Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:406) Refresh interval updated to 50ms 2024-01-23T21:51:29.640Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:421) LED refresh interval adjustment caused by smoothing configuration change to 50ms (proposed: 0ms) 2024-01-23T21:51:29.640Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:270) Disable the device 2024-01-23T23:36:24.907Z [WEBSOCKET] (WebSocketClient.cpp:39) New connection from ::ffff:192.168.1.170 2024-01-23T23:36:34.568Z [WEBSOCKET] (WebSocketClient.cpp:188) send close: 1000 2024-01-23T23:38:34.584Z [WEBSOCKET] (WebSocketClient.cpp:39) New connection from ::ffff:192.168.1.170 2024-01-24T00:53:53.048Z [WEBSOCKET] (WebSocketClient.cpp:39) New connection from ::ffff:192.168.1.170 2024-01-24T00:54:02.118Z [WEBSOCKET] (HyperAPI.cpp:957) log streaming activated for client ::ffff:192.168.1.170

My current log. So could we turn off all "Video Capturing" components when system locked?

awawa-dev commented 9 months ago

Please test these build (including PC suspend & resume events, background effect on and off): if any instance has background effect enabled, only the grabbers will be disabled, otherwise everything will be disabled.

EDIT: this one https://github.com/awawa-dev/HyperHDR/actions/runs/7648551348

kenny-nt commented 9 months ago

Test log: hyperHDR.log

Test process step:

  1. Effects > Set "Background effect" ON and select an effects -> PC locked > Leds turn to background effect immediately In this test, I can use Home Assistant control HyperHDR to set another effect > OK. Turn off another effect > Led back to background effect

  2. Effects > turn OFF "Background effect" -> PC locked > Leds turn white 1s > turn off and turn on for 2s > leds turn off In this test, of course I can not use Home Assistant to control HyperHDR becuase HyperHDR status is OFF. Log when I use another pc to view HyperHDR status and use Home Assistant to set effect.:

    2024-01-25T09:44:44.830Z [WEBSOCKET] (WebSocketClient.cpp:39) New connection from ::ffff:192.168.1.172
    2024-01-25T09:44:47.663Z [WEBSOCKET] (WebSocketClient.cpp:188) send close: 1000 
    2024-01-25T09:44:48.003Z [WEBSOCKET] (WebSocketClient.cpp:39) New connection from ::ffff:192.168.1.172
    2024-01-25T09:45:16.800Z [EFFECTENGINE0] Run effect "Rainbow swirl fast" on channel 128
    2024-01-25T09:45:16.800Z [EFFECTENGINE0] (EffectEngine.cpp:92) Start the effect: name [Rainbow swirl fast]
    2024-01-25T09:45:16.800Z [MUXER0] Register new input 'Home Assistant@::ffff:192.168.1.99/EFFECT' with priority 128 as inactive
    2024-01-25T09:45:16.801Z [EFFECT0(Rainbo...)] Begin playing the effect with priority: 128
    2024-01-25T09:45:16.802Z [MUXER0] Priority 128 is now active
    2024-01-25T09:45:16.802Z [MUXER0] Set visible priority to 128
    2024-01-25T09:45:16.802Z [HYPERHDR0] New priority[128], previous [255]
    2024-01-25T09:45:16.802Z [HYPERHDR0] New source available -> switch LED-Device on
    2024-01-25T09:45:16.802Z [HYPERHDR0] Components are disabled: ignoring switching LED-Device on
    2024-01-25T09:45:16.802Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:225) setBackLightEnabled: 0
    2024-01-25T09:45:16.802Z [IMAGETOLED_MNG0] Total index number is: 332 (memory: 332). User sparse processing is: enabled, image size: 80 x 45, area number: 166
kenny-nt commented 9 months ago

Could we make a new effect like "OFF Effect" which turn off all leds. And "Idle Effect" always is ON and default effect is "OFF Effects".?

awawa-dev commented 9 months ago

In second case you can unlock it remotely using COMP_ALL but it will also wake up grabbers. You can always set black colour as a background effect: this way LED will be powered off but not locked and grabbers disabled.

kenny-nt commented 9 months ago

In second case you can unlock it remotely using COMP_ALL but it will also wake up grabbers. You can always set black colour as a background effect: this way LED will be powered off but not locked and grabbers disabled.

"Black color" is the same with OFF?

awawa-dev commented 9 months ago

As it says: sets the black "color" on the LEDs, so they should appear turned off (unless e.g. minimal brightness is enabled in HyperHDR Processing)

kenny-nt commented 9 months ago

Have set idle color to Black. Testing behaviors when control via Home Assistant and see if it work normally.

kenny-nt commented 9 months ago
2024-02-01T18:14:09.273Z [DX11_SYSTEM:\\.\DISPLAY2|N] Lost DirectX capture context. Stopping.
2024-02-01T18:14:09.276Z [DX11_SYSTEM:\\.\DISPLAY2|N] Stopped
2024-02-01T18:14:09.276Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:150) Uninit grabber: \\.\DISPLAY2|NVIDIA GeForce GTX 1080 Ti
2024-02-01T18:14:10.435Z [MUXER0] Priority 245 is now inactive
2024-02-01T18:14:10.445Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:196) init
2024-02-01T18:14:10.445Z [MUXER0] Set visible priority to 254
2024-02-01T18:14:10.445Z [HYPERHDR0] New priority[254], previous [245]
2024-02-01T18:14:10.445Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:225) setBackLightEnabled: 0
2024-02-01T18:14:10.446Z [DX11_SYSTEM:\\.\DISPLAY2|N] *************************************************************************************************
2024-02-01T18:14:10.446Z [DX11_SYSTEM:\\.\DISPLAY2|N] Starting DX grabber. Selected: '\\.\DISPLAY2|NVIDIA GeForce GTX 1080 Ti' max width: 1280 (1280) @ 120 fps
2024-02-01T18:14:10.446Z [DX11_SYSTEM:\\.\DISPLAY2|N] *************************************************************************************************
2024-02-01T18:14:10.509Z [DX11_SYSTEM:\\.\DISPLAY2|N] Selected D3D_DRIVER_TYPE_UNKNOWN
2024-02-01T18:14:10.509Z [DX11_SYSTEM:\\.\DISPLAY2|N] Gamut: HDR, min nits: 0.01, max nits: 1499.00, max frame nits: 799.00, white point: [0.31, 0.33]
2024-02-01T18:14:10.509Z [DX11_SYSTEM:\\.\DISPLAY2|N] Using wide gamut for HDR. Target SDR brightness: 200 nits
2024-02-01T18:14:10.592Z [DX11_SYSTEM:\\.\DISPLAY2|N] Surface format: 10
2024-02-01T18:14:10.595Z [DX11_SYSTEM:\\.\DISPLAY2|N] The DX11 device has been initialized. Hardware acceleration is enabled
2024-02-01T18:14:10.595Z [DX11_SYSTEM:\\.\DISPLAY2|N] Started
2024-02-01T18:14:10.718Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-01T18:14:10.755Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-01T18:14:10.779Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-01T18:14:10.787Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-01T18:14:10.791Z [MUXER0] Priority 245 is now active
2024-02-01T18:14:10.793Z [MUXER0] Set visible priority to 245
2024-02-01T18:14:10.793Z [HYPERHDR0] New priority[245], previous [254]
2024-02-01T18:14:10.793Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:225) setBackLightEnabled: 1
2024-02-01T18:14:10.813Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-01T18:14:10.821Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-01T18:14:18.202Z [WEBSOCKET] (HyperAPI.cpp:957) log streaming activated for client ::ffff:192.168.1.11
2024-02-01T18:14:52.280Z [PERFORMANCE] [INSTANCE0: FPS = 118.28, processed = 7097], [LED0: FPS = 47.50, send = 2850, processed = 2850, dropped = 149]

Could you check this case? Windows have turn off monitor in Power Options I set 15min for Windows automatically turn off the Monitor and HDR detects this event but the leds still light on. Would you mind make when Windows turn off monitor (not user turn off monitor by button), HyperHDR will set led to idle state?

awawa-dev commented 9 months ago

https://github.com/awawa-dev/HyperHDR/actions/runs/7749679037 Test and let me know if it works fine. At this stage, I consider this topic closed as far as new features are concerned (unless there are errors that, of course, need to be corrected) because...

It reminds me very dangerously of working with clients at work: they come with one problem A, we implement it and that's it. They look at what we have done and say: A actually works, but A is directly related to B C D E F G..., without which they cannot imagine life. Of course, they didn't mention it before ;) I wouldn't like this project to involve similar experiences in the future :)

kenny-nt commented 9 months ago

https://github.com/awawa-dev/HyperHDR/actions/runs/7749679037 Test and let me know if it works fine. At this stage, I consider this topic closed as far as new features are concerned (unless there are errors that, of course, need to be corrected) because...

It reminds me very dangerously of working with clients at work: they come with one problem A, we implement it and that's it. They look at what we have done and say: A actually works, but A is directly related to B C D E F G..., without which they cannot imagine life. Of course, they didn't mention it before ;) I wouldn't like this project to involve similar experiences in the future :)

From the begin till current replies, just about a problem "Windows (or another OS) monitor turn off, HyperHDR must turn off leds or change to idle state. And user still can control led instance via Remote Control or Home Assistant" The hook at first we want is PC turn off monitor when PC get locked > HyperHDR detect windows send turn off monitor signal to selected screen port in "Software Screen Capture" (example PC use 2 monitor: HDMI 1 and selected HDMI 2), and set leds turn off (not disable led instance)

kenny-nt commented 9 months ago
2024-02-02T19:59:18.063Z [HYPER_MANAGER] (HyperHdrManager.cpp:181) OS event: Monitor Off
2024-02-02T19:59:18.065Z [HYPER_MANAGER] The user has set a background effect, and therefore we will not turn off the LEDs when locking the operating system
2024-02-02T19:59:18.068Z [MUXER0] Removed source priority 245
2024-02-02T19:59:18.068Z [MUXER0] Set visible priority to 254
2024-02-02T19:59:18.068Z [HYPERHDR0] New priority[254], previous [245]
2024-02-02T19:59:18.068Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:225) setBackLightEnabled: 0
2024-02-02T19:59:18.068Z [COMPONENTCTRL0] System capture device: disabled
2024-02-02T19:59:18.071Z [DX11_SYSTEM:\\.\DISPLAY2|N] Stopped
2024-02-02T19:59:23.745Z [HYPER_MANAGER] (HyperHdrManager.cpp:181) OS event: Monitor On
2024-02-02T19:59:23.761Z [MUXER0] Register new input 'System/SYSTEMGRABBER' with priority 245 as inactive
2024-02-02T19:59:23.761Z [COMPONENTCTRL0] System capture device: enabled
2024-02-02T19:59:23.773Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:196) init
2024-02-02T19:59:23.774Z [DX11_SYSTEM:\\.\DISPLAY2|N] Started
2024-02-02T19:59:23.802Z [MUXER0] Priority 245 is now active
2024-02-02T19:59:23.803Z [MUXER0] Set visible priority to 245
2024-02-02T19:59:23.803Z [HYPERHDR0] New priority[245], previous [254]
2024-02-02T19:59:23.803Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:225) setBackLightEnabled: 1
2024-02-02T19:59:31.041Z [DX11_SYSTEM:\\.\DISPLAY2|N] Lost DirectX capture context. Stopping.
2024-02-02T19:59:31.044Z [DX11_SYSTEM:\\.\DISPLAY2|N] Stopped
2024-02-02T19:59:31.044Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:150) Uninit grabber: \\.\DISPLAY2|NVIDIA GeForce GTX 1080 Ti
2024-02-02T19:59:32.197Z [MUXER0] Priority 245 is now inactive
2024-02-02T19:59:32.211Z [MUXER0] Set visible priority to 254
2024-02-02T19:59:32.211Z [HYPERHDR0] New priority[254], previous [245]
2024-02-02T19:59:32.212Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:225) setBackLightEnabled: 0
2024-02-02T19:59:32.224Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:196) init
2024-02-02T19:59:32.226Z [DX11_SYSTEM:\\.\DISPLAY2|N] *************************************************************************************************
2024-02-02T19:59:32.226Z [DX11_SYSTEM:\\.\DISPLAY2|N] Starting DX grabber. Selected: '\\.\DISPLAY2|NVIDIA GeForce GTX 1080 Ti' max width: 1280 (1280) @ 120 fps
2024-02-02T19:59:32.226Z [DX11_SYSTEM:\\.\DISPLAY2|N] *************************************************************************************************
2024-02-02T19:59:32.293Z [DX11_SYSTEM:\\.\DISPLAY2|N] Selected D3D_DRIVER_TYPE_UNKNOWN
2024-02-02T19:59:32.293Z [DX11_SYSTEM:\\.\DISPLAY2|N] Gamut: HDR, min nits: 0.01, max nits: 1499.00, max frame nits: 799.00, white point: [0.31, 0.33]
2024-02-02T19:59:32.293Z [DX11_SYSTEM:\\.\DISPLAY2|N] Using wide gamut for HDR. Target SDR brightness: 200 nits
2024-02-02T19:59:32.367Z [DX11_SYSTEM:\\.\DISPLAY2|N] Surface format: 10
2024-02-02T19:59:32.369Z [DX11_SYSTEM:\\.\DISPLAY2|N] The DX11 device has been initialized. Hardware acceleration is enabled
2024-02-02T19:59:32.369Z [DX11_SYSTEM:\\.\DISPLAY2|N] Started
2024-02-02T19:59:32.553Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-02T19:59:32.579Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-02T19:59:32.593Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-02T19:59:32.606Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-02T19:59:32.628Z [MUXER0] Priority 245 is now active
2024-02-02T19:59:32.645Z [MUXER0] Set visible priority to 245
2024-02-02T19:59:32.645Z [HYPERHDR0] New priority[245], previous [254]
2024-02-02T19:59:32.645Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:225) setBackLightEnabled: 1
2024-02-02T19:59:32.654Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-02T19:59:32.659Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?

Currently test when locked by press Win + L => leds set to idle effect immediately Auto turn off monitor > leds set to idle effect too.

Sorry about keep this topic go on but I think this topic is going on because of developing a new feature, just because of maintaining or make-it-better "turn off leds when os locked and screen get turned off"

awawa-dev commented 9 months ago

No problem but it started from turning leds off, then to the case to not turn them off if the effect is set and disable the grabbers instead and to detect monitor turn off/on events too. I implemented it because I also consider it as an interesting feature but if I know all the cases from the beginning it would cost less of my developing time to implement it all at once. So I assume it works as it should now and I can merge the changes?

kenny-nt commented 9 months ago

No problem but it started from turning leds off, then to the case to not turn them off if the effect is set and disable the grabbers instead and to detect monitor turn off/on events too. I implemented it because I also consider it as an interesting feature but if I know all the cases from the beginning it would cost less of my developing time to implement it all at once. So I assume it works as it should now and I can merge the changes?

As I have just tested, this feature is working perfectly now Leds turn idle state as black color and back on screen grabber immediately because the instance keep on working not be disabled. Thanks for your help!!!!

awawa-dev commented 9 months ago

I created a PR but there were serious problems with the merge due to the lengthy process of adding these changes: please test the latest build after the merge https://github.com/awawa-dev/HyperHDR/actions/runs/7759823449

kenny-nt commented 9 months ago

I created a PR but there were serious problems with the merge due to the lengthy process of adding these changes: please test the latest build after the merge https://github.com/awawa-dev/HyperHDR/actions/runs/7759823449

I am testing carefully. Don't know why sometimes the leds does not turn on after windows unlocked. I must go to "Video Capturing" > unstick + save and re-stick "Instance Screen Capture" + save (leds still off) Changing Devices in Software Screen Capture to port of screen 2 + save and change back to screen 1 port + save to make screen capture working again.

awawa-dev commented 9 months ago

You must see what is in the logs: are locked on/off events visible there. I do not have an opportunity to test multi-monitors configuration.

kenny-nt commented 9 months ago

You must see what is in the logs: are locked on/off events visible there. I do not have an opportunity to test multi-monitors configuration.

2024-02-03T08:20:50.637Z [HYPER_MANAGER] (HyperHdrManager.cpp:181) OS event: OS locked
2024-02-03T08:20:50.644Z [HYPER_MANAGER] The user has set a background effect, and therefore we will not turn off the LEDs when locking the operating system
2024-02-03T08:20:50.645Z [MUXER0] Removed source priority 245
2024-02-03T08:20:50.645Z [MUXER0] Set visible priority to 254
2024-02-03T08:20:50.645Z [HYPERHDR0] New priority[254], previous [245]
2024-02-03T08:20:50.645Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:225) setBackLightEnabled: 0
2024-02-03T08:20:50.646Z [COMPONENTCTRL0] System capture device: disabled
2024-02-03T08:20:50.651Z [DX11_SYSTEM:\\.\DISPLAY2|N] Stopped
2024-02-03T08:21:04.946Z [HYPER_MANAGER] (HyperHdrManager.cpp:181) OS event: OS unlocked
2024-02-03T08:21:04.956Z [MUXER0] Register new input 'System/SYSTEMGRABBER' with priority 245 as inactive
2024-02-03T08:21:04.956Z [COMPONENTCTRL0] System capture device: enabled
2024-02-03T08:21:04.960Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:196) init
2024-02-03T08:21:04.961Z [DX11_SYSTEM:\\.\DISPLAY2|N] Started

Here is log when Windows locked and unlocked and the led not turn on screen grabber. Leds turn off (maybe idle effect). I look at Remote Control > there is no Screen Grabber, just only idle effect test

awawa-dev commented 9 months ago

It's just a part of logs...on the screenshot HyperHDR shows that you have multiply instances but can't find a trace of rest of them in logs. There is nothing more at the end after you unlocked the os?

kenny-nt commented 9 months ago

Let me test more and carefully . I will post full log when system locked/unlocked or monitor off/on later

kenny-nt commented 9 months ago

hyperHDR.log Monitor is back on > leds are all white for a few seconds then turn off and few seconds later screen grabber is working As your opinion, are there anything need to be optimized or it is just OK?

awawa-dev commented 9 months ago

The logs are fine, no errors. The DirectX grabber will not deliver a new video frame if the screen does not change, which is why the warnings appeared. The LEDs were not turned off and on due to the active background effect. Only the system grabber was stopped and restarted after resuming.

kenny-nt commented 9 months ago

The logs are fine, no errors. The DirectX grabber will not deliver a new video frame if the screen does not change, which is why the warnings appeared. The LEDs were not turned off and on due to the active background effect. Only the system grabber was stopped and restarted after resuming.

hyperHDR.log

Display 1 is Display Port, Display 2 is HDMI >>> My setting is Display 2 for Screen grabber When I unlock PC, Leds still off. I must go to Video Capture change Display 2 to Display 1 > Save And change back Display 2 > Save Seem there is some delay for the Display 2 start init when PC unlocked. (My PC is not sleep, it is always ON). Need any "retry" setting for Screen Grapper when HyperHDR can not detect Screen Grabber Display???

kenny-nt commented 9 months ago
2024-02-06T15:23:19.656Z [WEBSOCKET] (WebSocketClient.cpp:188) send close: 1000 
2024-02-06T16:38:50.887Z [WEBSOCKET] (WebSocketClient.cpp:39) New connection from ::ffff:192.168.1.11
2024-02-06T16:38:53.027Z [WEBSOCKET] (HyperAPI.cpp:957) log streaming activated for client ::ffff:192.168.1.11
2024-02-06T16:39:21.911Z [WEBSOCKET] (HyperAPI.cpp:966) log streaming deactivated for client  ::ffff:192.168.1.11
2024-02-06T16:39:24.135Z [WEBSOCKET] (HyperAPI.cpp:1109) message: [{"command":"leddevice","ledDeviceType":"","params":{},"subcommand":"hasLedClock","tan":1}]
2024-02-06T16:39:31.959Z [DX11_SYSTEM:\\.\DISPLAY2|N] Restarting video grabber is now blocked due to reloading of the configuration
2024-02-06T16:39:31.960Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:125) setHdrToneMappingMode to: Disabled
2024-02-06T16:39:31.960Z [SIGNAL_OLD] (DetectionManual.cpp:84) Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
2024-02-06T16:39:31.960Z [SIGNAL_OLD] (DetectionManual.cpp:74) Signal threshold set to: {0, 0, 0} and frames: 50
2024-02-06T16:39:31.960Z [DX11_SYSTEM:\\.\DISPLAY2|N] (Grabber.cpp:380) setDeviceVideoStandard preparing to restart video grabber. Old: '\\.\DISPLAY2|NVIDIA GeForce GTX 1080 Ti' new: '\\.\DISPLAY1|NVIDIA GeForce GTX 1080 Ti'
2024-02-06T16:39:31.960Z [DX11_SYSTEM:\\.\DISPLAY2|N] Delayed restart of the grabber due to change of selected device
2024-02-06T16:39:31.960Z [DX11_SYSTEM:\\.\DISPLAY2|N] (Grabber.cpp:286) Planned restart of video grabber after reloading of the configuration
2024-02-06T16:39:31.960Z [DX11_SYSTEM:\\.\DISPLAY2|N] Stopped
2024-02-06T16:39:31.960Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:150) Uninit grabber: \\.\DISPLAY1|NVIDIA GeForce GTX 1080 Ti
2024-02-06T16:39:31.982Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:196) init
2024-02-06T16:39:31.983Z [DX11_SYSTEM:\\.\DISPLAY2|N] *************************************************************************************************
2024-02-06T16:39:31.983Z [DX11_SYSTEM:\\.\DISPLAY2|N] Starting DX grabber. Selected: '\\.\DISPLAY1|NVIDIA GeForce GTX 1080 Ti' max width: 1280 (1280) @ 120 fps
2024-02-06T16:39:31.983Z [DX11_SYSTEM:\\.\DISPLAY2|N] *************************************************************************************************
2024-02-06T16:39:32.070Z [DX11_SYSTEM:\\.\DISPLAY2|N] Selected D3D_DRIVER_TYPE_UNKNOWN
2024-02-06T16:39:32.070Z [DX11_SYSTEM:\\.\DISPLAY2|N] Gamut: SDR, min nits: 0.50, max nits: 270.00, max frame nits: 270.00, white point: [0.31, 0.33]
2024-02-06T16:39:32.070Z [DX11_SYSTEM:\\.\DISPLAY2|N] Using BGRA format
2024-02-06T16:39:32.071Z [DX11_SYSTEM:\\.\DISPLAY2|N] Surface format: 87
2024-02-06T16:39:32.073Z [DX11_SYSTEM:\\.\DISPLAY2|N] The DX11 device has been initialized. Hardware acceleration is enabled
2024-02-06T16:39:32.073Z [DX11_SYSTEM:\\.\DISPLAY2|N] Started
2024-02-06T16:39:32.087Z [MUXER0] Priority 245 is now active
2024-02-06T16:39:32.087Z [MUXER0] Set visible priority to 245
2024-02-06T16:39:32.087Z [HYPERHDR0] New priority[245], previous [254]
2024-02-06T16:39:32.087Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:225) setBackLightEnabled: 1
2024-02-06T16:39:32.087Z [IMAGETOLED_MNG0] Total index number is: 134400 (memory: 134400). User sparse processing is: disabled, image size: 960 x 540, area number: 168
2024-02-06T16:39:32.090Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-06T16:39:32.106Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-06T16:39:32.122Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-06T16:39:32.138Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-06T16:39:32.146Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-06T16:39:32.162Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-06T16:39:32.555Z [IMAGETOLED_MNG0] Total index number is: 134400 (memory: 134400). User sparse processing is: disabled, image size: 960 x 540, area number: 168
2024-02-06T16:39:35.358Z [DX11_SYSTEM:\\.\DISPLAY2|N] Restarting video grabber is now blocked due to reloading of the configuration
2024-02-06T16:39:35.358Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:125) setHdrToneMappingMode to: Disabled
2024-02-06T16:39:35.358Z [SIGNAL_OLD] (DetectionManual.cpp:84) Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
2024-02-06T16:39:35.358Z [SIGNAL_OLD] (DetectionManual.cpp:74) Signal threshold set to: {0, 0, 0} and frames: 50
2024-02-06T16:39:35.359Z [DX11_SYSTEM:\\.\DISPLAY2|N] (Grabber.cpp:380) setDeviceVideoStandard preparing to restart video grabber. Old: '\\.\DISPLAY1|NVIDIA GeForce GTX 1080 Ti' new: '\\.\DISPLAY2|NVIDIA GeForce GTX 1080 Ti'
2024-02-06T16:39:35.359Z [DX11_SYSTEM:\\.\DISPLAY2|N] Delayed restart of the grabber due to change of selected device
2024-02-06T16:39:35.359Z [DX11_SYSTEM:\\.\DISPLAY2|N] (Grabber.cpp:286) Planned restart of video grabber after reloading of the configuration
2024-02-06T16:39:35.359Z [DX11_SYSTEM:\\.\DISPLAY2|N] Stopped
2024-02-06T16:39:35.359Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:150) Uninit grabber: \\.\DISPLAY2|NVIDIA GeForce GTX 1080 Ti
2024-02-06T16:39:35.368Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:196) init
2024-02-06T16:39:35.369Z [DX11_SYSTEM:\\.\DISPLAY2|N] *************************************************************************************************
2024-02-06T16:39:35.369Z [DX11_SYSTEM:\\.\DISPLAY2|N] Starting DX grabber. Selected: '\\.\DISPLAY2|NVIDIA GeForce GTX 1080 Ti' max width: 1280 (1280) @ 120 fps
2024-02-06T16:39:35.369Z [DX11_SYSTEM:\\.\DISPLAY2|N] *************************************************************************************************
2024-02-06T16:39:35.437Z [DX11_SYSTEM:\\.\DISPLAY2|N] Selected D3D_DRIVER_TYPE_UNKNOWN
2024-02-06T16:39:35.437Z [DX11_SYSTEM:\\.\DISPLAY2|N] Gamut: HDR, min nits: 0.01, max nits: 1499.00, max frame nits: 799.00, white point: [0.31, 0.33]
2024-02-06T16:39:35.437Z [DX11_SYSTEM:\\.\DISPLAY2|N] Using wide gamut for HDR. Target SDR brightness: 200 nits
2024-02-06T16:39:35.437Z [DX11_SYSTEM:\\.\DISPLAY2|N] Surface format: 10
2024-02-06T16:39:35.440Z [DX11_SYSTEM:\\.\DISPLAY2|N] The DX11 device has been initialized. Hardware acceleration is enabled
2024-02-06T16:39:35.440Z [DX11_SYSTEM:\\.\DISPLAY2|N] Started
2024-02-06T16:39:35.450Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-06T16:39:35.457Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-06T16:39:35.468Z [IMAGETOLED_MNG0] Total index number is: 240640 (memory: 240640). User sparse processing is: disabled, image size: 1280 x 720, area number: 168
2024-02-06T16:39:35.473Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-06T16:39:35.481Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-06T16:39:35.489Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-06T16:39:35.497Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:796) AcquireNextFrame didn't return the frame. Just warning: the screen has not changed?
2024-02-06T16:39:38.013Z [WEBSOCKET] (HyperAPI.cpp:957) log streaming activated for client ::ffff:192.168.1.11

Screen grabber suddently stopped without any logs.

awawa-dev commented 9 months ago

No errors just the same warnings I already explaned, it needs the screens to be changed by some user action. DirectX works that way so nothing to change or retry since everything is still OK in logs.

kenny-nt commented 9 months ago

No errors just the same warnings I already explaned, it needs the screens to be changed by some user action. DirectX works that way so nothing to change or retry since everything is still OK in logs.

I know no errors, but HyperHDR can not detect Dispay 2 so it get Dispaly 1 instead (but in Video Capturing > Display 2 still selected)

awawa-dev commented 9 months ago

Try this build https://github.com/awawa-dev/HyperHDR/actions/runs/7808973249

kenny-nt commented 9 months ago

Try this build https://github.com/awawa-dev/HyperHDR/actions/runs/7808973249

2024-02-07T21:53:55.587Z [HYPER_MANAGER] (HyperHdrManager.cpp:181) OS event: Monitor On
2024-02-07T21:53:58.606Z [MUXER0] Register new input 'System/SYSTEMGRABBER' with priority 245 as inactive
2024-02-07T21:53:58.606Z [COMPONENTCTRL0] System capture device: enabled
2024-02-07T21:53:58.606Z [MUXER1] Register new input 'System/VIDEOGRABBER' with priority 240 as inactive
2024-02-07T21:53:58.606Z [COMPONENTCTRL1] Video capture device: enabled
2024-02-07T21:53:58.607Z [MEDIA_FOUNDATION:AUTO] Multithreading for MEDIA_FOUNDATION is enabled. Available thread's count 4
2024-02-07T21:53:58.607Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:196) init
2024-02-07T21:53:58.607Z [DX11_SYSTEM:\\.\DISPLAY2|N] Started
2024-02-07T21:53:58.607Z [MEDIA_FOUNDATION:AUTO] Starting to enumerate video capture devices
2024-02-07T21:53:58.608Z [MEDIA_FOUNDATION:AUTO] (MFGrabber.cpp:427) Detected 0 devices
2024-02-07T21:53:58.608Z [MEDIA_FOUNDATION:AUTO] (MFGrabber.cpp:262) Forcing auto discovery device
2024-02-07T21:53:58.608Z [MEDIA_FOUNDATION:AUTO] Could not find any capture device
2024-02-07T21:55:01.451Z [HYPER_MANAGER] (HyperHdrManager.cpp:181) OS event: Monitor Off
2024-02-07T21:55:01.453Z [HYPER_MANAGER] The user has set a background effect, and therefore we will not turn off the LEDs when locking the operating system
2024-02-07T21:55:01.453Z [MUXER0] Removed source priority 245
2024-02-07T21:55:01.453Z [COMPONENTCTRL0] System capture device: disabled
2024-02-07T21:55:01.454Z [MUXER1] Removed source priority 240
2024-02-07T21:55:01.455Z [COMPONENTCTRL1] Video capture device: disabled
2024-02-07T21:55:01.455Z [DX11_SYSTEM:\\.\DISPLAY2|N] Stopped
2024-02-07T21:55:28.301Z [HYPER_MANAGER] (HyperHdrManager.cpp:181) OS event: Monitor On
2024-02-07T21:55:31.387Z [MUXER0] Register new input 'System/SYSTEMGRABBER' with priority 245 as inactive
2024-02-07T21:55:31.387Z [COMPONENTCTRL0] System capture device: enabled
2024-02-07T21:55:31.387Z [MUXER1] Register new input 'System/VIDEOGRABBER' with priority 240 as inactive
2024-02-07T21:55:31.387Z [COMPONENTCTRL1] Video capture device: enabled
2024-02-07T21:55:31.388Z [MEDIA_FOUNDATION:AUTO] Multithreading for MEDIA_FOUNDATION is enabled. Available thread's count 4
2024-02-07T21:55:31.388Z [MEDIA_FOUNDATION:AUTO] Starting to enumerate video capture devices
2024-02-07T21:55:31.388Z [DX11_SYSTEM:\\.\DISPLAY2|N] (DxGrabber.cpp:196) init
2024-02-07T21:55:31.388Z [DX11_SYSTEM:\\.\DISPLAY2|N] Started
2024-02-07T21:55:31.389Z [MEDIA_FOUNDATION:AUTO] (MFGrabber.cpp:427) Detected 0 devices
2024-02-07T21:55:31.389Z [MEDIA_FOUNDATION:AUTO] (MFGrabber.cpp:262) Forcing auto discovery device
2024-02-07T21:55:31.389Z [MEDIA_FOUNDATION:AUTO] Could not find any capture device
2024-02-07T21:55:48.960Z [HYPER_MANAGER] (HyperHdrManager.cpp:181) OS event: OS unlocked
2024-02-07T21:56:10.116Z [WEBSOCKET] (HyperAPI.cpp:957) log streaming activated for client ::ffff:192.168.1.11

Seem delay is not the point. Retries is referred

awawa-dev commented 9 months ago

So why these monitors are absent after 3 seconds? Are they still turned off manually? Because they should wake up after such a long time. Completely different case again? Currently, I dont plan provide a retry mechanism for such a special case in an already special case (multi-monitor) that I cant repeat in my setup.

kenny-nt commented 9 months ago

My PC is always ON (no sleep or hibernate) and just screen turn off by Windows Power Options. Maybe it caused by HDMI Port or just because of my Samsung Monitor (only have HDMI and Type C port) Let me test again carefully.

kenny-nt commented 8 months ago

Have tested carefully again. My PC connect to Display 1 via Display Port and Display 2 via HDMI. When my PC back on from "Turn off monitor" event, HDMI port is recognized later than DisplayPort so in "Video Capturing" >>> Software Screen Capture is still set to Display 2 but i read in log > HyperHDR have set Software Screen Capture to "Automatic" and of course Display 1 (DP) is set automatically instead of Display 2 (HDMI) Can you make some shortcut for HyperHDR system tray icon about switching Video Capture Source?

Summary: press anykey in keyboard to make PC turn on Monitor again > DP is working at first while HDMI is keeping on detecting. After 3s, HyperHDR can not detect current setting source (HDMI) > it changed to Automatically, about 10s, HDMI monitor is detected but HyperHDR had selected DP as Video Capturing Source.... And I must go to Video Capturing for change source to display 1 > save and change back to display 2 > save for HyperHDR capture Display 2 again...