Giter VIP home page Giter VIP logo

photon's Introduction

Photon

Photon is a Java implementation of the Interoperable Master Format (IMF) standard. Photon offers tools for parsing, interpreting and validating constituent files that make an Interoperable Master Package (IMP). These include:

  • AssetMap (ST 429-9)
  • PackingList (ST 429-8)
  • Composition Playlist (ST 2067-3)
  • IMF track files (ST 2067-5)

Photon parses and reads IMF track files and serializes the metadata into the IMF Composition Playlist structure. Currently, Photon provides support for IMF Application #2E (ST 2067-21) and Application #5 ACES (ST 2067-50), and the Immersive Audio Bitstream (IAB) Plug-in (ST 2067-201).

The goal of the Photon is to provide a simple standardized interface to completely validate an IMP.

Build

JDK requirements

Photon can be built using JDK-8. Support for earlier jdk versions has not been tested and/or verified.

Gradle

Photon can be built very easily by using the included Gradle wrapper. Having downloaded the sources, simply invoke the following commands inside the folder containing the sources:

$ ./gradlew clean
$ ./gradlew build

For Windows

$ gradlew.bat clean
$ gradlew.bat build

Full Documentation

Binaries

Binaries and dependency information for Maven, Ivy, Gradle and others can be found at http://search.maven.org.

Change history and version numbers are available at CHANGELOG.md.

Example for Maven:

<dependency>
    <groupId>com.netflix.photon</groupId>
    <artifactId>Photon</artifactId>
    <version>0.1.1</version>
</dependency>

and for Ivy:

<dependency org="com.netflix.photon" name="Photon" rev="0.1.1" />

If you need to download all dependencies, you just have to run:

$ ./gradlew getDependencies

It will download all dependencies into ./build/libs directory, where Photon.*.jar is built. Multiple sample applications have been provided with this project (e.g., com.netflix.imflibrary.app.IMFTrackFileReader). Having obtained the dependencies, you can run an application as follows:

