-
-
Notifications
You must be signed in to change notification settings - Fork 396
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
hyperion-x11 crashing on UHD resolution #620
Comments
Thanks all! With version GitHub-b51e67a0/5e559627-1568748826 hyperoin-x11 grabber runs stable with 4k resolution. Issues remaining:
|
That's an interesting one. Yes, looking at the code, the grabber doesn't seem to take resolution changes into account. I see 2 possible ways to solve it :
https://stackoverflow.com/questions/60493878/x11-in-c-xgetwindowattributes-is-too-slow
That means creating a second thread for listening the events while we are grabbing the screen in the first thread. However, although X11 supports multiple threads (https://www.systutorials.com/docs/linux/man/3-XInitThreads/), it has some known issues in multi-threaded environments and is mostly discouraged to use. Another solution would be getting the event from outside of the class (maybe even outside of the process) but that doesn't feel like a good solution. |
For me it is working now, running an instance of hyperion.ng on both machines (HTPC = Manjaro Linux, hyperion harware & server = Raspberry Pi). Grabbing is taking place on HTPC and picture is forwarded via flatbuffer to raspberrypi. Hyperion.ng instance on HTPC is taking care of resolution changes. |
Hyperion-x11 is crashing after an arbitrary period of time, when activating hyperion-ng with an UHD resolution (3840x2160). Crash can not be reproduced under HD resolution (1920x1080).
My system set-up
Terminal Log
[d023552@HTPC ~]$ hyperion-x11 -f 20 -s 16 -a raspberrypi:19400
hyperion-x11:
Version : 1.0.0 (master (GitHub-d263a319/b1fa085d-1566743539) Git Remote: /var/tmp/pamac-build-d023552/hyperion.ng-git/hyperion.ng)
build time: Aug 25 2019 18:51:51
[hyperion-x11 X11GRABBER] Update of screen resolution: [0x0] to [3840x2160]
[hyperion-x11 X11GRABBER] Using XRender for grabbing
[hyperion-x11 X11GRABBER] Update output image resolution: [0x0] to [240x135]
[hyperion-x11 X11GRABBER] Capture interface is now enabled
[hyperion-x11 FLATBUFCONNECTION] Connecting to Hyperion: raspberrypi:19400
[hyperion-x11 X11GRABBER] Update of screen resolution: [3840x2160] to [3840x2160]
[hyperion-x11 X11GRABBER] Using XRender for grabbing
[hyperion-x11 X11GRABBER] Update output image resolution: [240x135] to [240x135]
[hyperion-x11 FLATBUFCONNECTION] Connected to Hyperion: raspberrypi:19400
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt.
You must not let any exception whatsoever propagate through Qt code.
If that is not possible, in Qt 5 you must at least reimplement
QCoreApplication::notify() and catch all exceptions there.
[hyperion-x11 X11GRABBER] Unable to parse message
Additional information
The text was updated successfully, but these errors were encountered: