Netflix / photon

Photon is a Java implementation of the Interoperable Master Format (IMF) standard. IMF is a SMPTE standard whose core constraints are defined in the specification st2067-2:2013
Apache License 2.0
234 stars 77 forks source link

incorrect error message when validating IMF package - Essence descriptor in CPL vs. MXF track file #181

Closed go4shoe closed 7 years ago

go4shoe commented 7 years ago

I am getting an error message validating the following IMF package:

https://drive.google.com/open?id=0B1K1m-YmE28DMGFrbmZZa0JjUWM

Below you find what's in our CPL and in our track file.

It seems consistent to me therefore I believe your error message may be incorrect.

////////////////////////////////////////////////////////////////////////// Photon ERROR Message //////////////////////////////////////////////////////////////////////////

27 Feb 2017 15:26:25,466 [INFO ] [IMPAnalyzer]: ========================================================================== 27 Feb 2017 15:26:25,466 [INFO ] [IMPAnalyzer]: Virtual Track Conformance 27 Feb 2017 15:26:25,466 [INFO ] [IMPAnalyzer]: ========================================================================== 27 Feb 2017 15:26:25,474 [INFO ] [IMPAnalyzer]: CPL_7120fb23-5a28-42b0-b95a-9ecd16ccc2f6.xml Virtual Track Conformance has 1 errors and 0 warnings 27 Feb 2017 15:26:25,475 [ERROR] [IMPAnalyzer]: ERROR-EssenceDescriptor with Id b69d760d-1f69-4bc9-acf3-675e06a660f7 in the CPL's EssenceDescriptorList doesn't match any EssenceDescriptors within the IMFTrackFile resource that references it,

EssenceDescriptor in CPL EssenceDescriptorList with mismatching fields is as follows

2 1 2 1 1 1

,

EssenceDescriptor found in the TrackFile resource with mismatching fields is as follows

1 1 1 2 1 2

////////////////////////////////////////////////////////////////////////// from Telestream's CPL (CPL_7120fb23-5a28-42b0-b95a-9ecd16ccc2f6.xml) //////////////////////////////////////////////////////////////////////////

9 1 1 9 2 1 9 2 1 ////////////////////////////////////////////////////////////////////////// from Telestream's TrackFile (trans_bb2f17fb-ee5c-1441-bb11-31f5148f50be.mxf) ////////////////////////////////////////////////////////////////////////// check the last 9 bytes of Telestream's Picture Component Sizing 09 01 01 09 02 01 09 02 01 | Byte offset| Content ___________|______________________________________________________________ 0000005266 | 80 0C 00 11 00 00 00 03 00 00 00 03 09 01 01 09 ? 0000005282 | 02 01 09 02 01
svenkatrav commented 7 years ago

Thanks for communicating this inconsistency in Photon. We will analyze this in detail and provide update as soon as possible.

svenkatrav commented 7 years ago

This issue is due to incorrect representation of essence descriptors in CPL. The IMP analyzer output below highlights this difference. You can see that CPL has incorrect case for "XRSiz" and "YRSiz" compared to RegXML representation of MXF essence descriptors which is required as per specification 2067-2-2016 section 6.8.

