Libav 0.7.1
|
00001 /* 00002 * MXF 00003 * Copyright (c) 2006 SmartJog S.A., Baptiste Coudurier <baptiste dot coudurier at smartjog dot com> 00004 * 00005 * This file is part of Libav. 00006 * 00007 * Libav is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * Libav is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with Libav; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 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,// add metadata type before this 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 /* AVFORMAT_MXF_H */