FFmpeg
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
Functions
Variables
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
c
d
g
h
i
o
q
r
s
v
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Enumerator
a
d
e
f
h
i
j
l
m
n
p
r
s
v
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
l
m
o
p
q
r
s
t
u
v
w
x
y
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
libavcodec
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
26
/**
27
* @file
28
* Interface to Dirac Decoder/Encoder
29
* @author Marco Gerards <marco@gnu.org>
30
* @author David Conrad
31
* @author Jordi Ortiz
32
*/
33
34
#include <stddef.h>
35
#include <stdint.h>
36
37
#include "
libavutil/pixfmt.h
"
38
#include "
libavutil/rational.h
"
39
40
/**
41
* The spec limits the number of wavelet decompositions to 4 for both
42
* level 1 (VC-2) and 128 (long-gop default).
43
* 5 decompositions is the maximum before >16-bit buffers are needed.
44
* Schroedinger allows this for DD 9,7 and 13,7 wavelets only, limiting
45
* the others to 4 decompositions (or 3 for the fidelity filter).
46
*
47
* We use this instead of MAX_DECOMPOSITIONS to save some memory.
48
*/
49
#define MAX_DWT_LEVELS 5
50
51
/**
52
* Parse code values:
53
*
54
* Dirac Specification ->
55
* 9.6.1 Table 9.1
56
*
57
* VC-2 Specification ->
58
* 10.4.1 Table 10.1
59
*/
60
61
enum
DiracParseCodes
{
62
DIRAC_PCODE_SEQ_HEADER
= 0x00,
63
DIRAC_PCODE_END_SEQ
= 0x10,
64
DIRAC_PCODE_AUX
= 0x20,
65
DIRAC_PCODE_PAD
= 0x30,
66
DIRAC_PCODE_PICTURE_CODED
= 0x08,
67
DIRAC_PCODE_PICTURE_RAW
= 0x48,
68
DIRAC_PCODE_PICTURE_LOW_DEL
= 0xC8,
69
DIRAC_PCODE_PICTURE_HQ
= 0xE8,
70
DIRAC_PCODE_INTER_NOREF_CO1
= 0x0A,
71
DIRAC_PCODE_INTER_NOREF_CO2
= 0x09,
72
DIRAC_PCODE_INTER_REF_CO1
= 0x0D,
73
DIRAC_PCODE_INTER_REF_CO2
= 0x0E,
74
DIRAC_PCODE_INTRA_REF_CO
= 0x0C,
75
DIRAC_PCODE_INTRA_REF_RAW
= 0x4C,
76
DIRAC_PCODE_INTRA_REF_PICT
= 0xCC,
77
DIRAC_PCODE_MAGIC
= 0x42424344,
78
};
79
80
typedef
struct
DiracVersionInfo
{
81
int
major
;
82
int
minor
;
83
}
DiracVersionInfo
;
84
85
typedef
struct
AVDiracSeqHeader
{
86
unsigned
width
;
87
unsigned
height
;
88
uint8_t
chroma_format
;
///< 0: 444 1: 422 2: 420
89
90
uint8_t
interlaced
;
91
uint8_t
top_field_first
;
92
93
uint8_t
frame_rate_index
;
///< index into dirac_frame_rate[]
94
uint8_t
aspect_ratio_index
;
///< index into dirac_aspect_ratio[]
95
96
uint16_t
clean_width
;
97
uint16_t
clean_height
;
98
uint16_t
clean_left_offset
;
99
uint16_t
clean_right_offset
;
100
101
uint8_t
pixel_range_index
;
///< index into dirac_pixel_range_presets[]
102
uint8_t
color_spec_index
;
///< index into dirac_color_spec_presets[]
103
104
int
profile
;
105
int
level
;
106
107
AVRational
framerate
;
108
AVRational
sample_aspect_ratio
;
109
110
enum
AVPixelFormat
pix_fmt
;
111
enum
AVColorRange
color_range
;
112
enum
AVColorPrimaries
color_primaries
;
113
enum
AVColorTransferCharacteristic
color_trc
;
114
enum
AVColorSpace
colorspace
;
115
116
DiracVersionInfo
version
;
117
int
bit_depth
;
118
}
AVDiracSeqHeader
;
119
120
/**
121
* Parse a Dirac sequence header.
122
*
123
* @param dsh this function will allocate and fill an AVDiracSeqHeader struct
124
* and write it into this pointer. The caller must free it with
125
* av_free().
126
* @param buf the data buffer
127
* @param buf_size the size of the data buffer in bytes
128
* @param log_ctx if non-NULL, this function will log errors here
129
* @return 0 on success, a negative AVERROR code on failure
130
*/
131
int
av_dirac_parse_sequence_header
(
AVDiracSeqHeader
**dsh,
132
const
uint8_t *buf,
size_t
buf_size,
133
void
*log_ctx);
134
135
#endif
/* AVCODEC_DIRAC_H */
DIRAC_PCODE_PAD
@ DIRAC_PCODE_PAD
Definition:
dirac.h:65
DIRAC_PCODE_PICTURE_CODED
@ DIRAC_PCODE_PICTURE_CODED
Definition:
dirac.h:66
DIRAC_PCODE_INTER_NOREF_CO2
@ DIRAC_PCODE_INTER_NOREF_CO2
Definition:
dirac.h:71
AVPixelFormat
AVPixelFormat
Pixel format.
Definition:
pixfmt.h:71
av_dirac_parse_sequence_header
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:404
DiracVersionInfo
Definition:
dirac.h:80
AVColorTransferCharacteristic
AVColorTransferCharacteristic
Color Transfer Characteristic.
Definition:
pixfmt.h:644
DIRAC_PCODE_MAGIC
@ DIRAC_PCODE_MAGIC
Definition:
dirac.h:77
rational.h
DIRAC_PCODE_PICTURE_RAW
@ DIRAC_PCODE_PICTURE_RAW
Definition:
dirac.h:67
AVDiracSeqHeader::color_trc
enum AVColorTransferCharacteristic color_trc
Definition:
dirac.h:113
DiracVersionInfo::major
int major
Definition:
dirac.h:81
DIRAC_PCODE_INTER_REF_CO1
@ DIRAC_PCODE_INTER_REF_CO1
Definition:
dirac.h:72
AVDiracSeqHeader::top_field_first
uint8_t top_field_first
Definition:
dirac.h:91
AVDiracSeqHeader::pixel_range_index
uint8_t pixel_range_index
index into dirac_pixel_range_presets[]
Definition:
dirac.h:101
AVColorPrimaries
AVColorPrimaries
Chromaticity coordinates of the source primaries.
Definition:
pixfmt.h:619
AVDiracSeqHeader::interlaced
uint8_t interlaced
Definition:
dirac.h:90
AVDiracSeqHeader::color_range
enum AVColorRange color_range
Definition:
dirac.h:111
AVDiracSeqHeader::sample_aspect_ratio
AVRational sample_aspect_ratio
Definition:
dirac.h:108
AVDiracSeqHeader::level
int level
Definition:
dirac.h:105
AVDiracSeqHeader::version
DiracVersionInfo version
Definition:
dirac.h:116
AVDiracSeqHeader::bit_depth
int bit_depth
Definition:
dirac.h:117
DiracParseCodes
DiracParseCodes
Parse code values:
Definition:
dirac.h:61
AVDiracSeqHeader::profile
int profile
Definition:
dirac.h:104
AVDiracSeqHeader::chroma_format
uint8_t chroma_format
0: 444 1: 422 2: 420
Definition:
dirac.h:88
AVDiracSeqHeader::framerate
AVRational framerate
Definition:
dirac.h:107
DIRAC_PCODE_INTER_NOREF_CO1
@ DIRAC_PCODE_INTER_NOREF_CO1
Definition:
dirac.h:70
AVRational
Rational number (pair of numerator and denominator).
Definition:
rational.h:58
AVDiracSeqHeader::colorspace
enum AVColorSpace colorspace
Definition:
dirac.h:114
AVDiracSeqHeader::clean_height
uint16_t clean_height
Definition:
dirac.h:97
AVDiracSeqHeader::clean_width
uint16_t clean_width
Definition:
dirac.h:96
DIRAC_PCODE_PICTURE_LOW_DEL
@ DIRAC_PCODE_PICTURE_LOW_DEL
Definition:
dirac.h:68
AVDiracSeqHeader::clean_right_offset
uint16_t clean_right_offset
Definition:
dirac.h:99
DIRAC_PCODE_AUX
@ DIRAC_PCODE_AUX
Definition:
dirac.h:64
AVDiracSeqHeader::color_spec_index
uint8_t color_spec_index
index into dirac_color_spec_presets[]
Definition:
dirac.h:102
AVDiracSeqHeader::frame_rate_index
uint8_t frame_rate_index
index into dirac_frame_rate[]
Definition:
dirac.h:93
DIRAC_PCODE_SEQ_HEADER
@ DIRAC_PCODE_SEQ_HEADER
Definition:
dirac.h:62
DIRAC_PCODE_INTRA_REF_CO
@ DIRAC_PCODE_INTRA_REF_CO
Definition:
dirac.h:74
AVColorSpace
AVColorSpace
YUV colorspace type.
Definition:
pixfmt.h:673
DiracVersionInfo::minor
int minor
Definition:
dirac.h:82
AVDiracSeqHeader
Definition:
dirac.h:85
pixfmt.h
AVDiracSeqHeader::clean_left_offset
uint16_t clean_left_offset
Definition:
dirac.h:98
DIRAC_PCODE_END_SEQ
@ DIRAC_PCODE_END_SEQ
Definition:
dirac.h:63
AVDiracSeqHeader::pix_fmt
enum AVPixelFormat pix_fmt
Definition:
dirac.h:110
DIRAC_PCODE_INTER_REF_CO2
@ DIRAC_PCODE_INTER_REF_CO2
Definition:
dirac.h:73
AVDiracSeqHeader::aspect_ratio_index
uint8_t aspect_ratio_index
index into dirac_aspect_ratio[]
Definition:
dirac.h:94
AVDiracSeqHeader::width
unsigned width
Definition:
dirac.h:86
DIRAC_PCODE_INTRA_REF_RAW
@ DIRAC_PCODE_INTRA_REF_RAW
Definition:
dirac.h:75
AVDiracSeqHeader::height
unsigned height
Definition:
dirac.h:87
AVColorRange
AVColorRange
Visual content value range.
Definition:
pixfmt.h:715
DIRAC_PCODE_PICTURE_HQ
@ DIRAC_PCODE_PICTURE_HQ
Definition:
dirac.h:69
AVDiracSeqHeader::color_primaries
enum AVColorPrimaries color_primaries
Definition:
dirac.h:112
DIRAC_PCODE_INTRA_REF_PICT
@ DIRAC_PCODE_INTRA_REF_PICT
Definition:
dirac.h:76
Generated on Sat Mar 22 2025 19:21:32 for FFmpeg by
1.8.17