FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
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 "
avcodec.h
"
35
36
/**
37
* The spec limits the number of wavelet decompositions to 4 for both
38
* level 1 (VC-2) and 128 (long-gop default).
39
* 5 decompositions is the maximum before >16-bit buffers are needed.
40
* Schroedinger allows this for DD 9,7 and 13,7 wavelets only, limiting
41
* the others to 4 decompositions (or 3 for the fidelity filter).
42
*
43
* We use this instead of MAX_DECOMPOSITIONS to save some memory.
44
*/
45
#define MAX_DWT_LEVELS 5
46
47
/**
48
* Parse code values:
49
*
50
* Dirac Specification ->
51
* 9.6.1 Table 9.1
52
*
53
* VC-2 Specification ->
54
* 10.4.1 Table 10.1
55
*/
56
57
enum
DiracParseCodes
{
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
;
79
}
DiracVersionInfo
;
80
81
typedef
struct
AVDiracSeqHeader
{
82
unsigned
width
;
83
unsigned
height
;
84
uint8_t
chroma_format
;
///< 0: 444 1: 422 2: 420
85
86
uint8_t
interlaced
;
87
uint8_t
top_field_first
;
88
89
uint8_t
frame_rate_index
;
///< index into dirac_frame_rate[]
90
uint8_t
aspect_ratio_index
;
///< index into dirac_aspect_ratio[]
91
92
uint16_t
clean_width
;
93
uint16_t
clean_height
;
94
uint16_t
clean_left_offset
;
95
uint16_t
clean_right_offset
;
96
97
uint8_t
pixel_range_index
;
///< index into dirac_pixel_range_presets[]
98
uint8_t
color_spec_index
;
///< index into dirac_color_spec_presets[]
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
;
114
}
AVDiracSeqHeader
;
115
116
/**
117
* Parse a Dirac sequence header.
118
*
119
* @param dsh this function will allocate and fill an AVDiracSeqHeader struct
120
* and write it into this pointer. The caller must free it with
121
* av_free().
122
* @param buf the data buffer
123
* @param buf_size the size of the data buffer in bytes
124
* @param log_ctx if non-NULL, this function will log errors here
125
* @return 0 on success, a negative AVERROR code on failure
126
*/
127
int
av_dirac_parse_sequence_header
(
AVDiracSeqHeader
**dsh,
128
const
uint8_t
*
buf
,
size_t
buf_size,
129
void
*log_ctx);
130
131
#endif
/* AVCODEC_DIRAC_H */
AVDiracSeqHeader::interlaced
uint8_t interlaced
Definition:
dirac.h:86
DIRAC_PCODE_INTER_NOREF_CO1
Definition:
dirac.h:66
AVDiracSeqHeader::color_range
enum AVColorRange color_range
Definition:
dirac.h:107
AVDiracSeqHeader::color_trc
enum AVColorTransferCharacteristic color_trc
Definition:
dirac.h:109
AVDiracSeqHeader::version
DiracVersionInfo version
Definition:
dirac.h:112
DIRAC_PCODE_END_SEQ
Definition:
dirac.h:59
DIRAC_PCODE_INTER_NOREF_CO2
Definition:
dirac.h:67
DIRAC_PCODE_INTRA_REF_CO
Definition:
dirac.h:70
AVDiracSeqHeader
Definition:
dirac.h:81
DIRAC_PCODE_AUX
Definition:
dirac.h:60
DIRAC_PCODE_PICTURE_RAW
Definition:
dirac.h:63
AVDiracSeqHeader::level
int level
Definition:
dirac.h:101
AVColorTransferCharacteristic
AVColorTransferCharacteristic
Color Transfer Characteristic.
Definition:
pixfmt.h:423
AVDiracSeqHeader::top_field_first
uint8_t top_field_first
Definition:
dirac.h:87
AVDiracSeqHeader::profile
int profile
Definition:
dirac.h:100
uint8_t
uint8_t
Definition:
audio_convert.c:194
AVDiracSeqHeader::bit_depth
int bit_depth
Definition:
dirac.h:113
AVColorSpace
AVColorSpace
YUV colorspace type.
Definition:
pixfmt.h:451
AVDiracSeqHeader::sample_aspect_ratio
AVRational sample_aspect_ratio
Definition:
dirac.h:104
AVColorRange
AVColorRange
MPEG vs JPEG YUV range.
Definition:
pixfmt.h:473
DIRAC_PCODE_INTER_REF_CO1
Definition:
dirac.h:68
AVColorPrimaries
AVColorPrimaries
Chromaticity coordinates of the source primaries.
Definition:
pixfmt.h:400
AVDiracSeqHeader::pixel_range_index
uint8_t pixel_range_index
index into dirac_pixel_range_presets[]
Definition:
dirac.h:97
AVDiracSeqHeader::framerate
AVRational framerate
Definition:
dirac.h:103
AVDiracSeqHeader::chroma_format
uint8_t chroma_format
0: 444 1: 422 2: 420
Definition:
dirac.h:84
AVDiracSeqHeader::clean_height
uint16_t clean_height
Definition:
dirac.h:93
AVDiracSeqHeader::colorspace
enum AVColorSpace colorspace
Definition:
dirac.h:110
AVDiracSeqHeader::clean_width
uint16_t clean_width
Definition:
dirac.h:92
AVDiracSeqHeader::color_spec_index
uint8_t color_spec_index
index into dirac_color_spec_presets[]
Definition:
dirac.h:98
AVDiracSeqHeader::frame_rate_index
uint8_t frame_rate_index
index into dirac_frame_rate[]
Definition:
dirac.h:89
DIRAC_PCODE_SEQ_HEADER
Definition:
dirac.h:58
DIRAC_PCODE_PICTURE_CODED
Definition:
dirac.h:62
avcodec.h
Libavcodec external API header.
AVDiracSeqHeader::pix_fmt
enum AVPixelFormat pix_fmt
Definition:
dirac.h:106
AVDiracSeqHeader::clean_right_offset
uint16_t clean_right_offset
Definition:
dirac.h:95
DiracVersionInfo
Definition:
dirac.h:76
DiracParseCodes
DiracParseCodes
Parse code values:
Definition:
dirac.h:57
buf
void * buf
Definition:
avisynth_c.h:690
AVRational
Rational number (pair of numerator and denominator).
Definition:
rational.h:58
DIRAC_PCODE_INTER_REF_CO2
Definition:
dirac.h:69
AVDiracSeqHeader::clean_left_offset
uint16_t clean_left_offset
Definition:
dirac.h:94
DIRAC_PCODE_PICTURE_HQ
Definition:
dirac.h:65
AVDiracSeqHeader::height
unsigned height
Definition:
dirac.h:83
DIRAC_PCODE_PICTURE_LOW_DEL
Definition:
dirac.h:64
DIRAC_PCODE_INTRA_REF_RAW
Definition:
dirac.h:71
DIRAC_PCODE_PAD
Definition:
dirac.h:61
DiracVersionInfo::minor
int minor
Definition:
dirac.h:78
AVDiracSeqHeader::aspect_ratio_index
uint8_t aspect_ratio_index
index into dirac_aspect_ratio[]
Definition:
dirac.h:90
DIRAC_PCODE_INTRA_REF_PICT
Definition:
dirac.h:72
AVDiracSeqHeader::color_primaries
enum AVColorPrimaries color_primaries
Definition:
dirac.h:108
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:398
AVDiracSeqHeader::width
unsigned width
Definition:
dirac.h:82
AVPixelFormat
AVPixelFormat
Pixel format.
Definition:
pixfmt.h:60
DIRAC_PCODE_MAGIC
Definition:
dirac.h:73
DiracVersionInfo::major
int major
Definition:
dirac.h:77
Generated on Fri Jan 12 2018 01:45:37 for FFmpeg by
1.8.6