FFmpeg
Functions | Variables
mxf.c File Reference
#include "libavutil/common.h"
#include "mxf.h"

Go to the source code of this file.

Functions

int ff_mxf_decode_pixel_layout (const char pixel_layout[16], enum AVPixelFormat *pix_fmt)
 
int ff_mxf_get_content_package_rate (AVRational time_base)
 

Variables

const uint8_t ff_mxf_mastering_display_prefix [13] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x04,0x20,0x04,0x01,0x01 }
 
const MXFLocalTagPair ff_mxf_mastering_display_local_tags [4]
 
const MXFCodecUL ff_mxf_data_definition_uls []
 SMPTE RP224 http://www.smpte-ra.org/mdd/index.html. More...
 
const MXFCodecUL ff_mxf_codec_uls []
 
const MXFCodecUL ff_mxf_pixel_format_uls []
 
const MXFCodecUL ff_mxf_codec_tag_uls []
 
const MXFCodecUL ff_mxf_color_primaries_uls []
 
const MXFCodecUL ff_mxf_color_trc_uls []
 
const MXFCodecUL ff_mxf_color_space_uls []
 
struct {
   enum AVPixelFormat   pix_fmt
 
   const char   data [16]
 
ff_mxf_pixel_layouts []
 
static const int num_pixel_layouts = FF_ARRAY_ELEMS(ff_mxf_pixel_layouts)
 
static const MXFContentPackageRate mxf_content_package_rates []
 See SMPTE 326M-2000 Section 7.2 Content package rate MXFContentPackageRate->rate is bits b5..b0. More...
 

Function Documentation

int ff_mxf_decode_pixel_layout ( const char  pixel_layout[16],
enum AVPixelFormat pix_fmt 
)

Definition at line 180 of file mxf.c.

Referenced by mxf_read_pixel_layout().

int ff_mxf_get_content_package_rate ( AVRational  time_base)

Definition at line 222 of file mxf.c.

Referenced by mxf_init_timecode(), and mxf_write_header().

Variable Documentation

const uint8_t ff_mxf_mastering_display_prefix[13] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x04,0x20,0x04,0x01,0x01 }

Definition at line 25 of file mxf.c.

Referenced by mxf_read_generic_descriptor().

const MXFLocalTagPair ff_mxf_mastering_display_local_tags[4]
Initial value:
= {
{ 0x8301, { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x04,0x20,0x04,0x01,0x01,0x01,0x00,0x00 }},
{ 0x8302, { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x04,0x20,0x04,0x01,0x01,0x02,0x00,0x00 }},
{ 0x8303, { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x04,0x20,0x04,0x01,0x01,0x03,0x00,0x00 }},
{ 0x8304, { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x04,0x20,0x04,0x01,0x01,0x04,0x00,0x00 }}
}

Definition at line 29 of file mxf.c.

Referenced by mxf_read_generic_descriptor(), mxf_write_cdci_common(), and mxf_write_primer_pack().

const MXFCodecUL ff_mxf_data_definition_uls[]
Initial value:
= {
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x01,0x03,0x02,0x02,0x01,0x00,0x00,0x00 }, 13, AVMEDIA_TYPE_VIDEO },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x01,0x03,0x02,0x02,0x02,0x00,0x00,0x00 }, 13, AVMEDIA_TYPE_AUDIO },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x01,0x03,0x02,0x02,0x03,0x00,0x00,0x00 }, 13, AVMEDIA_TYPE_DATA },
{ { 0x80,0x7D,0x00,0x60,0x08,0x14,0x3E,0x6F,0x6F,0x3C,0x8C,0xE1,0x6C,0xEF,0x11,0xD2 }, 16, AVMEDIA_TYPE_VIDEO },
{ { 0x80,0x7D,0x00,0x60,0x08,0x14,0x3E,0x6F,0x78,0xE1,0xEB,0xE1,0x6C,0xEF,0x11,0xD2 }, 16, AVMEDIA_TYPE_AUDIO },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AVMEDIA_TYPE_DATA },
}
Opaque data information usually continuous.
Definition: avutil.h:203

