c69968b4 |
/*
* MXF |
406792e7 |
* Copyright (c) 2006 SmartJog S.A., Baptiste Coudurier <baptiste dot coudurier at smartjog dot com> |
c69968b4 |
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ |
98790382 |
#ifndef AVFORMAT_MXF_H
#define AVFORMAT_MXF_H |
c69968b4 |
|
251bf875 |
#include "libavcodec/avcodec.h"
#include <stdint.h> |
c69968b4 |
typedef uint8_t UID[16];
enum MXFMetadataSetType {
AnyType,
MaterialPackage,
SourcePackage,
SourceClip,
TimecodeComponent,
Sequence,
MultipleDescriptor,
Descriptor,
Track,
CryptoContext,
Preface,
Identification,
ContentStorage,
SubDescriptor, |
15cdff85 |
IndexTableSegment, |
6e4668b8 |
EssenceContainerData, |
6986662b |
TypeBottom,// add metadata type before this |
c69968b4 |
};
|
84b9b4aa |
enum MXFFrameLayout {
FullFrame = 0, |
70ca163b |
SeparateFields, |
84b9b4aa |
OneField, |
70ca163b |
MixedFields, |
84b9b4aa |
SegmentedFrame,
};
|
c69968b4 |
typedef struct {
UID key; |
bc5c918e |
int64_t offset; |
c69968b4 |
uint64_t length;
} KLVPacket;
typedef struct {
UID uid;
unsigned matching_len; |
5ac4d768 |
int id; |
c69968b4 |
} MXFCodecUL;
|
5ac4d768 |
extern const MXFCodecUL ff_mxf_data_definition_uls[]; |
c69968b4 |
extern const MXFCodecUL ff_mxf_codec_uls[]; |
34210e8d |
extern const MXFCodecUL ff_mxf_pixel_format_uls[]; |
c69968b4 |
|
11fdc4d4 |
int ff_mxf_decode_pixel_layout(const char pixel_layout[16], enum PixelFormat *pix_fmt);
|
9ef5a9de |
#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, \ |
c69968b4 |
(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])
|
98790382 |
#endif /* AVFORMAT_MXF_H */ |