cinecert / mxf-digest Goto Github PK
View Code? Open in Web Editor NEWEfficient Message Digest for MXF Files
License: BSD 2-Clause "Simplified" License
Efficient Message Digest for MXF Files
License: BSD 2-Clause "Simplified" License
Recommend adding unit test under src/test
consisting of:
src/test/resource/sample.mxf
src/test/py/unit-test.py
that computes the mxf-digest of the sample mxf file and compares it to the expected valueThis 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.
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
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
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.