SMPTE RP224 http://www.smpte-ra.org/mdd/index.html.

Definition at line 39 of file mxf.c.

Referenced by mxf_add_metadata_stream(), mxf_parse_structural_metadata(), and mxf_write_common_fields().

const MXFCodecUL ff_mxf_codec_uls[]

Definition at line 48 of file mxf.c.

Referenced by mxf_parse_structural_metadata().

const MXFCodecUL ff_mxf_pixel_format_uls[]
Initial value:
= {
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x01,0x01,0x02,0x01,0x01 }, 16, AV_PIX_FMT_UYVY422 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x01,0x01,0x02,0x01,0x02 }, 16, AV_PIX_FMT_YUYV422 },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AV_PIX_FMT_NONE },
}
packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1
Definition: pixfmt.h:81
packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr
Definition: pixfmt.h:67

Definition at line 89 of file mxf.c.

Referenced by mxf_parse_structural_metadata().

const MXFCodecUL ff_mxf_codec_tag_uls[]
Initial value:
= {
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0E,0x04,0x03,0x01,0x01,0x03,0x01,0x00 }, 15, MKTAG('A', 'V', 'u', 'p') },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, 0 },
}
#define MKTAG(a, b, c, d)
Definition: common.h:406

Definition at line 95 of file mxf.c.

Referenced by mxf_parse_structural_metadata().

const MXFCodecUL ff_mxf_color_primaries_uls[]
Initial value:
= {
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x06,0x04,0x01,0x01,0x01,0x03,0x01,0x00,0x00 }, 14, AVCOL_PRI_SMPTE170M },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x06,0x04,0x01,0x01,0x01,0x03,0x02,0x00,0x00 }, 14, AVCOL_PRI_BT470BG },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x06,0x04,0x01,0x01,0x01,0x03,0x03,0x00,0x00 }, 14, AVCOL_PRI_BT709 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0D,0x04,0x01,0x01,0x01,0x03,0x04,0x00,0x00 }, 14, AVCOL_PRI_BT2020 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0D,0x04,0x01,0x01,0x01,0x03,0x05,0x00,0x00 }, 14, AVCOL_PRI_SMPTE428 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0D,0x04,0x01,0x01,0x01,0x03,0x06,0x00,0x00 }, 14, AVCOL_PRI_SMPTE432 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0D,0x04,0x01,0x01,0x01,0x03,0x08,0x00,0x00 }, 14, AVCOL_PRI_SMPTE428 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0D,0x04,0x01,0x01,0x01,0x03,0x0a,0x00,0x00 }, 14, AVCOL_PRI_SMPTE431 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x06,0x04,0x01,0x01,0x01,0x03,0x01,0x00,0x00 }, 14, AVCOL_PRI_SMPTE240M },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AVCOL_PRI_UNSPECIFIED },
}
SMPTE ST 432-1 (2010) / P3 D65 / Display P3.
Definition: pixfmt.h:473
SMPTE ST 431-2 (2011) / DCI P3.
Definition: pixfmt.h:472
also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP177 Annex B
Definition: pixfmt.h:460
SMPTE ST 428-1 (CIE 1931 XYZ)
Definition: pixfmt.h:470
also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM
Definition: pixfmt.h:465
functionally identical to above
Definition: pixfmt.h:467
also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
Definition: pixfmt.h:466
ITU-R BT2020.
Definition: pixfmt.h:469

Definition at line 100 of file mxf.c.

Referenced by mxf_parse_structural_metadata(), and mxf_write_cdci_common().

