INTERACT FORUM
Windows => Third Party Plug-ins, Programs, and Skins => Topic started by: Wikinaut on May 03, 2022, 09:15:17 pm
-
I'm learning on how to interface with JRiver on Windows. I'm trying to write an app that detects when JRiver plays a movie with HDR so that I can increase the brightness on the display. The Windows GUI is too bright when the display is at max brightness, but madVR is configured to use it to optimize the picture quality. HDR movies look great that way, but obviously too dark when the display is set to lower brightness.
I'm hitting a roadblock as the COM TLB definitions don't seem to expose any interface that describe the format of the video being played. Can someone point me in the right direction?
-
You should be able to solve that without any custom programming. You can use zones for HDR and non-HDR.
You might also try JRVR.
-
Can you elaborate? What are zones? What is JRVR and how would it help here? Thx!
-
Did some quick googling. How would I leverage zones? I want to play the content on the same display but toggle its configuration.
For JRVR, that seems to be an alternative to madVR, which I really like and now (finally) understand. Do I have to switch renderers just to detect the content type?
-
Given that you want to trigger some external command, I don't see how zones come into it either
I can think of two options
1) poll mcws to discover what is playing now, use data in the library item to determine if the content is hd or not and react accordingly
2) use madvr profiles to trigger an external command when playback starts
Downside with the latter is that I believe it only fires when the profile is entered so stopping play won't exit your HDR mode
I am not familiar with the com interface so unsure whether it has an equivalent to option 1.
If you can't reliably infer HDR from existing metadata then you will need to add some additional process to how you import to the library to store this info.
-
I did not realize that madVR could execute commands on profile activation. This might be exactly what I need! Thank you!
-
So, as you pointed out, that works great when starting a movie, but doesn't reset it afterwards, because "profile deactivation" only triggers when another profile is activated.
But I think I can detect playback being stopped via COM events. Will explore that further...