DiracAuxiliaryData
From Diracvideo
Contents |
[edit] Dirac Auxiliary Data
Dirac streams may contain auxiliary data that is not required for decoding a stream. Decoders should ignore auxiliary data packets. The contents of auxiliary data packets is undefined by the Dirac standard. However, in the interest of avoiding conflicts among users of auxiliary data packets, we offer this guide to using this feature.
Auxiliary data packets associated with a picture should appear immediately prior to the picture in the bitstream. Multiple auxiliary data packets associated with a picture may appear in any order.
Additions to this list are welcome.
The first byte of the auxiliary data packet is a code that determines the type of content in the packet. The remainder of the packet is called the "payload".
[edit] 0: Invalid (reserved)
[edit] 1: Encoder implementation name and version
- The payload is interpreted as a UTF-8 encoded string containing the name and version of the implementation used to encode the video stream. The string does not need to be NUL terminated. The primary purpose of this string is to identify the encoder and version for purposes such as bug reporting. This packet may appear anywhere in the stream, however, it is recommended to put this packet near the first access unit header in the stream.
- Example: "Schroedinger 1.0.1"
- Payload size: variable
[edit] 2: SMPTE 12M timecode
- SMPTE timecode associated with the subsequent coded picture. This is the 80-bit LTC timecode as described in SMPTE 12M-1999.
- Payload size: 10 bytes
[edit] 3: MD5 checksum
- MD5 checksum over the subsequent coded picture. The checksum is calculated according to the following pseudocode:
initialize md5 checksum
for each component {
: for each line in component {
: pad line with zeros until the width is a multiple of 64
: md5 checksum line
: }
}
- This definition only works for 8-bit video currently. It also uses MD5, which is "out of style".
- Payload size: 16 bytes
[edit] 4: Constant Bit Rate
- Presence of this auxiliary data packet indicates that the stream was encoded for a specific bit rate. This bit rate is read using 'read_uint_lit(4)' as defined in the Dirac spec.
- Payload size: 4 bytes