const MXFCodecUL ff_mxf_color_trc_uls[]
Initial value:
= {
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x00,0x00 }, 14, AVCOL_TRC_GAMMA22 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x02,0x00,0x00 }, 14, AVCOL_TRC_BT709 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x03,0x00,0x00 }, 14, AVCOL_TRC_SMPTE240M },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x00,0x00 }, 14, AVCOL_TRC_BT709 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x06,0x04,0x01,0x01,0x01,0x01,0x05,0x00,0x00 }, 14, AVCOL_TRC_BT1361_ECG },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x06,0x04,0x01,0x01,0x01,0x01,0x06,0x00,0x00 }, 14, AVCOL_TRC_LINEAR },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x08,0x04,0x01,0x01,0x01,0x01,0x07,0x00,0x00 }, 14, AVCOL_TRC_SMPTE428 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0D,0x04,0x01,0x01,0x01,0x01,0x08,0x00,0x00 }, 14, AVCOL_TRC_IEC61966_2_4 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0E,0x04,0x01,0x01,0x01,0x01,0x09,0x00,0x00 }, 14, AVCOL_TRC_BT2020_10 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0D,0x04,0x01,0x01,0x01,0x01,0x0A,0x00,0x00 }, 14, AVCOL_TRC_SMPTE2084 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0D,0x04,0x01,0x01,0x01,0x01,0x0B,0x00,0x00 }, 14, AVCOL_TRC_ARIB_STD_B67 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x00,0x00 }, 14, AVCOL_TRC_GAMMA28 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x02,0x00,0x00 }, 14, AVCOL_TRC_SMPTE170M },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0E,0x04,0x01,0x01,0x01,0x01,0x09,0x00,0x00 }, 14, AVCOL_TRC_BT2020_12 },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AVCOL_TRC_UNSPECIFIED },
}
ITU-R BT2020 for 12-bit system.
Definition: pixfmt.h:499
IEC 61966-2-4.
Definition: pixfmt.h:495
"Linear transfer characteristics"
Definition: pixfmt.h:492
also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM
Definition: pixfmt.h:488
ITU-R BT1361 Extended Colour Gamut.
Definition: pixfmt.h:496
SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems.
Definition: pixfmt.h:500
also ITU-R BT1361
Definition: pixfmt.h:485
also ITU-R BT601-6 525 or 625 / ITU-R BT1358 525 or 625 / ITU-R BT1700 NTSC
Definition: pixfmt.h:490
SMPTE ST 428-1.
Definition: pixfmt.h:502
also ITU-R BT470BG
Definition: pixfmt.h:489
ARIB STD-B67, known as "Hybrid log-gamma".
Definition: pixfmt.h:504
ITU-R BT2020 for 10-bit system.
Definition: pixfmt.h:498

Definition at line 115 of file mxf.c.

Referenced by mxf_parse_structural_metadata(), and mxf_write_cdci_common().

const MXFCodecUL ff_mxf_color_space_uls[]
Initial value:
= {
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x02,0x01,0x00,0x00 }, 14, AVCOL_SPC_BT470BG },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x02,0x02,0x00,0x00 }, 14, AVCOL_SPC_BT709 },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x06,0x04,0x01,0x01,0x01,0x02,0x03,0x00,0x00 }, 14, AVCOL_SPC_SMPTE240M },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0D,0x04,0x01,0x01,0x01,0x02,0x04,0x00,0x00 }, 14, AVCOL_SPC_YCGCO },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0D,0x04,0x01,0x01,0x01,0x02,0x05,0x00,0x00 }, 14, AVCOL_SPC_RGB },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0D,0x04,0x01,0x01,0x01,0x02,0x06,0x00,0x00 }, 14, AVCOL_SPC_BT2020_NCL },
{ { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x06,0x04,0x01,0x01,0x01,0x02,0x03,0x00,0x00 }, 14, AVCOL_SPC_SMPTE170M },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AVCOL_SPC_UNSPECIFIED },
}
also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B
Definition: pixfmt.h:514
also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601 ...
Definition: pixfmt.h:518
also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
Definition: pixfmt.h:519
order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB)
Definition: pixfmt.h:513
functionally identical to above
Definition: pixfmt.h:520
Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16.
Definition: pixfmt.h:521
ITU-R BT2020 non-constant luminance system.
Definition: pixfmt.h:523

Definition at line 136 of file mxf.c.

Referenced by mxf_parse_structural_metadata(), and mxf_write_cdci_common().

enum AVPixelFormat pix_fmt

Definition at line 150 of file mxf.c.

const char data[16]

Definition at line 151 of file mxf.c.

const { ... } ff_mxf_pixel_layouts[]
Initial value:
= {
{AV_PIX_FMT_ABGR, {'A', 8, 'B', 8, 'G', 8, 'R', 8 }},
{AV_PIX_FMT_ARGB, {'A', 8, 'R', 8, 'G', 8, 'B', 8 }},
{AV_PIX_FMT_BGR24, {'B', 8, 'G', 8, 'R', 8 }},
{AV_PIX_FMT_BGRA, {'B', 8, 'G', 8, 'R', 8, 'A', 8 }},
{AV_PIX_FMT_RGB24, {'R', 8, 'G', 8, 'B', 8 }},
{AV_PIX_FMT_RGB444BE,{'F', 4, 'R', 4, 'G', 4, 'B', 4 }},
{AV_PIX_FMT_RGB48BE, {'R', 8, 'r', 8, 'G', 8, 'g', 8, 'B', 8, 'b', 8 }},
{AV_PIX_FMT_RGB48BE, {'R', 16, 'G', 16, 'B', 16 }},
{AV_PIX_FMT_RGB48LE, {'r', 8, 'R', 8, 'g', 8, 'G', 8, 'b', 8, 'B', 8 }},
{AV_PIX_FMT_RGB555BE,{'F', 1, 'R', 5, 'G', 5, 'B', 5 }},
{AV_PIX_FMT_RGB565BE,{'R', 5, 'G', 6, 'B', 5 }},
{AV_PIX_FMT_RGBA, {'R', 8, 'G', 8, 'B', 8, 'A', 8 }},
{AV_PIX_FMT_PAL8, {'P', 8 }},
{AV_PIX_FMT_GRAY8, {'A', 8 }},
}
packed RGB 8:8:8, 24bpp, RGBRGB...
Definition: pixfmt.h:68
packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), big-endian, X=unused/undefined
Definition: pixfmt.h:140
8 bits with AV_PIX_FMT_RGB32 palette
Definition: pixfmt.h:77
packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as lit...
Definition: pixfmt.h:103
packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), big-endian
Definition: pixfmt.h:105
packed ABGR 8:8:8:8, 32bpp, ABGRABGR...
Definition: pixfmt.h:94
packed BGRA 8:8:8:8, 32bpp, BGRABGRA...
Definition: pixfmt.h:95
packed ARGB 8:8:8:8, 32bpp, ARGBARGB...
Definition: pixfmt.h:92
packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
Definition: pixfmt.h:93
packed RGB 8:8:8, 24bpp, BGRBGR...
Definition: pixfmt.h:69
packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), big-endian , X=unused/undefined
Definition: pixfmt.h:107
Y , 8bpp.
Definition: pixfmt.h:74
packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as big...
Definition: pixfmt.h:102

Referenced by ff_mxf_decode_pixel_layout().

const int num_pixel_layouts = FF_ARRAY_ELEMS(ff_mxf_pixel_layouts)
static

Definition at line 178 of file mxf.c.

Referenced by ff_mxf_decode_pixel_layout().

const MXFContentPackageRate mxf_content_package_rates[]
static
Initial value:
= {
{ 2, { 1, 24 } },
{ 3, { 1001, 24000 } },
{ 4, { 1, 25 } },
{ 6, { 1, 30 } },
{ 7, { 1001, 30000 } },
{ 8, { 1 , 48 } },
{ 9, { 1001, 48000 } },
{ 10, { 1, 50 } },
{ 12, { 1, 60 } },
{ 13, { 1001, 60000 } },
{ 14, { 1, 72 } },
{ 15, { 1001, 72000 } },
{ 16, { 1, 75 } },
{ 18, { 1, 90 } },
{ 19, { 1001, 90000 } },
{ 20, { 1, 96 } },
{ 21, { 1001, 96000 } },
{ 22, { 1, 100 } },
{ 24, { 1, 120 } },
{ 25, { 1001, 120000} },
{0}
}

See SMPTE 326M-2000 Section 7.2 Content package rate MXFContentPackageRate->rate is bits b5..b0.

Definition at line 198 of file mxf.c.