The hints feature of the GUI is very helpful. We'll often get videos that result in a "Your audio level is very high (on L, R). You should reduce the gain of your audio content." hint, and we can adjust the gain to make it work better. When I tried using dcpomatic2_cli on a file that triggered this hint in the GUI, the command-line version happily processed the file without giving any warnings or hints. This leads me to believe that the software is not running the same checks when used from the command line that it would run when used via the GUI.
Is there currently a way to get hints like this on the command line? I've looked through the documentation and it does not give any indication that there is an option to enable or disable checking for issues (like high audio levels) that would generate hints.
I've looked a bit through the forum, and I saw this helpful note from carl on another thread:
Based on the above, I think it's likely that dcpomatic2_cli does *not* currently run hint analysis (or have an option to do so manually). If that is the case, would it be possible to request that as a feature?
I've got a little bit of programming experience, but sadly I've never worked with C. It looks like the hint analysis happens in a file at src/lib/hints.cc; do you know if it would be feasible for me to learn enough about C to try and break this out into a separate executable? I'm thinking something along the lines of giving this hypothetical command the same [FILM] input as the dcpomatic2_cli command, and the new command would somehow pass that on to the hints.cc code and get either a binary return ("good" or "some hints are applicable here") or, ideally, a text string containing the output of each hint that was triggered.
(Then, in my scripting, I could use dcpomatic2_create to create the project, then run my hypothetical hints-check command, and decide whether to go on to dcpomatic2_cli based on the results of the new command. In an ideal world, I would be able to read the hints that were generated in a project with issues and, for issues where it makes sense, modify the project's metadata.xml file to try fixing them.)
But I have no idea if a roll-my-own-command concept is even remotely feasible; it could be that the dependencies and such would just get outrageously complex. Any insight on this possible solution would be appreciated!