Giter VIP home page Giter VIP logo

mxf-digest's People

Contributors

jhursty avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

isabella232

mxf-digest's Issues

Add unit test

Recommend adding unit test under src/test consisting of:

  • sample mxf file at src/test/resource/sample.mxf
  • Python script at src/test/py/unit-test.py that computes the mxf-digest of the sample mxf file and compares it to the expected value

MXF-ESSENCE-DIGEST - parallel proposal for MXF manipulation validation

This issue should not block or stall MXF-DIGEST in any way It is of secondary importance.

When handling existing MXF content entering an IMF or MXF workflow, it is often necessary to rewrap the MXF to optimise / interleave / fragment the content to meet a delivery specification or storage requirement. A specific example is UHD TV content shot in interleaved XAVC is unwrapped into components for IMF workflows. MXF-ESSENCE-DIGEST is proposed to be compatible with MXF-DIGEST to the extent that it can be computed in parallel with MXF-DIGEST and the major cost of accessing the large file is done only once.

The benefit of the Essence Digest is that you can prove the same bytes were used in IMF as were captured in the interleaved original.

Essence Block Digest

The algorithm shall operate on complete blocks of essence in a stream. A stream shall be any MXF structure identified by a stream ID such as Image, Audio, Data or metadata wrapped with SMPTE ST 410. The data in the blocks of essence shall include only the payloads of KLV packets. MXF Fill packets shall be excluded. All blocks shall contain exactly DIGEST_BLOCK_LEN bytes except for the last block that shall contain all remaining bytes in the essence stream.

It is proposed that DIGEST_BLOCK_LEN be 524288

The Essence block digest shall be calculated with the same algorithm as the KLV Packet Digest

MXF Stream Digests

For each stream, the MXF Stream Digest is calculated from Essence Block Digests in the same way that the Sequence Digest is calculated from KLV Packet Digests

Canonical Encoding

The MXF-ESSENCE-DIGEST value is created by encoding the sequence digest value as URN item of the form urn:smpte:mxf-essence-digest:-, where mxf-essence-digest is a registered NSS as defined in this document, is the decimal value of the streamId in the MXF file without leading zeroes and is the Base58 encoding of the MXF stream digest value octets.

Example
urn:smpte:mxf-stream-digest:2-5C1YJuUNzbuG4tLzbW8eZypyaZZRKg6yzTuocEzcMXHFE6WoFsJQqJUVJZ7ehjHu18qCaexfvskr4qZeE4zBDwwm

Issues

  • Frame wrapped video and audio may require careful maths & buffering for creating the precise block sizes
  • The bigger the blocks, the more manipulation / buffering required - maybe smaller blocks are better?
  • The smaller the blocks, the greater the number of Essence Block Digests need to be stored - maybe bigger blocks are better?

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.