Ymagis / ClairMeta

Clairmeta is a python package for Digital Cinema Package (DCP) probing and checking.
BSD 3-Clause "New" or "Revised" License
84 stars 22 forks source link

Missing check #171

Closed bioleyl closed 3 years ago

bioleyl commented 3 years ago

I'm testing clairmeta against others dcp validator software with problematics DCP.

For now it looks great but I have found a missing test. When a font is defined in a subtitle container, clairmeta don't check if the font is present. Here is an easydcp error of that kind:

Font resource "3dec6dc0-39d0-498d-97d0-928d2eb78391" not existing, empty or can't be opened.

Normally the cinema server should fallback with arial font but it's not normal that the font is not provided.

I have also 3 questions:

I have at disposition a lot of DCP (working for a cinematheque) and I will make as much test as I can.

bioleyl commented 3 years ago

Pardon me. I made a test on another DCP and clairmeta found that a font was missing. I have to check why it was not the case on the first one.

Again, if you could answer my questions, it will be great. Specially about the report output format. JSON would be really perfect!

remia commented 3 years ago

Hey @bioleyl,

Glad to hear you testing the tool, here is some answer to your questions below.

I made a test on another DCP and clairmeta found that a font was missing. I have to check why it was not the case on the first one.

Please do update if you found why this is the case, for reference the check responsible of doing that is here: https://github.com/Ymagis/ClairMeta/blob/develop/clairmeta/dcp_check_subtitle.py#L379

Is it possible to have another output for validation report? Like json or xml for example. The shell output is not quite easy to get from an other tool.

Where can I found the list of all the checks made by clairmeta?

Starting with version 1.1.0 there is a new python object returned to have more flexibility in analysing the report. The class definition is here https://github.com/Ymagis/ClairMeta/blob/develop/clairmeta/dcp_check_report.py and sample usage can be found in the unit tests here https://github.com/Ymagis/ClairMeta/blob/develop/tests/test_dcp_check.py#L161

Using only the CLI, there is currently no way to have a JSON or XML version of the report but it should be pretty easy to generate one in python using the aforementioned object. Note that there is however JSON and XML output already available for the probe performed by ClairMeta.

How do check an VF against an OV with the cli?

The command line would like this:

python -m clairmeta.cli check -type dcp /path/to/vf -ov /path/to/ov

bioleyl commented 3 years ago

Thanks for your answer.

Actually I'm not developing in python. I made a node JS wrapper to use ClairMeta inside a bigger app.

I will ask a friend who develop in python if he can take a look and provide a you a pull request if he got enough time.

It could be great to have the -format also on the check function

Regards

remia commented 3 years ago

Hi @bioleyl,

I took a quick look at it and opened #172, please try it and let me know if anything is wrong with it.

It could be closed and used by your python developer friend as a basis for a new improved one as well, no issue with that.

bioleyl commented 3 years ago

It looks perfect. All the checks listed with status, message, doc, ...

For me it's good like that. Are you going to release this great new feature ?

remia commented 3 years ago

Hi @bioleyl,

This should be good in version 1.1.1.