-
-
Notifications
You must be signed in to change notification settings - Fork 384
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
Feature/xcb grabber #912
Feature/xcb grabber #912
Conversation
Hello @m-seker 👋 I'm your friendly neighborhood bot and would like to say thank you for So that you and other users can test your changes more quickly, If you make changes to your PR, i create a new link to your workflow artifacts. Best regards, |
6b555f8
to
742c05d
Compare
Here is your new link to your workflow artifacts. |
742c05d
to
4f6063e
Compare
Here is your new link to your workflow artifacts. |
4f6063e
to
291250d
Compare
Here is your new link to your workflow artifacts. |
291250d
to
63cea83
Compare
Here is your new link to your workflow artifacts. |
63cea83
to
20c9fa5
Compare
Here is your new link to your workflow artifacts. |
@@ -0,0 +1,278 @@ | |||
#.rst: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I got this file from another project
@@ -0,0 +1,180 @@ | |||
#.rst: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I got this file from another project
@@ -72,8 +72,13 @@ void X11Grabber::setupResources() | |||
_shminfo.readOnly = False; | |||
XShmAttach(_x11Display, &_shminfo); | |||
} | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixes a bug in X11 grabber. Image resampler needs to be reinitialized during resource setup (Pixel decimation can't be set on the fly without this fix)
} | ||
|
||
if (isActive()) | ||
{ | ||
if (_grabber.updateScreenDimensions() >= 0 ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason for calling updateScreenDimensions every time we want to grab a frame ?
@@ -0,0 +1,436 @@ | |||
#include <utils/Logger.h> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tried to make this file as similar as possible to X11 grabber
@@ -0,0 +1,38 @@ | |||
cmake_minimum_required(VERSION 3.0.0) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
copied from hyperion-x11
@@ -0,0 +1,47 @@ | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
copied from hyperion-x11
@@ -0,0 +1,115 @@ | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
copied from hyperion-x11
@@ -0,0 +1,57 @@ | |||
#pragma once |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
copied from hyperion-x11
src/hyperiond/hyperiond.cpp
Outdated
@@ -117,8 +118,6 @@ HyperionDaemon::HyperionDaemon(const QString rootPath, QObject *parent, const bo | |||
// spawn all Hyperion instances (non blocking) | |||
_instanceManager->startAll(); | |||
|
|||
//connect(_hyperion,SIGNAL(closing()),this,SLOT(freeObjects())); // TODO for app restart, refactor required |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Already done #894
20c9fa5
to
1be3a9a
Compare
Here is your new link to your workflow artifacts. |
1be3a9a
to
89d2e23
Compare
Here is your new link to your workflow artifacts. |
That's interesting. They are set to true next to each other : @Paulchen-Panther do you have any idea why this might happen ? EDIT : I can't reprodice btw. |
I actually didn't think a case where X11 is disabled but XCB is enabed. See my previous post. But I didn't think about a custom compile case. Someone may want to just disable X11 in compile time and leave XCB eanbled. So yes, that's an issue, I'll check. |
„ I actually didn't think a case where X11 is disabled but XCB is enabed. See my previous post.“ As you added Xcb as THE alternative to x11, because x11 has limitations, I would have expected that Xcb is the default going forward and has higher priority during configuration. |
|
„ That's interesting. They are set to true next to each other :“ Looks like the x11 value was used from the CMake Cache |
I would say let's test XCB first in production before reducing priority of X11. |
I do not understand the parameters. Param 1 (RELEASE) is 'x86x64 ' and Param 2 (PLATFORM) is 'x86'? |
PLATFORM is definitely wrong |
Yes, 2nd Parameter is wrong in the repo. Edit: I just fixed it. This is why I am running with an updated version. I run with x11 or x11-dev as platform Nevertheless, let me rebuild the CMake Cache tomorrow. Seems the behavior is my fault. |
@Lord-Grey Warum testest du nicht einfach das Artefakt? Es wurde dafür eingeführt. |
@paulchenpanther Ich habe vom Start her getestet. Wenn Scripts angepasst wurden, dann gehören die natürlich zum Testumfang dazu. |
Du solltest aber erst die Artefakte testen. Danach kannst du gerne selber kompilieren und testen. Das ist der Sinn der Artefakte. |
Trotzdem danke für das testen für das Script. 👍 |
Edit: If X11 and Xcb are enabled during build, this issues does not occur. |
Test Summary: Xcb grabber's main functionality works! Open topics (as X11 supports this correctly):
|
Can you share your logs ? Pixel decimation works OK on me. This must be happening because of an extension that happens to be in my system but not yours, so grabber chooses an alternate path to apply decimation which I don't see EDIT : Resolution detection and selecting XCB as default in case X11 is not available is fixed, see my last commit :88aa4d0 |
401b751
to
88aa4d0
Compare
Here is your new link to your workflow artifacts. |
@m-seker a) Auto detection of resolution change - Works I did a full screenshot:
|
Here is your new link to your workflow artifacts. |
@Lord-Grey Should be fixed with this : e2fb4d0 |
Here is your new link to your workflow artifacts. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-tested. All previous issues were addressed. Good to be merged.
* Add Xcb grabber * update compile instruction Signed-off-by: Paulchen Panther <Paulchen-Panter@protonmail.com> * Fix problem on resolution change + Make XCB default if X11 is not avaialable * Fix decimation problem Co-authored-by: Paulchen Panther <16664240+Paulchen-Panther@users.noreply.github.com> Co-authored-by: Paulchen Panther <Paulchen-Panter@protonmail.com>
Summary
Add XCB grabber. An alternative for X11 grabber.
libx11 has some inherent problems that can't be fixed (#892)
This PR introduces an alternative. Grabbing via XCB should also be a bit faster. Maybe we can make this default instead of X11 in the future.
What kind of change does this PR introduce? (check at least one)
If changing the UI of web configuration, please provide the before/after screenshot:
Does this PR introduce a breaking change? (check one)
If yes, please describe the impact and migration path for existing setups:
The PR fulfills these requirements:
Fixes: #xxx[,#xxx]
, where "xxx" is the issue number)If adding a new feature, the PR's description includes:
PLEASE DON'T FORGET TO ADD YOUR CHANGES TO CHANGELOG.MD
To avoid wasting your time, it's best to open a feature request issue first and wait for approval before working on it.
Other information: