-
Notifications
You must be signed in to change notification settings - Fork 143
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
[WPE 2.38] matchMedia("(dynamic-range: high)") always returns matches=false #1430
Comments
I don't have a physical HDR screen here to reproduce the issue exactly, but I've been debugging where the response to that Now I need to figure out a way to properly implement that HDR detection support, if possible. |
Even I added debug logs in function: static bool dynamicRangeEvaluate() in the file: WebCore/css/MediaQueryEvaluator.cpp where the matchMedia() media query is evaluated. dynamicRangeEvaluate() function is returning false as internally call to screenSupportsHighDynamicRange(frame.mainFrame().view()); is returning false.
In the WebCore/platform/PlatformScreen.h file, screenSupportsHighDynamicRange() function is returning the value as false for other platforms except MAC and iOS. The implementation of screenSupportsHighDynamicRange() is missing for other platforms except MAC and iOS.
IMO, we need to implement PAL APIs for RDK similar to MAC and iOS and we can use below DisplaySettings APIs to know if the HDR is supported by the TV & STB or we can use IARM calls to get the HDR capabilities.
|
For testing purpose, further I changed the implementation of screenSupportsHighDynamicRange() which returns true for other platforms as below and the matchMedia("(dynamic-range: high)") returned matches: true and it worked as expected. Even I could see that AppleTV+ application was able to fetch HDR media segments and the playback used HDR.
|
What I had found until now on the Nexus box I have here is that there's a /proc/brcm/bhdm_edid device driver file that gives interesting info such as:
but yes, your suggested strategy of asking the RDK services about it looks more general and multiplatform, indeed. My field of expertise is centered in the multimedia side of the WPE WebKit browser, so I'm not very acquainted with all the RDK stuff around it or with how to invoke their services. Your curl call isn't working in the box I have here (maybe different port? maybe the development buildroot setup that I have here doesn't match 100% with a production RDK environment?). I managed to make a call like this successful (metro2 is my box), although I didn't get any response from the server, meaning that curl never finishes nor prints any response:
However, this call gives the same result (never finishes, no response) and, obviously, there are no visible effects on the screen (no webpage to load in the browser this time):
A similar outcome happens if I use a command line WebSocket client, such as
@modeveci Do you have some reliable example I can look to about how I can query the getTvHDRSupport and getSettopHDRSupport both from command line and from inside WebKit? |
While testing our work-around solution, we found below edge cases which needs to be considered while implementing solution for this issue
|
In WPE 2.38, media query dynamic-range is supported. But on Sagemcom VA the matches property is always returns false with connected to LG OLED TV(Model number: OLED55C3PSA) which supports HDR. Please see below screenshot. The matches property should return true when the Sagemcom VA is connected to HDR supported TV.
As per https://www.w3.org/TR/mediaqueries-5/#dynamic-range, the matched should say True in such case.
In WPE 2.32 and WPE 2.38, below are the return results.
Test Steps:
Ensure that the Sagemcom VA is connected to HDR supported TV
as shown in the above screenshot. The expected results that should be returned is matches:true for this case.
The text was updated successfully, but these errors were encountered: