00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 #ifndef AVFORMAT_MXF_H
00022 #define AVFORMAT_MXF_H
00023 
00024 #include "libavcodec/avcodec.h"
00025 #include <stdint.h>
00026 
00027 typedef uint8_t UID[16];
00028 
00029 enum MXFMetadataSetType {
00030     AnyType,
00031     MaterialPackage,
00032     SourcePackage,
00033     SourceClip,
00034     TimecodeComponent,
00035     Sequence,
00036     MultipleDescriptor,
00037     Descriptor,
00038     Track,
00039     CryptoContext,
00040     Preface,
00041     Identification,
00042     ContentStorage,
00043     SubDescriptor,
00044     IndexTableSegment,
00045     EssenceContainerData,
00046     TypeBottom,
00047 };
00048 
00049 typedef struct {
00050     UID key;
00051     int64_t offset;
00052     uint64_t length;
00053 } KLVPacket;
00054 
00055 typedef struct {
00056     UID uid;
00057     unsigned matching_len;
00058     int id;
00059 } MXFCodecUL;
00060 
00061 extern const MXFCodecUL ff_mxf_data_definition_uls[];
00062 extern const MXFCodecUL ff_mxf_codec_uls[];
00063 
00064 int ff_mxf_decode_pixel_layout(const char pixel_layout[16], enum PixelFormat *pix_fmt);
00065 
00066 #define PRINT_KEY(pc, s, x) av_dlog(pc, "%s %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X\n", s, \
00067                              (x)[0], (x)[1], (x)[2], (x)[3], (x)[4], (x)[5], (x)[6], (x)[7], (x)[8], (x)[9], (x)[10], (x)[11], (x)[12], (x)[13], (x)[14], (x)[15])
00068 
00069 #endif