java -cp ./build/libs/*: com.netflix.imflibrary.app.IMPAnalyzer ~/Downloads/MXF_PUB_1 28 Feb 2017 13:05:08,759 [INFO ] [IMPAnalyzer]: ========================================================================== 28 Feb 2017 13:05:08,762 [INFO ] [IMPAnalyzer]: Analyzing IMF package MXF_PUB_1 28 Feb 2017 13:05:08,763 [INFO ] [IMPAnalyzer]: ========================================================================== 28 Feb 2017 13:05:11,157 [INFO ] [IMPAnalyzer]: trans_560e5726-0347-1f47-9eb8-3ed0c48d8519.mxf has no errors or warnings 28 Feb 2017 13:05:11,157 [INFO ] [IMPAnalyzer]: PKL_fe075aed-4bba-4425-bc58-14e11fe4a360.xml has no errors or warnings 28 Feb 2017 13:05:11,158 [INFO ] [IMPAnalyzer]: trans_bb2f17fb-ee5c-1441-bb11-31f5148f50be.mxf has no errors or warnings 28 Feb 2017 13:05:11,158 [INFO ] [IMPAnalyzer]: trans_05fcf7ca-6520-1d45-8143-93da514a329a.mxf has no errors or warnings 28 Feb 2017 13:05:11,158 [INFO ] [IMPAnalyzer]: CPL_7120fb23-5a28-42b0-b95a-9ecd16ccc2f6.xml has no errors or warnings 28 Feb 2017 13:05:11,158 [INFO ] [IMPAnalyzer]: ASSETMAP.xml has no errors or warnings 28 Feb 2017 13:05:11,159 [INFO ] [IMPAnalyzer]:

28 Feb 2017 13:05:11,159 [INFO ] [IMPAnalyzer]: ========================================================================== 28 Feb 2017 13:05:11,159 [INFO ] [IMPAnalyzer]: Virtual Track Conformance 28 Feb 2017 13:05:11,159 [INFO ] [IMPAnalyzer]: ========================================================================== 28 Feb 2017 13:05:11,161 [INFO ] [IMPAnalyzer]: CPL_7120fb23-5a28-42b0-b95a-9ecd16ccc2f6.xml Virtual Track Conformance has 1 errors and 0 warnings 28 Feb 2017 13:05:11,161 [ERROR] [IMPAnalyzer]: ERROR-EssenceDescriptor with Id b69d760d-1f69-4bc9-acf3-675e06a660f7 in the CPL's EssenceDescriptorList doesn't match any EssenceDescriptors within the IMFTrackFile resource that references it,

EssenceDescriptor in CPL EssenceDescriptorList with mismatching fields is as follows 
<CDCIDescriptor xmlns="http://www.smpte-ra.org/reg/395/2014/13/1/aaf">
  <SubDescriptors xmlns="http://www.smpte-ra.org/reg/335/2012">
    <JPEG2000SubDescriptor xmlns="http://www.smpte-ra.org/reg/395/2014/13/1/aaf">
      <PictureComponentSizing xmlns="http://www.smpte-ra.org/reg/335/2012">
        <J2KComponentSizing xmlns="http://www.smpte-ra.org/reg/2003/2012">
          <XRsiz>2</XRsiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
          <YRsiz>1</YRsiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
        </J2KComponentSizing>
        <J2KComponentSizing xmlns="http://www.smpte-ra.org/reg/2003/2012">
          <XRsiz>2</XRsiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
          <YRsiz>1</YRsiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
        </J2KComponentSizing>
        <J2KComponentSizing xmlns="http://www.smpte-ra.org/reg/2003/2012">
          <XRsiz>1</XRsiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
          <YRsiz>1</YRsiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
        </J2KComponentSizing>
      </PictureComponentSizing>
    </JPEG2000SubDescriptor>
  </SubDescriptors>
</CDCIDescriptor>
, 

EssenceDescriptor found in the TrackFile resource with mismatching fields is as follows 
<CDCIDescriptor xmlns="http://www.smpte-ra.org/reg/395/2014/13/1/aaf">
  <SubDescriptors xmlns="http://www.smpte-ra.org/reg/335/2012">
    <JPEG2000SubDescriptor xmlns="http://www.smpte-ra.org/reg/395/2014/13/1/aaf">
      <PictureComponentSizing xmlns="http://www.smpte-ra.org/reg/335/2012">
        <J2KComponentSizing xmlns="http://www.smpte-ra.org/reg/2003/2012">
          <YRSiz>1</YRSiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
          <XRSiz>1</XRSiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
        </J2KComponentSizing>
        <J2KComponentSizing xmlns="http://www.smpte-ra.org/reg/2003/2012">
          <YRSiz>1</YRSiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
          <XRSiz>2</XRSiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
        </J2KComponentSizing>
        <J2KComponentSizing xmlns="http://www.smpte-ra.org/reg/2003/2012">
          <YRSiz>1</YRSiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
          <XRSiz>2</XRSiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
        </J2KComponentSizing>
      </PictureComponentSizing>
    </JPEG2000SubDescriptor>
  </SubDescriptors>
</CDCIDescriptor>
go4shoe commented 7 years ago

Thanks for your message: I am looking at our CPL (not your error report) which values of our CPL are incorrect? Our CPL states

9 1 1 9 2 1 9 2 1 which is consistent of our descriptor 09 01 01 09 02 01 09 02 01 I see correct values in our CPL and consistency between our CPL and the Essence descriptor in the track file.
svenkatrav commented 7 years ago

Essence descriptors are serialized to RegXML fragments as per SMPTE ST 2001-1 using SMPTE Metadata Registry. Metadata type names are case sensitive and the correct name is 'XRSiz' and not 'XRsiz'. Same issue is seen with 'YRSiz' also. FYI, Photon uses https://github.com/sandflow/regxmllib for essence descriptor to RegXML fragment conversion.

go4shoe commented 7 years ago

You are right! Thank you very much - I was entirely focused on the value and not the label.