FFmpeg
dirac.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2007 Marco Gerards <marco@gnu.org>
3  * Copyright (C) 2009 David Conrad
4  * Copyright (C) 2011 Jordi Ortiz
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 
23 #ifndef AVCODEC_DIRAC_H
24 #define AVCODEC_DIRAC_H
25 
34 #include "avcodec.h"
35 
45 #define MAX_DWT_LEVELS 5
46 
58  DIRAC_PCODE_SEQ_HEADER = 0x00,
59  DIRAC_PCODE_END_SEQ = 0x10,
60  DIRAC_PCODE_AUX = 0x20,
61  DIRAC_PCODE_PAD = 0x30,
62  DIRAC_PCODE_PICTURE_CODED = 0x08,
63  DIRAC_PCODE_PICTURE_RAW = 0x48,
64  DIRAC_PCODE_PICTURE_LOW_DEL = 0xC8,
65  DIRAC_PCODE_PICTURE_HQ = 0xE8,
66  DIRAC_PCODE_INTER_NOREF_CO1 = 0x0A,
67  DIRAC_PCODE_INTER_NOREF_CO2 = 0x09,
68  DIRAC_PCODE_INTER_REF_CO1 = 0x0D,
69  DIRAC_PCODE_INTER_REF_CO2 = 0x0E,
70  DIRAC_PCODE_INTRA_REF_CO = 0x0C,
71  DIRAC_PCODE_INTRA_REF_RAW = 0x4C,
72  DIRAC_PCODE_INTRA_REF_PICT = 0xCC,
73  DIRAC_PCODE_MAGIC = 0x42424344,
74 };
75 
76 typedef struct DiracVersionInfo {
77  int major;
78  int minor;
80 
81 typedef struct AVDiracSeqHeader {
82  unsigned width;
83  unsigned height;
84  uint8_t chroma_format;
85 
86  uint8_t interlaced;
87  uint8_t top_field_first;
88 
89  uint8_t frame_rate_index;
91 
92  uint16_t clean_width;
93  uint16_t clean_height;
94  uint16_t clean_left_offset;
95  uint16_t clean_right_offset;
96 
98  uint8_t color_spec_index;
99 
100  int profile;
101  int level;
102 
103  AVRational framerate;
104  AVRational sample_aspect_ratio;
105 
106  enum AVPixelFormat pix_fmt;
107  enum AVColorRange color_range;
108  enum AVColorPrimaries color_primaries;
109  enum AVColorTransferCharacteristic color_trc;
110  enum AVColorSpace colorspace;
111 
112  DiracVersionInfo version;
113  int bit_depth;
115 
128  const uint8_t *buf, size_t buf_size,
129  void *log_ctx);
130 
131 #endif /* AVCODEC_DIRAC_H */
Definition: dirac.h:81
AVColorTransferCharacteristic
Color Transfer Characteristic.
Definition: pixfmt.h:444
AVColorSpace
YUV colorspace type.
Definition: pixfmt.h:473
AVColorRange
MPEG vs JPEG YUV range.
Definition: pixfmt.h:496
AVColorPrimaries
Chromaticity coordinates of the source primaries.
Definition: pixfmt.h:420
uint8_t pixel_range_index
index into dirac_pixel_range_presets[]
Definition: dirac.h:97
uint8_t chroma_format
0: 444 1: 422 2: 420
Definition: dirac.h:84
uint8_t color_spec_index
index into dirac_color_spec_presets[]
Definition: dirac.h:98
uint8_t frame_rate_index
index into dirac_frame_rate[]
Definition: dirac.h:89
Libavcodec external API header.
Definition: dirac.h:76
DiracParseCodes
Parse code values:
Definition: dirac.h:57
Rational number (pair of numerator and denominator).
Definition: rational.h:58
uint8_t aspect_ratio_index
index into dirac_aspect_ratio[]
Definition: dirac.h:90
int av_dirac_parse_sequence_header(AVDiracSeqHeader **dsh, const uint8_t *buf, size_t buf_size, void *log_ctx)
Parse a Dirac sequence header.
Definition: dirac.c:402
AVPixelFormat
Pixel format.
Definition: pixfmt.h:60