#include "libavutil/aes.h"#include "libavcodec/bytestream.h"#include "avformat.h"#include "mxf.h"Go to the source code of this file.
Data Structures | |
| struct | MXFCryptoContext |
| struct | MXFStructuralComponent |
| struct | MXFSequence |
| struct | MXFTrack |
| struct | MXFDescriptor |
| struct | MXFIndexTableSegment |
| struct | MXFPackage |
| struct | MXFMetadataSet |
| struct | MXFContext |
| struct | MXFMetadataReadTableEntry |
Defines | |
| #define | IS_KLV_KEY(x, y) (!memcmp(x, y, sizeof(y))) |
Typedefs | |
| typedef int | MXFMetadataReadFunc (void *arg, AVIOContext *pb, int tag, int size, UID uid) |
Enumerations | |
| enum | MXFWrappingScheme { Frame, Clip } |
Functions | |
| static int64_t | klv_decode_ber_length (AVIOContext *pb) |
| static int | mxf_read_sync (AVIOContext *pb, const uint8_t *key, unsigned size) |
| static int | klv_read_packet (KLVPacket *klv, AVIOContext *pb) |
| static int | mxf_get_stream_index (AVFormatContext *s, KLVPacket *klv) |
| static int | mxf_get_d10_aes3_packet (AVIOContext *pb, AVStream *st, AVPacket *pkt, int64_t length) |
| static int | mxf_decrypt_triplet (AVFormatContext *s, AVPacket *pkt, KLVPacket *klv) |
| static int | mxf_read_packet (AVFormatContext *s, AVPacket *pkt) |
| static int | mxf_read_primer_pack (void *arg, AVIOContext *pb, int tag, int size, UID uid) |
| static int | mxf_add_metadata_set (MXFContext *mxf, void *metadata_set) |
| static int | mxf_read_cryptographic_context (void *arg, AVIOContext *pb, int tag, int size, UID uid) |
| static int | mxf_read_content_storage (void *arg, AVIOContext *pb, int tag, int size, UID uid) |
| static int | mxf_read_source_clip (void *arg, AVIOContext *pb, int tag, int size, UID uid) |
| static int | mxf_read_material_package (void *arg, AVIOContext *pb, int tag, int size, UID uid) |
| static int | mxf_read_track (void *arg, AVIOContext *pb, int tag, int size, UID uid) |
| static int | mxf_read_sequence (void *arg, AVIOContext *pb, int tag, int size, UID uid) |
| static int | mxf_read_source_package (void *arg, AVIOContext *pb, int tag, int size, UID uid) |
| static int | mxf_read_index_table_segment (void *arg, AVIOContext *pb, int tag, int size, UID uid) |
| static void | mxf_read_pixel_layout (AVIOContext *pb, MXFDescriptor *descriptor) |
| static int | mxf_read_generic_descriptor (void *arg, AVIOContext *pb, int tag, int size, UID uid) |
| static int | mxf_match_uid (const UID key, const UID uid, int len) |
| static const MXFCodecUL * | mxf_get_codec_ul (const MXFCodecUL *uls, UID *uid) |
| static void * | mxf_resolve_strong_ref (MXFContext *mxf, UID *strong_ref, enum MXFMetadataSetType type) |
| static int | mxf_parse_structural_metadata (MXFContext *mxf) |
| static int | mxf_read_local_tags (MXFContext *mxf, KLVPacket *klv, MXFMetadataReadFunc *read_child, int ctx_size, enum MXFMetadataSetType type) |
| static int | mxf_read_header (AVFormatContext *s, AVFormatParameters *ap) |
| static int | mxf_read_close (AVFormatContext *s) |
| static int | mxf_probe (AVProbeData *p) |
| static int | mxf_read_seek (AVFormatContext *s, int stream_index, int64_t sample_time, int flags) |
Variables | |
| static const uint8_t | mxf_header_partition_pack_key [] = { 0x06,0x0e,0x2b,0x34,0x02,0x05,0x01,0x01,0x0d,0x01,0x02,0x01,0x01,0x02 } |
| static const uint8_t | mxf_essence_element_key [] = { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01 } |
| static const uint8_t | mxf_klv_key [] = { 0x06,0x0e,0x2b,0x34 } |
| static const uint8_t | mxf_crypto_source_container_ul [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x09,0x06,0x01,0x01,0x02,0x02,0x00,0x00,0x00 } |
| static const uint8_t | mxf_encrypted_triplet_key [] = { 0x06,0x0e,0x2b,0x34,0x02,0x04,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x7e,0x01,0x00 } |
| static const uint8_t | mxf_encrypted_essence_container [] = { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x0b,0x01,0x00 } |
| static const uint8_t | mxf_sony_mpeg4_extradata [] = { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0e,0x06,0x06,0x02,0x02,0x01,0x00,0x00 } |
| static const MXFCodecUL | mxf_essence_container_uls [] |
| static const MXFMetadataReadTableEntry | mxf_metadata_read_table [] |
| AVInputFormat | ff_mxf_demuxer |
| #define IS_KLV_KEY | ( | x, | |||
| y | ) | (!memcmp(x, y, sizeof(y))) |
Definition at line 162 of file mxfdec.c.
Referenced by mxf_decrypt_triplet(), mxf_parse_structural_metadata(), mxf_probe(), mxf_read_cryptographic_context(), mxf_read_generic_descriptor(), mxf_read_header(), and mxf_read_packet().
| typedef int MXFMetadataReadFunc(void *arg, AVIOContext *pb, int tag, int size, UID uid) |
| enum MXFWrappingScheme |
| static int64_t klv_decode_ber_length | ( | AVIOContext * | pb | ) | [static] |
Definition at line 164 of file mxfdec.c.
Referenced by klv_read_packet(), and mxf_decrypt_triplet().
| static int klv_read_packet | ( | KLVPacket * | klv, | |
| AVIOContext * | pb | |||
| ) | [static] |
| static int mxf_add_metadata_set | ( | MXFContext * | mxf, | |
| void * | metadata_set | |||
| ) | [static] |
| static int mxf_decrypt_triplet | ( | AVFormatContext * | s, | |
| AVPacket * | pkt, | |||
| KLVPacket * | klv | |||
| ) | [static] |
| static const MXFCodecUL* mxf_get_codec_ul | ( | const MXFCodecUL * | uls, | |
| UID * | uid | |||
| ) | [static] |
| static int mxf_get_d10_aes3_packet | ( | AVIOContext * | pb, | |
| AVStream * | st, | |||
| AVPacket * | pkt, | |||
| int64_t | length | |||
| ) | [static] |
| static int mxf_get_stream_index | ( | AVFormatContext * | s, | |
| KLVPacket * | klv | |||
| ) | [static] |
Definition at line 203 of file mxfdec.c.
Referenced by mxf_decrypt_triplet(), and mxf_read_packet().
| static int mxf_parse_structural_metadata | ( | MXFContext * | mxf | ) | [static] |
| static int mxf_probe | ( | AVProbeData * | p | ) | [static] |
| static int mxf_read_close | ( | AVFormatContext * | s | ) | [static] |
| static int mxf_read_content_storage | ( | void * | arg, | |
| AVIOContext * | pb, | |||
| int | tag, | |||
| int | size, | |||
| UID | uid | |||
| ) | [static] |
| static int mxf_read_cryptographic_context | ( | void * | arg, | |
| AVIOContext * | pb, | |||
| int | tag, | |||
| int | size, | |||
| UID | uid | |||
| ) | [static] |
| static int mxf_read_generic_descriptor | ( | void * | arg, | |
| AVIOContext * | pb, | |||
| int | tag, | |||
| int | size, | |||
| UID | uid | |||
| ) | [static] |
| static int mxf_read_header | ( | AVFormatContext * | s, | |
| AVFormatParameters * | ap | |||
| ) | [static] |
| static int mxf_read_index_table_segment | ( | void * | arg, | |
| AVIOContext * | pb, | |||
| int | tag, | |||
| int | size, | |||
| UID | uid | |||
| ) | [static] |
| static int mxf_read_local_tags | ( | MXFContext * | mxf, | |
| KLVPacket * | klv, | |||
| MXFMetadataReadFunc * | read_child, | |||
| int | ctx_size, | |||
| enum MXFMetadataSetType | type | |||
| ) | [static] |
| static int mxf_read_material_package | ( | void * | arg, | |
| AVIOContext * | pb, | |||
| int | tag, | |||
| int | size, | |||
| UID | uid | |||
| ) | [static] |
| static int mxf_read_packet | ( | AVFormatContext * | s, | |
| AVPacket * | pkt | |||
| ) | [static] |
| static void mxf_read_pixel_layout | ( | AVIOContext * | pb, | |
| MXFDescriptor * | descriptor | |||
| ) | [static] |
| static int mxf_read_primer_pack | ( | void * | arg, | |
| AVIOContext * | pb, | |||
| int | tag, | |||
| int | size, | |||
| UID | uid | |||
| ) | [static] |
| static int mxf_read_seek | ( | AVFormatContext * | s, | |
| int | stream_index, | |||
| int64_t | sample_time, | |||
| int | flags | |||
| ) | [static] |
| static int mxf_read_sequence | ( | void * | arg, | |
| AVIOContext * | pb, | |||
| int | tag, | |||
| int | size, | |||
| UID | uid | |||
| ) | [static] |
| static int mxf_read_source_clip | ( | void * | arg, | |
| AVIOContext * | pb, | |||
| int | tag, | |||
| int | size, | |||
| UID | uid | |||
| ) | [static] |
| static int mxf_read_source_package | ( | void * | arg, | |
| AVIOContext * | pb, | |||
| int | tag, | |||
| int | size, | |||
| UID | uid | |||
| ) | [static] |
| static int mxf_read_sync | ( | AVIOContext * | pb, | |
| const uint8_t * | key, | |||
| unsigned | size | |||
| ) | [static] |
| static int mxf_read_track | ( | void * | arg, | |
| AVIOContext * | pb, | |||
| int | tag, | |||
| int | size, | |||
| UID | uid | |||
| ) | [static] |
| static void* mxf_resolve_strong_ref | ( | MXFContext * | mxf, | |
| UID * | strong_ref, | |||
| enum MXFMetadataSetType | type | |||
| ) | [static] |
Initial value:
{
"mxf",
NULL_IF_CONFIG_SMALL("Material eXchange Format"),
sizeof(MXFContext),
mxf_probe,
mxf_read_header,
mxf_read_packet,
mxf_read_close,
mxf_read_seek,
}
const uint8_t mxf_crypto_source_container_ul[] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x09,0x06,0x01,0x01,0x02,0x02,0x00,0x00,0x00 } [static] |
const uint8_t mxf_encrypted_essence_container[] = { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x0b,0x01,0x00 } [static] |
const uint8_t mxf_encrypted_triplet_key[] = { 0x06,0x0e,0x2b,0x34,0x02,0x04,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x7e,0x01,0x00 } [static] |
const MXFCodecUL mxf_essence_container_uls[] [static] |
Initial value:
{
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x60,0x01 }, 14, CODEC_ID_MPEG2VIDEO },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x02,0x41,0x01 }, 14, CODEC_ID_DVVIDEO },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x06,0x01,0x00 }, 14, CODEC_ID_PCM_S16LE },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x02,0x0D,0x01,0x03,0x01,0x02,0x04,0x40,0x01 }, 14, CODEC_ID_MP2 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01,0x01,0x01 }, 14, CODEC_ID_PCM_S16LE },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, CODEC_ID_NONE },
}
const uint8_t mxf_essence_element_key[] = { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01 } [static] |
Definition at line 154 of file mxfdec.c.
Referenced by mxf_decrypt_triplet(), mxf_get_stream_index(), mxf_read_header(), and mxf_read_packet().
const uint8_t mxf_header_partition_pack_key[] = { 0x06,0x0e,0x2b,0x34,0x02,0x05,0x01,0x01,0x0d,0x01,0x02,0x01,0x01,0x02 } [static] |
const uint8_t mxf_klv_key[] = { 0x06,0x0e,0x2b,0x34 } [static] |
const MXFMetadataReadTableEntry mxf_metadata_read_table[] [static] |
Initial value:
{
{ { 0x06,0x0E,0x2B,0x34,0x02,0x05,0x01,0x01,0x0d,0x01,0x02,0x01,0x01,0x05,0x01,0x00 }, mxf_read_primer_pack },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x18,0x00 }, mxf_read_content_storage, 0, AnyType },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x37,0x00 }, mxf_read_source_package, sizeof(MXFPackage), SourcePackage },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x36,0x00 }, mxf_read_material_package, sizeof(MXFPackage), MaterialPackage },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x0F,0x00 }, mxf_read_sequence, sizeof(MXFSequence), Sequence },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x11,0x00 }, mxf_read_source_clip, sizeof(MXFStructuralComponent), SourceClip },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x44,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), MultipleDescriptor },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x42,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x28,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x29,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x51,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x48,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x47,0x00 }, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x3A,0x00 }, mxf_read_track, sizeof(MXFTrack), Track },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x3B,0x00 }, mxf_read_track, sizeof(MXFTrack), Track },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x04,0x01,0x02,0x02,0x00,0x00 }, mxf_read_cryptographic_context, sizeof(MXFCryptoContext), CryptoContext },
{ { 0x06,0x0E,0x2B,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x02,0x01,0x01,0x10,0x01,0x00 }, mxf_read_index_table_segment, sizeof(MXFIndexTableSegment), IndexTableSegment },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, NULL, 0, AnyType },
}
const uint8_t mxf_sony_mpeg4_extradata[] = { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0e,0x06,0x06,0x02,0x02,0x01,0x00,0x00 } [static] |
1.5.8