-
-
Notifications
You must be signed in to change notification settings - Fork 130
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
Allow LUT calibration when no USB grabber is present #518
Conversation
* Fix calibration for USB grabber-less configs * Select active priority for capturing
Hi, since there is no documentation here for the LUT calibration for LG webOS, wanted to know if the calibration for webOS still requires using a Windows computer capable of displaying HDR content and having HyperHDR installed. The Windows computer must be connected to the HDMI input of the TV so that the calibration page is displayed on the TV screen (as HDR content) and live preview in HyperHDR (captured by the grabber). Does HyperHDR then have to get data from webOS Grabber via flatbuffer, or the calculation simply follows via the instance screen capture with priority 245 and the tone mapping from HDR to SDR in software screen capture should be switched off? |
I'm also unable to get calibration to start with flatbuffer, seems like the HyperHDR/sources/utils/LutCalibrator.cpp Line 106 in 5950b22
lut-calibration method returns
{"success": true, "command": "lut-calibration", "tan": 1} HyperHDR/sources/api/JsonAPI.cpp Line 1346 in 5950b22
But there's nothing in the logs with "CALIBRATOR". |
Hi HyperHDR/sources/api/JsonAPI.cpp Line 1342 in 5950b22
I just want to explain that the changes in the beta were available for 3 months for testing and you could then submit comments that were taken into account on an ongoing basis. Currently, I'm taking a long well-deserved break from coding after the release of v20. The configuration without a grabber is not included in my tests because I treat it as a niche setup and I dont have grabberless setup like WebOS (BTW which limit performance of calibration by performing YUV to RGB conversion on its own). But of course, if you find a problem and are able to propose a solution, open a PR. If I have an idea, I will try to advise you. |
Thanks, yeah sorry for that, I found that call, but "for some" reason the connected signal actually never runs in the lut calibrator, my guess was the same: its because we have no grabber, I've checked the ifdefs, some events but couldn't figure out, i hoped you have some idea how should/could debug this. Thanks for v20, enjoy your deserved relaxing. |
Thanks. The model (both calibrator and grabber handler) was rewritten before beta1 and it has changed completely. But now that I looked into current code the issue may be here: HyperHDR/sources/api/HyperAPI.cpp Line 1031 in 52f12b4
it should be checked for nullptr: _lutCalibrator->incomingCommand(_instanceManager->getRootPath(), (_videoGrabber != nullptr) ? _videoGrabber->grabberWrapper() : nullptr, getActiveComponent(), checksum, _startColor, _endColor, limitedRange, saturation, luminance, gammaR, gammaG, gammaB, coef);
|
Thanks, turned out the issue was "related to grabbers", I haven't checked that the issue is persist on the latest codebase, but it was the following: qRegisterMetaType<Image<ColorRgb>>("Image<ColorRgb>"); , but since we had no grabber, we run into this error:
|
Strange... the type is registered when the main daemon starts
|
Probably ColorRgb could be also registered there. |
I dont know why, but |
If the Image type was not registered, you would not have a preview in the live preview window because it is also sent there by signals. I suspect that in the older version this could have resulted from a different life cycle of the calibrator (the moment in which it was created), but this was later changed. You will definitely need a fix #518 (comment) in the latest version and it should work. |
Allows to use other than USB video source for the HDR to SDR tone mapping LUT calibration, when the grabber is not present or the video grabber support was disabled in the build configuration.
Should make the calibration work e.g. for Webos graber-less build.