java -cp ./build/libs/*: <fully qualified class name> <zero or more arguments>

E.g.,

java -cp ./build/libs/*: com.netflix.imflibrary.st0429_9.AssetMap asset_map_file_path
java -cp ./build/libs/*: com.netflix.imflibrary.st0429_8.PackingList packing_list_file_path
java -cp ./build/libs/*: com.netflix.imflibrary.st2067_2.Composition composition_playlist_file_path
java -cp ./build/libs/*: com.netflix.imflibrary.app.IMPAnalyzer IMP_folder_path

For Windows please refer to the following examples

To download all dependencies, you just have to run:

$ gradlew.bat getDependencies

It will download all dependencies into build\libs directory, where Photon.*.jar is built. Multiple sample applications have been provided with this project (e.g., com.netflix.imflibrary.app.IMFTrackFileReader). Having obtained the dependencies, you can run an application as follows:

java -cp build\libs\*; <fully qualified class name> <zero or more arguments>

E.g.,

java -cp build\libs\*; com.netflix.imflibrary.st0429_9.AssetMap asset_map_file_path
java -cp build\libs\*; com.netflix.imflibrary.st0429_8.PackingList packing_list_file_path
java -cp build\libs\*; com.netflix.imflibrary.st2067_2.Composition composition_playlist_file_path
java -cp build\libs\*; com.netflix.imflibrary.app.IMPAnalyzer IMP_folder_path

photon's People

Contributors

abitrolly avatar allmethodgrind avatar brendankirby avatar cconcolato avatar cyzhao avatar danielhdz13-netflix avatar davidt-netflix avatar fschleich avatar gradle-update-robot avatar hlsuther avatar imftool avatar jkschneider avatar kosty avatar marcantoine-arnaud avatar palemieux avatar pavlos avatar rajeshr avatar rohitdpuri avatar rpalcolea avatar rspieldenner avatar schakrovorthy avatar svenkatrav avatar tcase-netflix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

photon's Issues

Select Applications valid in the current scope

Hi all,

As I work on integration of the TSP2121 validation, it will add a new codec ProRes to support.
I suppose (as Netflix and for other persons) it can be interesting to provide an IMPAnalyzer with an option to select which Application(s) or not are supported in the analyse.
Like that by default it will support all Applications (App2, App2e, TSP 2121 and maybe App 4 and 5 in the future).

Do you think it can be integrated ? Can I purpose a PR to do it ?

Thanks,
Marc-Antoine

Analyzing IMF package error

04 Aug 2017 22:41:54,959 [INFO ] [IMPAnalyzer]: ==========================================================================
04 Aug 2017 22:41:54,961 [INFO ] [IMPAnalyzer]: Analyzing IMF package IMF_TEST_7
04 Aug 2017 22:41:54,961 [INFO ] [IMPAnalyzer]: ==========================================================================
04 Aug 2017 22:41:56,582 [INFO ] [IMPAnalyzer]: BRING_HOME.mxf has no errors or warnings
04 Aug 2017 22:41:56,582 [INFO ] [IMPAnalyzer]: WAV_82680780-48d5-4d19-a587-ba0353cc3256.mxf has no errors or warnings
04 Aug 2017 22:41:56,584 [INFO ] [IMPAnalyzer]: PKL_e39d1839-7b29-40b2-b3cc-42d63376095f.xml has 1 errors and 0 warnings
04 Aug 2017 22:41:56,584 [ERROR] [IMPAnalyzer]: ERROR-Cannot find asset with path /home/di01/Desktop/IMF_TEST_7/CPL_f007d74c-0e5d-4be6-bdaa-d57f34e20344.xml ID = f007d74c-0e5d-4be6-bdaa-d57f34e20344 [Photon version: 4.6.0-SNAPSHOT]
04 Aug 2017 22:41:56,584 [INFO ] [IMPAnalyzer]: CPL_ed91c2dc-b051-4663-8e91-8aa411610914.xml has 1 errors and 0 warnings
04 Aug 2017 22:41:56,584 [ERROR] [IMPAnalyzer]: ERROR-EssenceDescriptor with ID a3bf13e9-4d65-46a0-988b-c3441f0cae29 has invalid ContentKind(1) indicated by the ContainerFormat as per APPLICATION_2E_COMPOSITION_TYPE [Photon version: 4.6.0-SNAPSHOT]
04 Aug 2017 22:41:56,584 [INFO ] [IMPAnalyzer]: ASSETMAP.xml has no errors or warnings
04 Aug 2017 22:41:56,584 [INFO ] [IMPAnalyzer]:

04 Aug 2017 22:41:56,584 [INFO ] [IMPAnalyzer]: ==========================================================================
04 Aug 2017 22:41:56,584 [INFO ] [IMPAnalyzer]: Virtual Track Conformance
04 Aug 2017 22:41:56,584 [INFO ] [IMPAnalyzer]: ==========================================================================
04 Aug 2017 22:41:56,584 [INFO ] [IMPAnalyzer]: CPL_ed91c2dc-b051-4663-8e91-8aa411610914.xml Virtual Track Conformance has 1 errors and 0 warnings
04 Aug 2017 22:41:56,584 [ERROR] [IMPAnalyzer]: ERROR-EssenceDescriptor with ID a3bf13e9-4d65-46a0-988b-c3441f0cae29 has invalid ContentKind(1) indicated by the ContainerFormat as per APPLICATION_2E_COMPOSITION_TYPE [Photon version: 4.6.0-SNAPSHOT]

Photon allows violation of SMPTE ST 2067-3:2016 part 6.9.3

Specifically: "A given TrackId value shall be used by only one Sequence in each Segment and, if used in one Segment, it shall be used by exactly one Sequence in all other Segments."

For example, in the attached CPL file, there are 2 segments, but TrackId urn:uuid:1f5b6544-3572-4290-9ad9-b518214de94c is only used once.

CPL_IMF9774102_ALOHA_D_2D_UHD_16X9_LB_185_2398_48K_ENG_DS_ME_DS_ENG_51_OPT_M_OPT_M_ENG_9e3701c3-199e-4776-b5d8-7447c64de87a.txt

Build and/or runtime error

Thanks for fixing the previous issues that we have reported.

I cloned the latest photon repository the 'IMPAnalyzer' doesn't run anymore.

Looking at the callstack - this look like the result of a build problem.

Steps to reproduce see below.

I am on Windows 7:

Y:\tools>ver

Microsoft Windows [Version 6.1.7601]

Y:\tools>git clone "https://github.com/Netflix/photon.git"

cd photon

Y:\tools\photon>git tag -l
v0.0.0
v0.0.1
v0.1.0

[snip]

v4.3.5
v4.3.6

Y:\tools\photon>gradlew.bat clean

Y:\tools\photon>gradlew.bat build

Y:\tools\photon>java -cp build\libs*; com.netflix.imflibrary.app.IMPAnalyzer "Y:\bugs\LD-1031 (IMF Packages are rejected by Netflix)\4K Crew Earth Observations
.2_16.12\REMUXED"
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at com.netflix.imflibrary.app.IMPAnalyzer.(IMPAnalyzer.java:38)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more

Build log:

Inferred project: Photon, version: 4.4.0-SNAPSHOT
[buildinfo] Not using buildInfo properties file for this build.
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:writeManifestProperties UP-TO-DATE
:jar UP-TO-DATE
:assemble UP-TO-DATE
:findbugsMain UP-TO-DATE
:writeLicenseHeader
:licenseMain
Unknown file extension: src\main\resources\NOTICE.md
Missing header in: src\main\resources\org\smpte_ra\schemas\st0429_9_2007\AM\assetMap_schema.xsd
Missing header in: src\main\resources\org\smpte_ra\schemas\st0433_2008\dcmlTypes\dcmlTypes.xsd
Missing header in: src\main\resources\org\smpte_ra\schemas\st0429_8_2007\PKL\packingList_schema.xsd
Missing header in: src\main\resources\log4j.properties
Missing header in: src\main\resources\org\smpte_ra\schemas\st2067_2_2016\PKL\packingList_schema.xsd
Missing header in: src\main\resources\org\smpte_ra\schemas\st2067_3_2013\imf-cpl.xsd
Missing header in: src\main\resources\org\smpte_ra\schemas\st2067_3_2016\imf-cpl-20160411.xsd
Missing header in: src\main\resources\org\smpte_ra\schemas\st2067_2_2013\imf-core-constraints-20130620-pal.xsd
Missing header in: src\main\resources\org\w3_2000_09\xmldsig\xmldsig-core-schema.xsd
Missing header in: src\main\resources\reference-registers\Groups.xml
Missing header in: src\main\java\com\netflix\imflibrary\app\IMPAnalyzer.java
Missing header in: src\main\resources\org\smpte_ra\schemas\st2067_2_2016\imf-core-constraints-20160411.xsd
Missing header in: src\main\java\com\netflix\imflibrary\app\MXFEssenceReader.java
Missing header in: src\main\java\com\netflix\imflibrary\app\IMPFixer.java
Missing header in: src\main\resources\reference-registers\Types.xml
Missing header in: src\main\java\com\netflix\imflibrary\Colorimetry.java
Missing header in: src\main\java\com\netflix\imflibrary\RESTfulInterfaces\HeaderPartitionExtractor.java
Missing header in: src\main\java\com\netflix\imflibrary\RESTfulInterfaces\PayloadRecord.java
Missing header in: src\main\resources\reference-registers\Elements.xml
Missing header in: src\main\java\com\netflix\imflibrary\RESTfulInterfaces\IMPValidator.java
Missing header in: src\main\resources\reference-registers\Labels.xml
Missing header in: src\main\java\com\netflix\imflibrary\st2067_2\Application2Composition.java
Missing header in: src\main\java\com\netflix\imflibrary\st2067_2\ApplicationUnsupportedComposition.java
Missing header in: src\main\java\com\netflix\imflibrary\st2067_2\CompositionImageEssenceDescriptorModel.java
Missing header in: src\main\java\com\netflix\imflibrary\st2067_2\CompositionModel_st2067_2_2013.java
Missing header in: src\main\java\com\netflix\imflibrary\st2067_2\CompositionModel_st2067_2_2016.java
Missing header in: src\main\java\com\netflix\imflibrary\st2067_2\IMFCoreConstraintsChecker.java
Missing header in: src\main\java\com\netflix\imflibrary\st2067_2\Application2ExtendedComposition.java
Missing header in: src\main\java\com\netflix\imflibrary\utils\ByteArrayByteRangeProvider.java
Missing header in: src\main\java\com\netflix\imflibrary\utils\Fraction.java
Missing header in: src\main\java\com\netflix\imflibrary\utils\IMFTrackFilePartitionsExtractor.java
Missing header in: src\main\java\com\netflix\imflibrary\utils\RepeatableInputStream.java
Missing header in: src\main\java\com\netflix\imflibrary\utils\UUIDHelper.java
Missing header in: src\main\java\com\netflix\imflibrary\utils\Utilities.java
Missing header in: src\main\java\com\netflix\imflibrary\writerTools\IMPBuilder.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\AssetType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\DigestMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\DSAKeyValueType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\KeyInfoType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\KeyValueType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\CanonicalizationMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\ManifestType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\ObjectType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\package-info.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\ReferenceType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\RetrievalMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\PGPDataType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\RSAKeyValueType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\ObjectFactory.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\SignatureMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\SignaturePropertiesType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\SignatureValueType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\SignatureType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\SignaturePropertyType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\PackingListType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\TransformType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\SignedInfoType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\TransformsType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\SPKIDataType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_9_2007\AM\AssetMapType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\UserText.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\X509IssuerSerialType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_9_2007\AM\ChunkType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_9_2007\AM\package-info.java
Missing header in: generated\org\smpte_ra\schemas\st0429_9_2007\AM\AssetType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_9_2007\AM\UserText.java
Missing header in: generated\org\smpte_ra\schemas\st0429_9_2007\AM\VolumeIndexType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_8_2007\PKL\X509DataType.java
Missing header in: generated\org\smpte_ra\schemas\st0429_9_2007\AM\ObjectFactory.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\CanonicalizationMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\BaseResourceType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\ContentMaturityRatingType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\ContentKindType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\CurrentModeToken.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\CompositionTimecodeType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\CurrentType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\CompositionPlaylistType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\CurrentUnitsToken.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\DeviceIdentifierListType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\DeviceTypeType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\DeviceIdentifierPolyType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\DigestMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\ContentVersionType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\KeyInfoType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\DurationType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\DeviceDescriptionType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\DSAKeyValueType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\KeyValueType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\MarkerResourceType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\MarkerType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\ManifestType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\EssenceDescriptorBaseType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\NamedParmType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\ParameterListType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\PGPDataType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\package-info.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\RateType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\ObjectType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\LocaleType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\ReferenceType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\RSAKeyValueType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\RetrievalMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\SegmentType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\ScopedTokenType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\SignaturePropertiesType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\SignatureMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\SequenceType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\SignatureValueType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\ObjectFactory.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\SignatureType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\SPKIDataType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\TemperatureType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\SignedInfoType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\SignaturePropertyType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\TimeUnitToken.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\TransformsType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\TransformType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\TrackFileResourceType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\TemperatureUnitsToken.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\UserTextType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\StereoImageTrackFileResourceType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\VersionInfoListType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\VoltageUnitsToken.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\X509DataType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\VoltageType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\CanonicalizationMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\BaseResourceType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\CDPSequence.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2013\X509IssuerSerialType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\ContentVersionType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\CompositionTimecodeType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\ContentMaturityRatingType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\ContentKindType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\DeviceIdentifierListType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\CurrentModeToken.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\CurrentUnitsToken.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\CompositionPlaylistType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\DeviceIdentifierPolyType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\CurrentType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\DSAKeyValueType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\DurationType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\DeviceTypeType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\DigestMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\KeyValueType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\KeyInfoType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\DeviceDescriptionType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\EssenceDescriptorBaseType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\MarkerType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\MarkerResourceType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\ManifestType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\ObjectType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\NamedParmType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\package-info.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\LocaleType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\AssetType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\ParameterListType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PGPDataType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\DigestMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\DSAKeyValueType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\KeyInfoType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\ManifestType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\ObjectFactory.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\KeyValueType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\CanonicalizationMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\package-info.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\ObjectType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\PGPDataType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\ReferenceType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\RetrievalMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\SignatureMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\RSAKeyValueType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\SignaturePropertiesType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\SignatureType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\ObjectFactory.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\PackingListType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\SPKIDataType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\SignatureValueType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\SignaturePropertyType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\SignedInfoType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\TransformType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\UserText.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\TransformsType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\X509IssuerSerialType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\RetrievalMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\RateType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\PKL\X509DataType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\SegmentType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\RSAKeyValueType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\ReferenceType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\ScopedTokenType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\SequenceType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\SignatureMethodType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\SignaturePropertyType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\SignaturePropertiesType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\SignatureValueType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\SignedInfoType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\SPKIDataType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\StereoImageTrackFileResourceType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\TemperatureUnitsToken.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\TrackFileResourceType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\SignatureType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\TransformsType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\TemperatureType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\TimeUnitToken.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\VersionInfoListType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\TransformType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\VoltageType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\UserTextType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\VoltageUnitsToken.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\X509IssuerSerialType.java
Missing header in: generated\org\smpte_ra\schemas\st2067_2_2016\X509DataType.java
:licenseTest
Unknown file extension: src\test\resources\CHIMERA_NETFLIX_2398.mxf.hdr
Unknown file extension: src\test\resources\Netflix_Ident_23976_3840x2160_177AR.mxf.idx
Unknown file extension: src\test\resources\IMFTrackFiles\TearsOfSteel_4k_Test_Master_Audio_002.mxf
Unknown file extension: src\test\resources\NMPC_6000ms_6Ch_ch_id.mxf.hdr
Unknown file extension: src\test\resources\TearsOfSteel_4k_Test_Master_Audio_002.mxf
Unknown file extension: src\test\resources\test_mapped_file_set\0311b323-564c-1857-a294-c0822db99baa.mxf
Unknown file extension: src\test\resources\TearsOfSteel_4k_Test_Master_Audio_002.mxf.hdr
Unknown file extension: src\test\resources\test_mapped_file_set\93c158aa-b9e8-152e-9f17-0e9a350ff9ac.mxf
Missing header in: src\test\resources\ASSETMAP.xml
Missing header in: src\test\resources\PKL_e788efe2-1782-4b09-b56d-1336da2413d5.xml
Missing header in: src\test\resources\test_mapped_file_set\CPL_682feecb-7516-4d93-b533-f40d4ce60539.xml
Missing header in: src\test\resources\test_mapped_file_set\ASSETMAP.xml
Missing header in: src\test\resources\CPL_70176947-ea8e-41f9-b2cf-ae58ec8bdb78.xml
Missing header in: src\test\resources\test_mapped_file_set\PKL_51edd4be-4506-494d-a58e-516553055c33.xml
Missing header in: src\test\resources\PKL_2067_2_2016.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_0eb3d1b9-b77b-4d3f-bbe5-7c69b15dca85.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_0eb3d1b9-b77b-4d3f-bbe5-7c69b15dca85_Error.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_CodingEquationError.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_ColorError.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_ColorSpaceError.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_Interlace.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_InterlaceError.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_J2CLayoutError.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_JPEG2000SubDescriptorError.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_RGBAError1.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_QuantizationError.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_SubDescriptorError.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_RGBAComponentError.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_0eb3d1b9-b77b-4d3f-bbe5-7c69b15dca85.xml
Missing header in: src\test\resources\TestIMP\Application2\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_SamplingError.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_0eb3d1b9-b77b-4d3f-bbe5-7c69b15dca85_Error.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_4k.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_CodingEquationError.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_ColorSpaceError.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_InterlaceError.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_ColorError.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_JPEG2000SubDescriptorError.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_J2CLayoutError.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_Interlace.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_QuantizationError.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_RGBAComponentError2.xml
Unknown file extension: src\test\resources\TestIMP\MERIDIAN_Netflix_Photon_161006\MERIDIAN_Netflix_Photon_161006_00.mxf
Unknown file extension: src\test\resources\TestIMP\MERIDIAN_Netflix_Photon_161006\MERIDIAN_Netflix_Photon_161006_00_tt.mxf
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_RGBAComponentError1.xml
Missing header in: src\test\resources\TestIMP\MERIDIAN_Netflix_Photon_161006\ASSETMAP.xml
Unknown file extension: src\test\resources\TestIMP\MERIDIAN_Netflix_Photon_161006\MERIDIAN_Netflix_Photon_161006_ENG-51_00.mxf
Missing header in: src\test\resources\TestIMP\MERIDIAN_Netflix_Photon_161006\OPL_8cf83c32-4949-4f00-b081-01e12b18932f.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_SamplingError.xml
Missing header in: src\test\resources\TestIMP\MERIDIAN_Netflix_Photon_161006\VOLINDEX.xml
Missing header in: src\test\resources\TestIMP\MERIDIAN_Netflix_Photon_161006\CPL_0eb3d1b9-b77b-4d3f-bbe5-7c69b15dca85.xml
Missing header in: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\ASSETMAP.xml
Missing header in: src\test\resources\TestIMP\MERIDIAN_Netflix_Photon_161006\PKL_f5e93462-aed2-44ad-a4ba-2adb65823e7c.xml
Missing header in: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\CPL_BLACKL_202_HD_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4-2016Schema.xml
Missing header in: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\CPL_BLACKL_202_HD_REC709_178_LAS_2016_8fad47bb-ab01-4f0d-a08c-d1e6c6cb62b4_corrected.xml
Missing header in: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\CPL_BLACKL_202_HD_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_supplemental.xml
Missing header in: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\CPL_BLACKL_202_HD_REC709_178_LAS_8fad47bb-ab01-4f0d-a08c-d1e6c6cb62b4.xml
Missing header in: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\CPL_BLACKL_202_HD_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4.xml
Unknown file extension: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\Netflix_Plugfest_Oct2015.mxf.hdr
Unknown file extension: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\Netflix_Plugfest_Oct2015_ENG20.mxf.hdr
Unknown file extension: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\Netflix_Plugfest_Oct2015_ENG51.mxf.hdr
Unknown file extension: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\Netflix_Plugfest_Oct2015_LAS20.mxf.hdr
Unknown file extension: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\Netflix_Plugfest_Oct2015_LAS51.mxf.hdr
Missing header in: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\CPL_BLACKL_202_HD_REC709_178_LAS_8fad47bb-ab01-4f0d-a08c-d1e6c6cb62b4_error.xml
Missing header in: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\PKL_befcd2d4-f35c-45d7-99bb-7f64b51b103c.xml
Missing header in: src\test\resources\TestIMP\Application2Extended\CPL_BLACKL_202_1080p_REC709_178_ENG_fe8cf2f4-1bcd-4145-8f72-6775af4038c4_SubDescriptorError.xml
Missing header in: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\CPL_BLACKL_202_HD_REC709_178_LAS_8fad47bb-ab01-4f0d-a08c-d1e6c6cb62b4_InconsistentNamespaceURI.xml
Missing header in: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\CPL_BLACKL_202_HD_REC709_178_LAS_8fad47bb-ab01-4f0d-a08c-d1e6c6cb62b4_corrected.xml
Missing header in: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\PKL_befcd2d4-f35c-45d7-99bb-7f64b51b103c_corrected.xml
Missing header in: src\test\resources\TestIMP\NYCbCrLT_3840x2160x23.98x10min\ASSETMAP.xml
Unknown file extension: src\test\resources\TestIMP\NYCbCrLT_3840x2160x23.98x10min\NYCbCrLT_3840x2160x2398_full_full.mxf.hdr
Unknown file extension: src\test\resources\TestIMP\NYCbCrLT_3840x2160x23.98x10min\NYCbCrLT_3840x2160x2chx24bitx30.03sec.mxf.hdr
Missing header in: src\test\resources\TestIMP\NYCbCrLT_3840x2160x23.98x10min\CPL_a453b63a-cf4d-454a-8c34-141f560c0100.xml
Missing header in: src\test\resources\TestIMP\NYCbCrLT_3840x2160x23.98x10min\ASSETMAP_ERROR.xml
Missing header in: src\test\resources\TestIMP\NYCbCrLT_3840x2160x23.98x10min\CPL_a453b63a-cf4d-454a-8c34-141f560c0100_error.xml
Missing header in: src\test\resources\TestIMP\NYCbCrLT_3840x2160x23.98x10min\PKL_0429fedd-b55d-442a-aa26-2a81ec71ed05.xml
Missing header in: src\test\resources\TestIMP\NYCbCrLT_3840x2160x23.98x10min\VOLINDEX.xml
Missing header in: src\test\resources\TestIMP\NYCbCrLT_3840x2160x23.98x10min\CPL-de6d2644-e84c-432d-98d5-98d89271d082.xml
Missing header in: src\test\resources\TestIMP\Netflix_Sony_Plugfest_2015\CPL_BLACKL_202_HD_REC709_178_LAS_zero_resource_duration_track_8fad47bb-ab01-4f0d-a08c-d1e6c6cb62b4.xml
Missing header in: src\test\java\com\netflix\imflibrary\app\MXFEssenceReaderTest.java
Missing header in: src\test\java\com\netflix\imflibrary\app\IMPAnalyzerTest.java
Missing header in: src\test\java\com\netflix\imflibrary\st0429_8\PackingListTest.java
Missing header in: src\test\java\com\netflix\imflibrary\st0429_9\AssetMapTest.java
Missing header in: src\test\java\com\netflix\imflibrary\st2067_2\Application2CompositionTest.java
Missing header in: src\test\java\com\netflix\imflibrary\st2067_2\IMFEssenceComponentVirtualTrackTest.java
Missing header in: src\test\java\com\netflix\imflibrary\st2067_2\Application2ExtendedCompositionTest.java
Missing header in: src\test\java\com\netflix\imflibrary\st2067_2\CompositionTest.java
Missing header in: src\test\java\com\netflix\imflibrary\utils\DOMNodeObjectModelTest.java
Missing header in: src\test\java\com\netflix\imflibrary\st2067_2\IMFMarkerVirtualTrackTest.java
Missing header in: src\test\java\com\netflix\imflibrary\st2067_2\IMPDeliveryTest.java
Missing header in: src\test\java\com\netflix\imflibrary\utils\UUIDHelperTest.java
:license
:pmdMain UP-TO-DATE
:pmdTest UP-TO-DATE
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check
:collectNetflixOSS
:build

BUILD SUCCESSFUL

Total time: 10.703 secs

Exception in IMPAnalyzer

I ran the command C:\Users\Archimedia\Downloads\Photon>java -cp * com.netflix.imflibrary.app.IMPAn
alyzer [path]

where [path] is the folder containing the IMF package

and get the exception:

Exception in thread "main" java.lang.NoSuchMethodError: com.netflix.imflibrary.s
t0429_9.AssetMap.(Ljava/io/File;)V
at com.netflix.imflibrary.st0429_9.BasicMapProfileV2MappedFileSet.
(BasicMapProfileV2MappedFileSet.java:89)
at com.netflix.imflibrary.app.IMPAnalyzer.analyzePackage(IMPAnalyzer.jav
a:154)
at com.netflix.imflibrary.app.IMPAnalyzer.main(IMPAnalyzer.java:400)

I then tried the command by specifying a file as the last parameter rather than a path and got the exception:

Exception in thread "main" java.lang.NoSuchMethodError: com.netflix.imflibrary.u
tils.ResourceByteRangeProvider.getByteRangeAsBytes(JJ)[B
at com.netflix.imflibrary.app.IMPAnalyzer.getHeaderPartitionPayloadRecor
d(IMPAnalyzer.java:109)
at com.netflix.imflibrary.app.IMPAnalyzer.validateEssencePartition(IMPAn
alyzer.java:288)
at com.netflix.imflibrary.app.IMPAnalyzer.analyzeFile(IMPAnalyzer.java:3
10)
at com.netflix.imflibrary.app.IMPAnalyzer.main(IMPAnalyzer.java:424)

Recognize homogeneity between fractional aspect ratios

Different applications use different methods of writing aspect ratio. This causes a problem, for example, if you create a VF in Transkoder from a Clipster OV: Photon flags an error that essence files are not homogenous. Should Photon recognize that these two ratios are the same?

Clipster:
<r1:ImageAspectRatio>256/135</r1:ImageAspectRatio>

Transkoder:
<r1:ImageAspectRatio>4096/2160</r1:ImageAspectRatio>

IMF MXF audio file crashes com.netflix.imflibrary.app.IMFTrackFileReader

Invoking:

java -cp build\libs*; com.netflix.imflibrary.app.IMFTrackFileReader "y:\REMUXED\CPL_REMUXED_f1adddb3-da84-1549-be8a-5b6ae2f50208.mxf" "Y:\REMUXED"

results in:

Exception in thread "main" java.lang.NullPointerException
at com.netflix.imflibrary.IMFConstraints.lambda$checkIMFCompliance$0(IMFConstraints.java:195)
at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.collect(Unknown Source)
at com.netflix.imflibrary.IMFConstraints.checkIMFCompliance(IMFConstraints.java:195)
at com.netflix.imflibrary.app.IMFTrackFileReader.setHeaderPartitionIMF(IMFTrackFileReader.java:126)
at com.netflix.imflibrary.app.IMFTrackFileReader.getHeaderPartitionIMF(IMFTrackFileReader.java:96)
at com.netflix.imflibrary.app.IMFTrackFileReader.getHeaderPartition(IMFTrackFileReader.java:109)
at com.netflix.imflibrary.app.IMFTrackFileReader.getPrimerPackHeader(IMFTrackFileReader.java:524)
at com.netflix.imflibrary.app.IMFTrackFileCPLBuilder.(IMFTrackFileCPLBuilder.java:101)
at com.netflix.imflibrary.app.IMFTrackFileReader.main(IMFTrackFileReader.java:696)

Crash at:

com\netflix\imflibrary\IMFConstraints.java(195)

List<InterchangeObject.InterchangeObjectBO> soundFieldGroupLabelSubDescriptors = subDescriptors.subList(0, subDescriptors.size()).stream().filter(interchangeObjectBO -> interchangeObjectBO.getClass().getEnclosingClass().equals(SoundFieldGroupLabelSubDescriptor.class)).collect(Collectors.toList());

Sample file at:

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

Accessing files from AWS: S3 buckets

I have a question with respect to accessing files from AWS: S3 buckets. Is it possible to access files from AWS: S3 buckets and checking for compliance from Netflix photon tool.
Any pointers I can think about?

Regards,
Ayyappan

CPL with multiple CDCIEssenceDescriptors

I tried to validate a CPL that has two CDCIEssenceDescriptors using IMPAnalyzer and it returned the following error:
"This Composition represented by the ID ae9213b1-01bf-4ffa-b113-a3f6d80ad46d is invalid since the VirtualTrack represented by ID dd48d8f3-
044a-4c2f-9e69-b3b07c3ae866 is not homogeneous based on a comparison of the EssenceDescriptors referenced by its resources in the
Essence Descriptor List, the EssenceDescriptors corresponding to this VirtualTrack in the EssenceDescriptorList are as follows"

The only fields that differ between the two essence descriptors are:
urn:uuid:8c5a652a-90f5-4647-34d4-6eebc28bd049
<m:EssenceLength>50</m:EssenceLength>
<m:InstanceID>urn:uuid:0751e8d6-5c0e-4e87-98bb-811c91bd0b95</m:InstanceID> (in JPEG2000SubDescriptor)
<m:InstanceID>urn:uuid:7efa6d75-4e26-4b8c-f53f-c32fe26f16f1</m:InstanceID> (in CDCIDescriptor)
<m:LinkedGenerationID>urn:uuid:f1529db5-a081-4d27-adb2-9661f0f5377e</m:LinkedGenerationID>

I would expect these fields to be different since the essence descriptors come from two different track files. Should this be an error?

EssenceDescriptor Equivalence Check

We have a supplemental package that has video assets that were created with two different J2K encoders. The only difference between the essence descriptors for these two assets is the CodingStyleDefault and QuantizationDefault. These values are different even though the exact same settings were used to create the video assets. All other parameters in the JPEG2000SubDescriptor are the same. I noticed in the code that there is a list of fields that are ignored when checking for essence descriptor equivalence. Should these fields be added to the ignore list when checking for essence descriptor equivalence?

FAILURE: Build failed with an exception.

Build file 'D:\Photon_New\photon-4.4.0\build.gradle' line: 8

  • What went wrong:
    An exception occurred applying plugin request [id: 'nebula.netflixoss', version: '3.1.2']

Failed to apply plugin [class 'nebula.plugin.release.ReleasePlugin']
repository not found: D:\Photon_New\photon-4.4.0

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3.159 secs

Identifying incorrect tagging of MCATagName Values

We have examples of CPL's where the MCA tagging values for MCATagName values are invalid. This should be caught by Photon.

Example (INVALID):

<r0:SoundfieldGroupLabelSubDescriptor>
<r1:MCALabelDictionaryID>urn:smpte:ul:060e2b34.0401010d.03020220.09000000</r1:MCALabelDictionaryID>
<r1:MCATagName>LtRt</r1:MCATagName>
</r0:SoundfieldGroupLabelSubDescriptor>          
					
<r0:AudioChannelLabelSubDescriptor>
<r1:MCALabelDictionaryID>urn:smpte:ul:060e2b34.0401010d.03020120.03000000</r1:MCALabelDictionaryID>
<r1:MCATagName>Lt</r1:MCATagName>
</r0:AudioChannelLabelSubDescriptor>          
					
<r0:AudioChannelLabelSubDescriptor>
<r1:MCALabelDictionaryID>urn:smpte:ul:060e2b34.0401010d.03020120.04000000</r1:MCALabelDictionaryID>
<r1:MCATagName>Rt</r1:MCATagName>
</r0:AudioChannelLabelSubDescriptor>      

Example (VALID):

<r0:SoundfieldGroupLabelSubDescriptor>
<r1:MCALabelDictionaryID>urn:smpte:ul:060e2b34.0401010d.03020220.09000000</r1:MCALabelDictionaryID>
<r1:MCATagName>Lt-Rt</r1:MCATagName>
</r0:SoundfieldGroupLabelSubDescriptor>          
					
<r0:AudioChannelLabelSubDescriptor>
<r1:MCALabelDictionaryID>urn:smpte:ul:060e2b34.0401010d.03020120.03000000</r1:MCALabelDictionaryID>
<r1:MCATagName>Left Total</r1:MCATagName>
</r0:AudioChannelLabelSubDescriptor>          
					
<r0:AudioChannelLabelSubDescriptor>
<r1:MCALabelDictionaryID>urn:smpte:ul:060e2b34.0401010d.03020120.04000000</r1:MCALabelDictionaryID>
<r1:MCATagName>Right Total</r1:MCATagName>
</r0:AudioChannelLabelSubDescriptor>

Thanks -
Brian

JDK-7 support version ?

I'm tring to build Photon using open-jdk-7 and I obtain this error message:

./gradlew build
Inferred project: Photon, version: 0.2.0-SNAPSHOT
[buildinfo] Not using buildInfo properties file for this build.
:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> invalid source release: 1.8

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

After installing open-jdk-8 the build was performed correctly.
I don't know what's the better, keep the compatibility with java-7 or remove it from the README ("Although Photon can be built using JDK-7, it is recommended to use JDK-8 or later.")

HeaderPartition ignores found RGBAPictureEssenceDescriptor when constructing interchangeObjectsMap

Suppose having the following code:

File inputFile = new File("pictures.mxf");
File workingDirectory = Files.createTempDirectory(null).toFile();
ResourceByteRangeProvider resourceByteRangeProvider = new FileByteRangeProvider(inputFile);
MXFEssenceReader mxfEssenceReader = new MXFEssenceReader(workingDirectory, resourceByteRangeProvider);
Assert.assertEquals(mxfEssenceReader.getEssenceTypes().size(), 1);

Suppose pictures.mxf contains image essence, nut no KLV corresponding to CDCIPictureEssenceDescriptor, only that corresponding to RGBAPictureEssenceDescriptor.

The last assert fails, mxfEssenceReader claiming there are no essence types in the .mxf. I suspect this is wrong, because:

mxfReader.getEssenceTypes() calls this.getHeaderPartition().getEssenceTypes();
HeaderPartition.getEssenceTypes contains this if statement:
if(this.hasCDCIPictureEssenceDescriptor() || this.hasRGBAPictureEssenceDescriptor()){
essenceTypes.add(EssenceTypeEnum.MainImageEssence);
}

this.hasRGBAPictureEssenceDescriptor() should be true, although it's false, because in HeaderPartition constructor, while processing KLV packets, although there is RGBAPictureEssenceDescriptor in parsedInterchangeObjectBOs collection, and later the corresponding Node in nodeList and resolvedList, while loop at the end of the constructor does not contain any if statement like if(interchangeObjectBO.getClass().getEnclosingClass().equals(RGBAPictureEssenceDescriptor.class), so when the interchangeObjectBO contains RGBAPictureEssenceDescriptor to be processed, it gets dropped instead of getting cached.

how to run netflix photon command

hi all,

i cd into the "c:\photon" in command prompt

then i run this command but i get this error -

C:\photon>java -cp build\libs*; com.netflix.imflibrary.app.IMFTrackFileReader imf_track_file_path E:_SHARE_IMF\Meridian_IMF_UHD_23976_en_L_R_C_Lfe_Ls_Rs_Lt_Rt_MOL_OV

01 Sep 2017 13:25:47,602 [ERROR] [IMFTrackFileReader]: File C:\photon\imf_track_file_path does not exist

what am i doing wrong

many thanks,

rob

Incorrect version number (always 4.6.0-SNAPSHOT)

When analyzing an IMP, the Photon version number is appended to the log output. But it is always:

[Photon version: 4.6.0-SNAPSHOT]

Even when I actually built the v4.5.13 release.

It seems like "build/manifestPhoton.properties" file should be adjusted for every new release:

Implementation-Title=com.netflix.photon#Photon;4.6.0-SNAPSHOT
Implementation-Version=4.6.0-SNAPSHOT

Related to #170

Validating IMF packages with subtitle tracks

I am having trouble getting a successful validation result when trying to analyze any IMF package that contains a subtitle track. The errors/warnings I get are related to the IMPAnalyzer saying that a CPL resource is not present in the package and that an essence descriptor does not have a match in any track file.
Based on a test I did with the IMFTrackFileReader, Subtitle essence does not come up as a supported type. It says the only supported types are MainImageEssence, MarkerEssence, MainAudioEssence. Are subtitle tracks really not currently supported? If so, when will support be added?

Could not determine java version from '9.0.1'.

What i've done so far

cd /usr/local/bin
git clone https://github.com/Netflix/photon
cd photon
./gradlew clean
./gradlew build
./gradlew getDependencies
➜  photon git:(master) ✗ java --version
java 9.0.1
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
./gradlew clean --stacktrace --debug
12:29:48.969 [ERROR] [org.gradle.BuildExceptionReporter]
12:29:49.020 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception.
12:29:49.022 [ERROR] [org.gradle.BuildExceptionReporter]
12:29:49.023 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
12:29:49.024 [ERROR] [org.gradle.BuildExceptionReporter] Could not determine java version from '9.0.1'.
12:29:49.029 [ERROR] [org.gradle.BuildExceptionReporter]
12:29:49.030 [ERROR] [org.gradle.BuildExceptionReporter] * Exception is:
12:29:49.035 [ERROR] [org.gradle.BuildExceptionReporter] java.lang.IllegalArgumentException: Could not determine java version from '9.0.1'.
12:29:49.036 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.api.JavaVersion.toVersion(JavaVersion.java:63)
12:29:49.036 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.api.JavaVersion.current(JavaVersion.java:72)
12:29:49.037 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:32)
12:29:49.038 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
12:29:49.039 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
12:29:49.040 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
12:29:49.041 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
12:29:49.041 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
12:29:49.043 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.launcher.Main.doAction(Main.java:33)
12:29:49.045 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
12:29:49.046 [ERROR] [org.gradle.BuildExceptionReporter] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
12:29:49.047 [ERROR] [org.gradle.BuildExceptionReporter] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
12:29:49.048 [ERROR] [org.gradle.BuildExceptionReporter] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
12:29:49.048 [ERROR] [org.gradle.BuildExceptionReporter] 	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
12:29:49.049 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
12:29:49.050 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
12:29:49.051 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
12:29:49.052 [ERROR] [org.gradle.BuildExceptionReporter] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
12:29:49.052 [ERROR] [org.gradle.BuildExceptionReporter] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
12:29:49.053 [ERROR] [org.gradle.BuildExceptionReporter] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
12:29:49.054 [ERROR] [org.gradle.BuildExceptionReporter] 	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
12:29:49.054 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30)
12:29:49.055 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129)
12:29:49.055 [ERROR] [org.gradle.BuildExceptionReporter] 	at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
12:29:49.057 [ERROR] [org.gradle.BuildExceptionReporter]

I'm using mac OS High sierra version 10.13.2

So i've tried to brew install gradle( version 4.4 )

But i ran with an other error add the end of the build...

> Configure project :
Inferred project: Photon, version: 4.6.0-SNAPSHOT


FAILURE: Build failed with an exception.

* What went wrong:
org/gradle/api/internal/project/AbstractProject
> org.gradle.api.internal.project.AbstractProject

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s

I'm a bit lost so far, can anyone help me ? :-)

OPL validation fails if aliases are defined in header

Photon fails if "alias" is defined in the header. Validation fails even if I don't use any alias handle later. I read the corresponding standard documents (ST2067-100:2014 Section 8) and I don't know what I am doing wrong. Could you please check?

Attached are a working and a failing OPL file with Photon logs.
OPL_files_and_logs.zip

Thank you in advance,
Adam

EssenceDescriptors check.

Hello,
There was a error happened when I use photon to check the CPL file.
"ERROR-This Composition represented by the ID b08d310d-25c1-486e-8dd8-25088fe15bd3 is invalid since the VirtualTrack represented by ID df1b8c5b-4353-4957-ae8d-82e0e94e6ebb is not homogeneous based on a comparison of the EssenceDescriptors referenced by its resources in the Essence Descriptor List, the EssenceDescriptors corresponding to this VirtualTrack in the EssenceDescriptorList are as follows... "

The ID df1b8c5b-4353-4957-ae8d-82e0e94e6ebb is <TrackId> in MainAudioSequence.
If there were two Resources in the MainAudioSequence, The ERRORs are always appearing and one audio resource always is OK.

IMFTrackFileReader issue checking SoundFieldGroupLabelSubDescriptor

IMFTrackFileReader complains about missing items in the SoundFieldGroupLabelSubDescriptor, but all of the items are optional as defined in ST 377-4:

ERROR-IMF Essence Component check: WaveAudioEssenceDescriptor in the IMFTrackFile represented by ID 4f45ea32-547d-458b-8b9c-66ea98ec72bc refers to a SoundFieldGroupLabelSubDescriptor that is missing one/all of MCATitle, MCATitleVersion, MCAAudioContentKind, MCAAudioElementKind,

'nebula.netflixoss', version: '3.1.2'

When i install it in Windows 7.
I have an error, please tell me how to fix it

  • What went wrong:
    An exception occurred applying plugin request [id: 'nebula.netflixoss', version: '3.1.2']

Failed to apply plugin [class 'nebula.plugin.release.ReleasePlugin']
repository not found: D:\photon

Do you have any documentation on how to install it?

Error when building with gradlew ('nebula.netflixoss')

Running on Ubuntu 18, I ran
sudo ./gradlew clean

and got:

FAILURE: Build failed with an exception.

* Where:
Build file '/home/marc/Desktop/photon-master/build.gradle' line: 8

* What went wrong:
An exception occurred applying plugin request [id: 'nebula.netflixoss', version: '3.1.2']
> Failed to apply plugin [class 'nebula.plugin.release.ReleasePlugin']
   > repository not found: /home/marc/Desktop/photon-master

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 26.104 secs

It seems as though it cannot find the id: 'nebula.netflixoss', version: '3.1.2' dependency.

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

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</XRsiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
1</YRsiz xmlns="http://www.smpte-ra.org/reg/2003/2012">


2</XRsiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
1</YRsiz xmlns="http://www.smpte-ra.org/reg/2003/2012">


1</XRsiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
1</YRsiz xmlns="http://www.smpte-ra.org/reg/2003/2012">





,

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





1</YRSiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
1</XRSiz xmlns="http://www.smpte-ra.org/reg/2003/2012">


1</YRSiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
2</XRSiz xmlns="http://www.smpte-ra.org/reg/2003/2012">


1</YRSiz xmlns="http://www.smpte-ra.org/reg/2003/2012">
2</XRSiz xmlns="http://www.smpte-ra.org/reg/2003/2012">




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

r1:PictureComponentSizing

<r2:J2KComponentSizing>
	<r2:Ssiz>9</r2:Ssiz> 
	<r2:XRsiz>1</r2:XRsiz> 
	<r2:YRsiz>1</r2:YRsiz> 
</r2:J2KComponentSizing>

<r2:J2KComponentSizing>
	<r2:Ssiz>9</r2:Ssiz> 
	<r2:XRsiz>2</r2:XRsiz> 
	<r2:YRsiz>1</r2:YRsiz> 
</r2:J2KComponentSizing>

<r2:J2KComponentSizing>
	<r2:Ssiz>9</r2:Ssiz> 
	<r2:XRsiz>2</r2:XRsiz> 
	<r2:YRsiz>1</r2:YRsiz> 
</r2:J2KComponentSizing>

</r1:PictureComponentSizing>

//////////////////////////////////////////////////////////////////////////
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

Photon does not allow a list of ApplicationIdentification elements that the composition conforms

ST2067-2-2016 section 6.1 allows a list of ApplicationIdentification elements to which a composition conforms. So for example, it is perfectly valid for a composition that conforms to application type 2 to indicate that it also conforms to application type 2e.

I.E: cc:ApplicationIdentificationhttp://www.smpte-ra.org/schemas/2067-20/2016 http://www.smpte-ra.org/schemas/2067-21/2016</cc:ApplicationIdentification>

Instead of treating this a a list of strings, the code treats this as a single string and thus is unable to locate the application type in the list of valid applications.

CPL without essence descriptor list fails to validate

Hello,

I'm trying to validate some IMP packages, but the problem is, that they fail to validate due to missing EssenceDescriptor list. Regarding to ST 2067-3:2013 standard, it is defined by the schema as:

<xs:element name="EssenceDescriptorList" minOccurs="0">

So, it's not compulsory. Moreover, "The information provided by the EssenceDescriptorList element is intended to assist users in scheduling and tracking content. (...) Implementations should not rely on this information for transcoding or playout. (...) Each EssenceDescriptor element of the essenceDescriptorList element shall be a human-readable representation of selected descriptive information present in one or more Track Files."

As I understand it, this information is only an additional information for the human and shall not be required. On the other hand, Photon validator requires presence of the EssenceDescriptorList and checks the content of each EssenceDescriptor. Is this intentional, and if yes, why?

Audio tracks containing GroupOfSoundfieldGroupsLabelSubDescriptor causing Photon to report an error

We added the audio sub-descriptor GroupOfSoundfieldGroupsLabelSubDescriptor.

The sub-descriptor is defined in SMPTE ST 377-4:2012; 6.6 GroupOfSoundfieldGroupsLabelSubDescriptor; Page 13

Previously "Photon" was crashing when encountering the GroupOfSoundfieldGroupsLabelSubDescriptor.

Now Photon gracefully fails and considers the GroupOfSoundfieldGroupsLabelSubDescriptor as unknown.

But you are generating an error:

14 Feb 2017 17:54:08,318 [ERROR] [IMFTrackFileReader]: ERROR-Error code : STRONG_REFERENCE_NOT_FOUND - Strong Reference target urn:uuid:970a12e8-e335-1343-bb5f-9c142c4f276f is not found at Type SubDescriptorStrongReference at Element SubDescriptors

because Photon can't resolve the strong reference to the GroupOfSoundfieldGroupsLabelSubDescriptor.

We consider GroupOfSoundfieldGroupsLabelSubDescriptor as valid and accoring to SMPTE ST 377-4:2012.

Please advice.

IMF package:

https://drive.google.com/drive/folders/0B1K1m-YmE28DMGFrbmZZa0JjUWM

Thanks
Markus.

P.S.: we are aware that our audio file has two unrelated errors: missing langauge and missing MCATitle, MCATitleVersion, MCAAudioContentKind, MCAAudioElementKind

Dolby HDR IMF

hello,
I have encountered some errors when validating the Dolby HDR IMF CPL.

29 Jul 2017 10:02:25,525 [INFO ] [Composition]: CompositionPlaylist Document has 8 errors and 0 warnings
29 Jul 2017 10:02:25,528 [ERROR] [Composition]: ERROR-EssenceDescriptor with ID feee0755-8150-411a-b39d-8e19b7ec89e1 is missing J2CLayout in JPEG2000SubDescriptor [Photon version: 4.6.0-SNAPSHOT]
29 Jul 2017 10:02:25,528 [ERROR] [Composition]: ERROR-EssenceDescriptor with ID feee0755-8150-411a-b39d-8e19b7ec89e1 has invalid combination of ComponentMinRef/BlackRefLevel(0)-ComponentMaxRef/WhiteRefLevel(1023)-PixelBitDepth(0) in Image Essence Descriptor [Photon version: 4.6.0-SNAPSHOT]
29 Jul 2017 10:02:25,528 [ERROR] [Composition]: ERROR-EssenceDescriptor with ID feee0755-8150-411a-b39d-8e19b7ec89e1 has invalid ColorPrimaries as per APPLICATION_2E_C

OMPOSITION_TYPE [Photon version: 4.6.0-SNAPSHOT]
29 Jul 2017 10:02:25,528 [ERROR] [Composition]: ERROR-EssenceDescriptor with ID feee0755-8150-411a-b39d-8e19b7ec89e1 has invalid TransferCharacteristic as per APPLICATION_2E_COMPOSITION_TYPE [Photon version: 4.6.0-SNAPSHOT]
29 Jul 2017 10:02:25,528 [ERROR] [Composition]: ERROR-EssenceDescriptor with ID feee0755-8150-411a-b39d-8e19b7ec89e1 has invalid ColorPrimaries(Unknown)-TransferCharacteristic(Unknown)-CodingEquation(None) combination as per APPLICATION_2E_COMPOSITION_TYPE [Photon version: 4.6.0-SNAPSHOT]
29 Jul 2017 10:02:25,528 [ERROR] [Composition]: ERROR-EssenceDescriptor with ID feee0755-8150-411a-b39d-8e19b7ec89e1 has invalid ContentKind(1) indicated by the ContainerFormat as per APPLICATION_2E_COMPOSITION_TYPE [Photon version: 4.6.0-SNAPSHOT]
29 Jul 2017 10:02:25,528 [ERROR] [Composition]: ERROR-EssenceDescriptor with ID feee0755-8150-411a-b39d-8e19b7ec89e1 invalid PixelBitDepth(0) for Color(Unknown) as per APPLICATION_2E_COMPOSITION_TYPE [Photon version: 4.6.0-SNAPSHOT]
29 Jul 2017 10:02:25,529 [ERROR] [Composition]: ERROR-EssenceDescriptor with ID feee0755-8150-411a-b39d-8e19b7ec89e1 has Invalid Quantization(Unknown) for ColorModel(RGB) as per APPLICATION_2E_COMPOSITION_TYPE [Photon version: 4.6.0-SNAPSHOT]

mxf_cpl.zip

I'd like to know if Photon has supported the Dolby HDR IMF(mxf created by Dolby SIDK).
attachment is the resulting CPL file created by IMFTrackFileCPLBuilder with the dolby vision mxf file.

Stating Photon as a web service

Hello,

I want to know how to be able to launch this project as a service, and use the RESTful web interface.
Because in the project, we can found this file with very interesting features, but who to access it via an API ?

I can help with description of setup or something like that.

Thanks

IMF packages rejected by Netflix but Photon doesn't issue any errors

The following package:

https://drive.google.com/drive/folders/0B1K1m-YmE28DMGFrbmZZa0JjUWM?usp=sharing

passes Photon with no errors and warnings but gets rejected when submitted to Netflix.

The error message from the Netflix portal is "Found unexpected Index TableSegment LocalTag = 0x3f11"

The local tag 0x3f11 should be legal according "Amendment 2:2012 to SMPTE ST 377-1:2011"; page 9; 10 Index Table Layout.

Any advice?

Thanks

ASSETMAP.xml: Segment length in filenames

v4.4.3 erroneously complains about path segments with invalid length:

08 May 2017 13:49:02,518 [ERROR] [IMPAnalyzer]: 		ERROR-The Asset path 418519_TerraX_MythosWolfskindMogliUndDieWildenKinder_InternationaleFassung_deu_clean_stereo_51_MundE_stereo.mxf has following path segments with invalid length: 
418519_TerraX_MythosWolfskindMogliUndDieWildenKinder_InternationaleFassung_deu_clean_stereo_51_MundE_stereo.mxf
 [Photon version: 4.5.0-SNAPSHOT]

Segment length is 112, which is < 128 (ST 2067-2:2016 L.3).
ASSETMAP.xml attached.
ASSETMAP.xml.zip

When validation char encoding and namespace URI in DCTimedTextDescriptor photon should ignore '0' terminator

When setting UCSEncoding in in DCTimedTextDescriptor to 'UTF-8\0' - Photon rejects the subtitle file expecting 'UTF-8' (without terminator).
The same is true for the Namespace URI.

Although MXF doesn't require a terminator - zero (and everything there after) should be ignored.

So 'UTF-8\0' should be treated equal to 'UTF-8'.

SMPTE ST 377-1:2011 (page 20)
The number of bytes allocated to this string is given by the KLV encoding.
There is no requirement to terminate each string with a zero or other special value.
However, if the length of the String information is less than the space allocated,
the string shall be terminated with a zero value.

Virtual Track Conformance VideoLineMap

When Photon validates an IMF package with a video track that defines VideoLineMap metadata, it seems like Photon inverts the order. Here is the output using the latest build:

24 Jan 2017 11:46:49,201 [INFO ] [IMPAnalyzer]: ==========================================================================
24 Jan 2017 11:46:49,201 [INFO ] [IMPAnalyzer]: Virtual Track Conformance
24 Jan 2017 11:46:49,201 [INFO ] [IMPAnalyzer]: ==========================================================================
24 Jan 2017 11:46:49,204 [INFO ] [IMPAnalyzer]: CPL_7f489cd9-a0ac-4916-ba1b-2c71d84e980c.xml Virtual Track Conformance has 1 errors and 0 warnings
24 Jan 2017 11:46:49,204 [ERROR] [IMPAnalyzer]: ERROR-EssenceDescriptor with Id 13ecd066-6ee8-43c6-b77c-e7645eec76e1 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">
</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">
  <VideoLineMap xmlns="http://www.smpte-ra.org/reg/335/2012">
    <Int32>0</Int32 xmlns="http://www.smpte-ra.org/reg/2003/2012">
    <Int32>42</Int32 xmlns="http://www.smpte-ra.org/reg/2003/2012">
  </VideoLineMap>
</CDCIDescriptor>

The output of the same video file using RegXML dump produces the following snippet:

<r1:PictureCompression>urn:smpte:ul:060e2b34.0401010d.04010202.03010114<!--JPEG2000BroadcastContributionSingleTileProfileLevel4--></r1:PictureCompression>
              <r1:CodingEquations>urn:smpte:ul:060e2b34.04010101.04010101.02020000<!--CodingEquations_ITU709--></r1:CodingEquations>
              <r1:ColorPrimaries>urn:smpte:ul:060e2b34.04010106.04010101.03030000<!--ColorPrimaries_ITU709--></r1:ColorPrimaries>
              <r1:VideoLineMap>
                <r2:Int32>42</r2:Int32>
                <r2:Int32>0</r2:Int32>
              </r1:VideoLineMap>
              <r1:ComponentDepth>10</r1:ComponentDepth>
              <r1:HorizontalSubsampling>2</r1:HorizontalSubsampling>
              <r1:VerticalSubsampling>1</r1:VerticalSubsampling>
              <r1:BlackRefLevel>64</r1:BlackRefLevel>
              <r1:WhiteRefLevel>940</r1:WhiteRefLevel>

Enable Docker cloud to have an auto-build

Hello,

Related to #131 , is it possible to enable the auto-build related this main repository on the docker-cloud platform ?
With that it can generate the official docker container on docker hub. Very useful tool to use in cloud environment.

Thanks,

Support http://www.smpte-ra.org/schemas/2067-2/2016

I noticed Photon does not support/sees as invalid this ApplicationId:
<cc:ApplicationIdentification xmlns:cc="http://www.smpte-ra.org/schemas/2067-2/2016">http://www.smpte-ra.org/schemas/2067-21/2016</cc:ApplicationIdentification>

But it does support:
<cc:ApplicationIdentification xmlns:cc="http://www.smpte-ra.org/schemas/2067-2/2013">http://www.smpte-ra.org/schemas/2067-21/2016</cc:ApplicationIdentification>

If it is because it is seen as invalid, I think it is an error.

Audio duration is not an integer length for video frame rates 29.97 or 59.94

If I use 30,000/1001 or 60,000/1001 video with 48 kHz audio I can only make the audio stream the exact duration of the video stream if the video frame count is divisible by 5.

It seems a fairly harsh rule considering that video may consists of multiple segments.

For example - if my video consists of multiple segments then all video segments have to be aligned on a 5 frame boundary.

Example for one segment:

Video 29.97 with 5,378 frames would require at
audio 48 kHz with 8,613,404.8 samples.
I obviously can not encode 0.8 audio samples.

Currently my choices: add two video frames to get to 5,380 or remove three video frames to get to 5,375.

What do you guys think about having the audio integer sample count within +/- one sample of the fractional calculated audio sample count?

Interlaced MXF

Hi guys, i would like to know if photon support interlaced IMP check?
I created a interlaced package, there are several errors when i used photon to check.
The "SampleRate" in EssenceDescriptor is 60000/1001 and the EditRate in MainImageSequence is 30000 10001.
The following is from Photon.
06 Nov 2016 16:33:00,587 [ERROR] [IMPAnalyzer]: ERROR-This Composition represented by the ID 322d1f36-7d1d-47da-beb4-fd8e08bdd171 is invalid since the VirtualTrack represented by ID 54743e99-5162-41ef-90c9-d8bf26f0b610 has a Resource represented by ID urn:uuid:8620a1cb-451d-44ef-b1d4-af030ae771fb that refers to a EssenceDescriptor in the CPL's EssenceDescriptorList represented by the ID urn:uuid:0cd5fcf8-5c3e-4ba0-b13e-baa07a212265 whose indicated SampleRate value is =================== EditRate =====================
numerator = 60000, denominator = 1001
, however the Resource Edit Rate is =================== EditRate =====================
numerator = 30000, denominator = 1001

According to the SMPTE ST 377-1:2011 (G.2.2 Sample Rate and Edit Rate)
Edit Rate shall equal the desired editing rate of the image data for the application. A commonly used Edit Unit
(i.e. 1/Edit Rate) is 1 image, but may be smaller or larger in some applications.
Note 1: For example, the sampled image may be field based, but the editing may be frame based. In this case the Edit Rate will be half the Sample Rate.

"Segment duration is not integer" an error

Dear developers,

we have a strange error message for a 59.94 IMP. Please see the full error message below. Attached is problematic CPL xml (I had to change the extension to txt from xml). We think that this is a false error message, let us know what you think please.

Photon library v4.1.0 (Oct 18 2016)

[INFO ] [Composition]: CompositionPlaylist Document has 2 errors and 0 warnings
[ERROR] [Composition]: ERROR-Segment represented by the Id urn:uuid:8c4e7d33-31bd-451d-bd32-a85f967d5b3a in the Composition represented by ID 0c30983b-4296-4bf4-9490-975c9ef22a3f has a sequence represented by ID urn:uuid:f647c847-890b-4270-984e-9e9e12a3c741, whose duration represented in Composition Edit Units is (43092.000500) is not an integer
[ERROR] [Composition]: ERROR-Segment represented by the Id urn:uuid:8c4e7d33-31bd-451d-bd32-a85f967d5b3a in the Composition represented by ID 0c30983b-4296-4bf4-9490-975c9ef22a3f has a sequence represented by ID urn:uuid:42e88dcb-b0e6-466f-988e-6f4289709d59, whose duration represented in Composition Edit Units is (43092.000500) is not an integer

Best,
Adam Pongracz
CPL.txt

Photon ignores the absence of ContentVersion Id elements

In SMPTE 2067-2:2016, section 6.7, the presence of at least one ContentVersion element is mandatory. However, in SMPTE ST 2067-3:2016, section 6.1, the XSD defines the ContentVersionList element as optional:

<xs:element name="ContentVersionList" minOccurs="0">

Photon seems to rely on the schema only and ignores the mandatory aspect of a minimum of one ContentVersion element in the CPL, as stated in App #2/#2E, App #4 and App #5

How can I create an IMF?

Thank you for you provide code, and I am a beginner of this area. I want to know how to create an IMF? what file I should need? a .mp4 video? and what API should I call? Can you provide a IMF for my test?

Command for get version number

Hi there,

is there a way to get the current Photon version of the used .jar files? For example -v [--version] command line argument could print the version number (e.g. "v4.3.1").
Or event better if I start a verification then Photon could write the version number in the first line of the output.

Best,
Adam

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.