Skip to content
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
Java Other
  1. Java 99.8%
  2. Other 0.2%
Branch: master
Clone or download
davidt-netflix Merge pull request #262 from Netflix/feature/fixIMPBuilderWithMarkerT…
…racks

Fix IMP Builders when marker tracks are used
Latest commit 6d646f2 Oct 2, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config Support for validating OutputProfileList May 10, 2017
generated/org add support for IABSequence in core constraints checker Apr 29, 2019
gradle/wrapper First commit of the project sources Dec 10, 2015
src Fixed inconsistent usage of toString() for SequenceTypeEnum. Sep 30, 2019
.gitignore added implementation for Packing List schema proposed in st2067-2:201… Jul 18, 2016
.travis.yml switching TravisCI to OpenJDK8 instead of OracleJDK8 Aug 24, 2019
CHANGELOG.md First commit of the project sources Dec 10, 2015
CONTRIBUTING.md First commit of the project sources Dec 10, 2015
Dockerfile rename PhotonIMPAnalyzer to IMPAnalyzer Nov 10, 2016
LICENSE First commit of the project sources Dec 10, 2015
NOTICE.md First commit of the project sources Dec 10, 2015
OSSMETADATA changed osslifecycle to active Dec 15, 2015
README.md adding codecov badge to readme May 17, 2019
bootstrap.sh Make bootstrap script more robust Oct 18, 2016
build.gradle add jacoco task #245 May 17, 2019
buildViaTravis.sh adding jacoco report generation to Travis build #245 May 17, 2019
codecov.yml add codecov Yaml to ignore generated classes May 17, 2019
gradlew First commit of the project sources Dec 10, 2015
gradlew.bat First commit of the project sources Dec 10, 2015
installViaTravis.sh Add travis build info Dec 12, 2015
settings.gradle Renaming the root project name to Photon instead of IMFLibrary. Jan 27, 2016

README.md

codecov

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. Photon offers tools for parsing, interpreting and validating constituent files that make an Interoperable Master Package (IMP). These include AssetMap (st429-9:2014), PackingList (st429-8:2007), Composition Playlist (st2067-3:2013), and the essence containing IMF track file (st2067-5:2013) which follows the Material eXchange Format (MXF) format (st377-1:2011). Specifically, Photon parses and completely reads an MXF file containing a single audio or video essence as defined by the IMF Essence Component specification (st2067-5:2013) and serializes the metadata into the IMF Composition Playlist structure.

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
You can’t perform that action at this time.