Closed quietvoid closed 2 years ago
@saindriches I added your changes, just need to actually test it and fix stuff.
Feels a bit odd that the primaries are over 15 bits, since the documentation uses values based on 50 000 max. Probably have to verify with an XML reference.
Looks like there's no way to validate L10. However L9 passes the tests:
Test case results (' - ' = not applicable or skipped by configuration):
Test case Id 1: FAIL (Video codec compliance)
Test case Id 2: - (Frame continuity)
Test case Id 3: PASS (VUI validation)
Test case Id 4: - (Dual layer validation)
Test case Id 5: PASS (RPU NAL unit presence and position)
Test case Id 6: PASS (RPU header compliance)
Test case Id 7: PASS (Basic DM metadata ('L0') - intrinsic)
Test case Id 8: PASS (Basic DM metadata ('L0') - source comparison)
Test case Id 9: PASS (L1 metadata - intrinsic)
Test case Id 10: PASS (L1 metadata - source comparison)
Test case Id 11: PASS (L2 metadata - source comparison)
Test case Id 12: FAIL (L4 metadata presence)
Test case Id 13: PASS (L6 metadata presence and stability)
Test case Id 14: PASS (Comparison with reference RPU)
Test case Id 15: PASS (L5 metadata presence)
Test case Id 16: PASS (Extended display management metadata general validation)
Test case Id 17: PASS (L3 metadata - source comparison)
Test case Id 18: PASS (L8 metadata - intrinsic)
Test case Id 19: PASS (L8 metadata - source comparison)
Test case Id 20: PASS (L9 metadata - intrinsic)
Test case Id 21: PASS (L9 metadata - source comparison)
Test case Id 22: PASS (L10 metadata - intrinsic)
Test case Id 23: - (ST 2094-10 syntax check)
Test case Id 24: - (ST 2094-10 ext_block_level 1)
Test case Id 25: - (ST 2094-10 ext_block_level 2)
Test case Id 26: - (ST 2094-10 ext_block_level 5)
It's able to verify L10 with an XML metadata, it checks target displays used by L8 and compare correspond L10 with XML data, and will raise an error if values don't match.
Use cmv4_0_2_custom_displays.xml
with changed values in TargetDisplay
:
Level 8 Display Management Metadata mismatch of RPU and external source reference file [E243].
Found Level 10 for target_display_index 255 in RPU but no legal corresponding custom target display in reference XML/MXF.
It will also raise an error if L8 and L10 trims do not correspond (that means any target_display_id
which is predefined or not used by L8 trims also should not appear in L10, and any target in L8 which is not predefined must appear in L10), so it should be OK.
Implements fixes for #104, #105
L8, L9, and L10 metadata blocks can have variable lengths, to avoid serializing unnecessary metadata. That's useful in the case of allowing preset mastering display primaries, as well as being able to support custom primaries.