FFmpeg
Loading...
Searching...
No Matches
mxf.h
Go to the documentation of this file.
1/*
2 * MXF
3 * Copyright (c) 2006 SmartJog S.A., Baptiste Coudurier <baptiste dot coudurier at smartjog dot com>
4 *
5 * This file is part of FFmpeg.
6 *
7 * FFmpeg is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * FFmpeg is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with FFmpeg; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21#ifndef AVFORMAT_MXF_H
22#define AVFORMAT_MXF_H
23
24#include <stdint.h>
25#include "libavutil/log.h"
26#include "libavutil/pixfmt.h"
27#include "libavutil/rational.h"
28#include "libavutil/uuid.h"
29
30typedef AVUUID UID;
31
60
68
73
80
88
93
94extern const uint8_t ff_mxf_random_index_pack_key[16];
95
96#define FF_MXF_MasteringDisplay_PREFIX 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x04,0x20,0x04,0x01,0x01
97#define FF_MXF_MasteringDisplayPrimaries { FF_MXF_MasteringDisplay_PREFIX,0x01,0x00,0x00 }
98#define FF_MXF_MasteringDisplayWhitePointChromaticity { FF_MXF_MasteringDisplay_PREFIX,0x02,0x00,0x00 }
99#define FF_MXF_MasteringDisplayMaximumLuminance { FF_MXF_MasteringDisplay_PREFIX,0x03,0x00,0x00 }
100#define FF_MXF_MasteringDisplayMinimumLuminance { FF_MXF_MasteringDisplay_PREFIX,0x04,0x00,0x00 }
101
102#define FF_MXF_MASTERING_CHROMA_DEN 50000
103#define FF_MXF_MASTERING_LUMA_DEN 10000
104
113
115extern const MXFCodecUL ff_mxf_codec_uls[];
117extern const MXFCodecUL ff_mxf_codec_tag_uls[];
119extern const MXFCodecUL ff_mxf_color_trc_uls[];
121
122int ff_mxf_decode_pixel_layout(const char pixel_layout[16], enum AVPixelFormat *pix_fmt);
124
125
126#define PRIxUID \
127 "%02x.%02x.%02x.%02x." \
128 "%02x.%02x.%02x.%02x." \
129 "%02x.%02x.%02x.%02x." \
130 "%02x.%02x.%02x.%02x"
131
132#define UID_ARG(x) \
133 (x)[0], (x)[1], (x)[2], (x)[3], \
134 (x)[4], (x)[5], (x)[6], (x)[7], \
135 (x)[8], (x)[9], (x)[10], (x)[11], \
136 (x)[12], (x)[13], (x)[14], (x)[15] \
137
138#ifdef DEBUG
139#define PRINT_KEY(pc, s, x) \
140 av_log(pc, AV_LOG_VERBOSE, \
141 "%s " \
142 "0x%02x,0x%02x,0x%02x,0x%02x," \
143 "0x%02x,0x%02x,0x%02x,0x%02x," \
144 "0x%02x,0x%02x,0x%02x,0x%02x," \
145 "0x%02x,0x%02x,0x%02x,0x%02x ", \
146 s, UID_ARG(x)); \
147 av_log(pc, AV_LOG_INFO, \
148 "%s " \
149 "%02x.%02x.%02x.%02x." \
150 "%02x.%02x.%02x.%02x." \
151 "%02x.%02x.%02x.%02x." \
152 "%02x.%02x.%02x.%02x\n", \
153 s, UID_ARG(x))
154#else
155#define PRINT_KEY(pc, s, x) do { if(0) \
156 av_log(pc, AV_LOG_VERBOSE, \
157 "%s " \
158 "0x%02x,0x%02x,0x%02x,0x%02x," \
159 "0x%02x,0x%02x,0x%02x,0x%02x," \
160 "0x%02x,0x%02x,0x%02x,0x%02x," \
161 "0x%02x,0x%02x,0x%02x,0x%02x ", \
162 s, UID_ARG(x)); \
163 }while(0)
164#endif
165
166#endif /* AVFORMAT_MXF_H */
long long int64_t
Definition coverity.c:34
static enum AVPixelFormat pix_fmt
const MXFCodecUL ff_mxf_data_definition_uls[]
SMPTE RP224 http://www.smpte-ra.org/mdd/index.html.
Definition mxf.c:31
const uint8_t ff_mxf_random_index_pack_key[16]
Definition mxf.c:26
const MXFCodecUL ff_mxf_pixel_format_uls[]
Definition mxf.c:87
const MXFCodecUL ff_mxf_color_space_uls[]
Definition mxf.c:134
const MXFCodecUL ff_mxf_color_trc_uls[]
Definition mxf.c:113
const MXFCodecUL ff_mxf_codec_tag_uls[]
Definition mxf.c:93
const MXFCodecUL ff_mxf_codec_uls[]
Definition mxf.c:40
const MXFCodecUL ff_mxf_color_primaries_uls[]
Definition mxf.c:98
MXFWrappingIndicatorType
Definition mxf.h:81
@ NormalWrap
Definition mxf.h:82
@ J2KWrap
Definition mxf.h:86
@ RawAWrap
Definition mxf.h:84
@ RawVWrap
Definition mxf.h:85
@ D10D11Wrap
Definition mxf.h:83
int ff_mxf_decode_pixel_layout(const char pixel_layout[16], enum AVPixelFormat *pix_fmt)
Definition mxf.c:178
int ff_mxf_get_content_package_rate(AVRational time_base)
Definition mxf.c:220
MXFFrameLayout
Definition mxf.h:61
@ MixedFields
Definition mxf.h:65
@ SegmentedFrame
Definition mxf.h:66
@ OneField
Definition mxf.h:64
@ FullFrame
Definition mxf.h:62
@ SeparateFields
Definition mxf.h:63
AVUUID UID
Definition mxf.h:30
MXFMetadataSetType
Definition mxf.h:32
@ Sequence
Definition mxf.h:38
@ MultipleDescriptor
Definition mxf.h:39
@ SoundfieldGroupLabelSubDescriptor
Definition mxf.h:54
@ MaterialPackage
Definition mxf.h:33
@ TapeDescriptor
Definition mxf.h:51
@ SourceClip
Definition mxf.h:35
@ IndexTableSegment
Definition mxf.h:47
@ MetadataSetTypeNB
Definition mxf.h:58
@ FFV1SubDescriptor
Definition mxf.h:56
@ TaggedValue
Definition mxf.h:50
@ AudioChannelLabelSubDescriptor
Definition mxf.h:53
@ EssenceContainerData
Definition mxf.h:48
@ SourcePackage
Definition mxf.h:34
@ EssenceGroup
Definition mxf.h:49
@ Descriptor
Definition mxf.h:40
@ PulldownComponent
Definition mxf.h:37
@ GroupOfSoundfieldGroupsLabelSubDescriptor
Definition mxf.h:55
@ Preface
Definition mxf.h:43
@ SubDescriptor
Definition mxf.h:46
@ JPEG2000SubDescriptor
Definition mxf.h:57
@ TimecodeComponent
Definition mxf.h:36
@ Identification
Definition mxf.h:44
@ ContentStorage
Definition mxf.h:45
@ AVCSubDescriptor
Definition mxf.h:52
pixel format definitions
AVPixelFormat
Pixel format.
Definition pixfmt.h:71
Utilities for rational number calculation.
Rational number (pair of numerator and denominator).
Definition rational.h:58
uint64_t length
Definition mxf.h:77
int64_t offset
Definition mxf.h:76
int64_t next_klv
Definition mxf.h:78
UID key
Definition mxf.h:75
UID uid
Definition mxf.h:106
const char * desc
Definition mxf.h:109
unsigned matching_len
Definition mxf.h:107
MXFWrappingIndicatorType wrapping_indicator_type
Definition mxf.h:111
int id
Definition mxf.h:108
unsigned wrapping_indicator_pos
Definition mxf.h:110
AVRational tb
Definition mxf.h:71
int local_tag
Definition mxf.h:90
UUID parsing and serialization utilities.
uint8_t AVUUID[AV_UUID_LEN]
Definition uuid.h:60