Skip to content
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

Early implementation of feature #10 - video sync (Prismatic) #13

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

imkebe
Copy link

@imkebe imkebe commented Feb 8, 2022

New:

  • lightpack - wrapper to initialize and sync Prismatic via it's telnet API
  • lightsync - a generic module to handle multiple screen-grabbing engines

Changes:

  • gui - added button and methods for handling second nonblocking thread to sync with Prismatic

Removed:

  • None

Not implemented:

  • exception handling
  • remote sync engine availability sensing
  • multi-monitors

More in #10 feature comment

@imkebe imkebe changed the title Videosync prismatic wrapper Early implementation of feature #10 - video sync (Prismatic) Feb 8, 2022
@subraizada3
Copy link
Owner

I tried this out today and it worked well. Prismatic does have some issues with display scaling / 4k monitors on Linux, but the functionality you've implemented for our side of the HTTP interface is working as expected.

I think it would be good to refactor this into a QWidget which the main application can load into itself. We will probably want multiple backends for video sync. You've already implemented 1 (Prismatic) and identified another (Hyperion). I'd like to implement one that uses X directly (for Linux), like what Maxr1998 mentioned in #10. There can be a dropdown in the main GUI which allows for a specific backend to be selected and activated.

I can work on refactoring your branch into the QWidget architecture over this week.

@imkebe
Copy link
Author

imkebe commented Feb 14, 2022

Great!
I was playing a little over the weekend.

Zrzut ekranu 2022-02-14 o 12 06 55

I think that we need a settings section to setup different grabbers. I was thinking that external grabber is a way to go because it already solves a problem in a mature way and it's OS agnostic. However i can see that we could have:

  • Native/Builtin
  • Prismatic
  • Hyperion/HyperHDR

And in settings we could choose one of them and show related parameters like IP address, port, etc.

P.S.
Also i added tray icon. Overall I was thinking of removing buttons to setup colors in favour of dobleclick/longpress color[1--4] button to set them. And disabling brigtness dial when using Lightsync.
However we need to read current color setting from the device.

@frumble
Copy link

frumble commented May 13, 2023

Hey, any progress on this? HyperHDR support would be neat! Only HyperHDR supports Wayland, which is the way, the ecosystem moves.

@imkebe
Copy link
Author

imkebe commented May 17, 2023

@frumble I'm working on new refreshed app using 27gn950controller library. HyperHDR is a Hyperion fork. I'm using a rawudp module for synchronization and it work well. I will post update when done.

@zolex
Copy link

zolex commented Sep 26, 2023

bro, this is awesome! it works like acharm and has a super fast response time in video sync mode (the original LG UltraGear Control Center is pretty much useless because its so slow).

Thank you so much, finally I have the immersion I hoped to get when buying the 38GN950B <3

@frumble
Copy link

frumble commented Sep 26, 2023

bro, this is awesome! it works like acharm and has a super fast response time in video sync mode (the original LG UltraGear Control Center is pretty much useless because its so slow).

I’m confused, haven’t heard back since May from him, in the post above he wrote that the tool needs a setting for different video grabbers. How do you use the code?

@zolex
Copy link

zolex commented Sep 26, 2023

bro, this is awesome! it works like acharm and has a super fast response time in video sync mode (the original LG UltraGear Control Center is pretty much useless because its so slow).

I’m confused, haven’t heard back since May from him, in the post above he wrote that the tool needs a setting for different video grabbers. How do you use the code?

Here he described how to set it up.

#10

@b0b33140
Copy link

@frumble I'm working on new refreshed app using 27gn950controller library. HyperHDR is a Hyperion fork. I'm using a rawudp module for synchronization and it work well. I will post update when done.

@imkebe I use Prismatik and it works much better than LG's software. However Prismatik doesn't handle multiple instances very well and crashes at random times. Is it possible to share your code to make HyperHDR work?

@imkebe
Copy link
Author

imkebe commented Jan 11, 2025

@b0b33140 I've started to build a new app based on this library however still in draft. Look at my comment because I've posted a Hyperion (HyperHDR is a fork of it) RAWUDP script that works fine.

@b0b33140
Copy link

Thanks @imkebe. Is it possible to explain to me how this script works? I am not a developer and my skills are limited.

@imkebe
Copy link
Author

imkebe commented Jan 12, 2025

Just run it. It sends to the USB device the pixel data of led array. It listen for the UDP packets send from the HyperHDR.
Run the HyperHDR setup the UDP RAW and set proper amount of LED's. And it's jus it.

@b0b33140
Copy link

@imkebe I tried the script but it gives me this error:
ImportError: Unable to load any of the following libraries:libhidapi-hidraw.so libhidapi-hidraw.so.0 libhidapi-libusb.so libhidapi-libusb.so.0 libhidapi-iohidmanager.so libhidapi-iohidmanager.so.0 libhidapi.dylib hidapi.dll libhidapi-0.dll
I am using windows 11.

@imkebe
Copy link
Author

imkebe commented Jan 16, 2025

@imkebe I tried the script but it gives me this error: ImportError: Unable to load any of the following libraries:libhidapi-hidraw.so libhidapi-hidraw.so.0 libhidapi-libusb.so libhidapi-libusb.so.0 libhidapi-iohidmanager.so libhidapi-iohidmanager.so.0 libhidapi.dylib hidapi.dll libhidapi-0.dll I am using windows 11.

follow the https://github.com/subraizada3/27gn950controller?tab=readme-ov-file#windows as my script doesn't add any new dependecies. you need to setup library for windows usage i gues.

and btw. do not mistake the CMD/PS with WSL - .so files tell me that you were using WSL? use windows python build

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants