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
hevc.h
Go to the documentation of this file.
1
/*
2
* HEVC shared code
3
*
4
* This file is part of FFmpeg.
5
*
6
* FFmpeg is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* FFmpeg is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with FFmpeg; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#ifndef AVCODEC_HEVC_H
22
#define AVCODEC_HEVC_H
23
24
/**
25
* Table 7-3: NAL unit type codes
26
*/
27
enum
HEVCNALUnitType
{
28
HEVC_NAL_TRAIL_N
= 0,
29
HEVC_NAL_TRAIL_R
= 1,
30
HEVC_NAL_TSA_N
= 2,
31
HEVC_NAL_TSA_R
= 3,
32
HEVC_NAL_STSA_N
= 4,
33
HEVC_NAL_STSA_R
= 5,
34
HEVC_NAL_RADL_N
= 6,
35
HEVC_NAL_RADL_R
= 7,
36
HEVC_NAL_RASL_N
= 8,
37
HEVC_NAL_RASL_R
= 9,
38
HEVC_NAL_VCL_N10
= 10,
39
HEVC_NAL_VCL_R11
= 11,
40
HEVC_NAL_VCL_N12
= 12,
41
HEVC_NAL_VCL_R13
= 13,
42
HEVC_NAL_VCL_N14
= 14,
43
HEVC_NAL_VCL_R15
= 15,
44
HEVC_NAL_BLA_W_LP
= 16,
45
HEVC_NAL_BLA_W_RADL
= 17,
46
HEVC_NAL_BLA_N_LP
= 18,
47
HEVC_NAL_IDR_W_RADL
= 19,
48
HEVC_NAL_IDR_N_LP
= 20,
49
HEVC_NAL_CRA_NUT
= 21,
50
HEVC_NAL_IRAP_VCL22
= 22,
51
HEVC_NAL_IRAP_VCL23
= 23,
52
HEVC_NAL_RSV_VCL24
= 24,
53
HEVC_NAL_RSV_VCL25
= 25,
54
HEVC_NAL_RSV_VCL26
= 26,
55
HEVC_NAL_RSV_VCL27
= 27,
56
HEVC_NAL_RSV_VCL28
= 28,
57
HEVC_NAL_RSV_VCL29
= 29,
58
HEVC_NAL_RSV_VCL30
= 30,
59
HEVC_NAL_RSV_VCL31
= 31,
60
HEVC_NAL_VPS
= 32,
61
HEVC_NAL_SPS
= 33,
62
HEVC_NAL_PPS
= 34,
63
HEVC_NAL_AUD
= 35,
64
HEVC_NAL_EOS_NUT
= 36,
65
HEVC_NAL_EOB_NUT
= 37,
66
HEVC_NAL_FD_NUT
= 38,
67
HEVC_NAL_SEI_PREFIX
= 39,
68
HEVC_NAL_SEI_SUFFIX
= 40,
69
};
70
71
enum
HEVCSliceType
{
72
HEVC_SLICE_B
= 0,
73
HEVC_SLICE_P
= 1,
74
HEVC_SLICE_I
= 2,
75
};
76
77
enum
{
78
// 7.4.3.1: vps_max_layers_minus1 is in [0, 62].
79
HEVC_MAX_LAYERS
= 63,
80
// 7.4.3.1: vps_max_sub_layers_minus1 is in [0, 6].
81
HEVC_MAX_SUB_LAYERS
= 7,
82
// 7.4.3.1: vps_num_layer_sets_minus1 is in [0, 1023].
83
HEVC_MAX_LAYER_SETS
= 1024,
84
85
// 7.4.2.1: vps_video_parameter_set_id is u(4).
86
HEVC_MAX_VPS_COUNT
= 16,
87
// 7.4.3.2.1: sps_seq_parameter_set_id is in [0, 15].
88
HEVC_MAX_SPS_COUNT
= 16,
89
// 7.4.3.3.1: pps_pic_parameter_set_id is in [0, 63].
90
HEVC_MAX_PPS_COUNT
= 64,
91
92
// A.4.2: MaxDpbSize is bounded above by 16.
93
HEVC_MAX_DPB_SIZE
= 16,
94
// 7.4.3.1: vps_max_dec_pic_buffering_minus1[i] is in [0, MaxDpbSize - 1].
95
HEVC_MAX_REFS
=
HEVC_MAX_DPB_SIZE
,
96
97
// 7.4.3.2.1: num_short_term_ref_pic_sets is in [0, 64].
98
HEVC_MAX_SHORT_TERM_REF_PIC_SETS
= 64,
99
// 7.4.3.2.1: num_long_term_ref_pics_sps is in [0, 32].
100
HEVC_MAX_LONG_TERM_REF_PICS
= 32,
101
102
// A.3: all profiles require that CtbLog2SizeY is in [4, 6].
103
HEVC_MIN_LOG2_CTB_SIZE
= 4,
104
HEVC_MAX_LOG2_CTB_SIZE
= 6,
105
106
// E.3.2: cpb_cnt_minus1[i] is in [0, 31].
107
HEVC_MAX_CPB_CNT
= 32,
108
109
// A.4.1: in table A.6 the highest level allows a MaxLumaPs of 35 651 584.
110
HEVC_MAX_LUMA_PS
= 35651584,
111
// A.4.1: pic_width_in_luma_samples and pic_height_in_luma_samples are
112
// constrained to be not greater than sqrt(MaxLumaPs * 8). Hence height/
113
// width are bounded above by sqrt(8 * 35651584) = 16888.2 samples.
114
HEVC_MAX_WIDTH
= 16888,
115
HEVC_MAX_HEIGHT
= 16888,
116
117
// A.4.1: table A.6 allows at most 22 tile rows for any level.
118
HEVC_MAX_TILE_ROWS
= 22,
119
// A.4.1: table A.6 allows at most 20 tile columns for any level.
120
HEVC_MAX_TILE_COLUMNS
= 20,
121
122
// 7.4.7.1: in the worst case (tiles_enabled_flag and
123
// entropy_coding_sync_enabled_flag are both set), entry points can be
124
// placed at the beginning of every Ctb row in every tile, giving an
125
// upper bound of (num_tile_columns_minus1 + 1) * PicHeightInCtbsY - 1.
126
// Only a stream with very high resolution and perverse parameters could
127
// get near that, though, so set a lower limit here with the maximum
128
// possible value for 4K video (at most 135 16x16 Ctb rows).
129
HEVC_MAX_ENTRY_POINT_OFFSETS
=
HEVC_MAX_TILE_COLUMNS
* 135,
130
};
131
132
133
#endif
/* AVCODEC_HEVC_H */
HEVC_MAX_SPS_COUNT
Definition:
hevc.h:88
HEVC_MAX_SHORT_TERM_REF_PIC_SETS
Definition:
hevc.h:98
HEVC_NAL_IDR_N_LP
Definition:
hevc.h:48
HEVC_NAL_RSV_VCL26
Definition:
hevc.h:54
HEVC_NAL_IRAP_VCL23
Definition:
hevc.h:51
HEVC_MAX_WIDTH
Definition:
hevc.h:114
HEVC_MAX_LAYER_SETS
Definition:
hevc.h:83
HEVC_NAL_BLA_W_LP
Definition:
hevc.h:44
HEVC_NAL_RSV_VCL30
Definition:
hevc.h:58
HEVC_NAL_TSA_N
Definition:
hevc.h:30
HEVC_MAX_TILE_COLUMNS
Definition:
hevc.h:120
HEVCNALUnitType
HEVCNALUnitType
Table 7-3: NAL unit type codes.
Definition:
hevc.h:27
HEVC_NAL_RSV_VCL25
Definition:
hevc.h:53
HEVC_SLICE_I
Definition:
hevc.h:74
HEVC_NAL_AUD
Definition:
hevc.h:63
HEVC_NAL_VCL_R11
Definition:
hevc.h:39
HEVC_MAX_DPB_SIZE
Definition:
hevc.h:93
HEVC_MAX_HEIGHT
Definition:
hevc.h:115
HEVC_NAL_SEI_PREFIX
Definition:
hevc.h:67
HEVC_NAL_IDR_W_RADL
Definition:
hevc.h:47
HEVC_NAL_EOS_NUT
Definition:
hevc.h:64
HEVC_NAL_BLA_N_LP
Definition:
hevc.h:46
HEVC_NAL_RSV_VCL27
Definition:
hevc.h:55
HEVC_MAX_LAYERS
Definition:
hevc.h:79
HEVC_NAL_RASL_N
Definition:
hevc.h:36
HEVC_NAL_VCL_N12
Definition:
hevc.h:40
HEVC_NAL_STSA_R
Definition:
hevc.h:33
HEVC_MAX_LUMA_PS
Definition:
hevc.h:110
HEVC_MAX_SUB_LAYERS
Definition:
hevc.h:81
HEVC_NAL_RSV_VCL29
Definition:
hevc.h:57
HEVC_NAL_IRAP_VCL22
Definition:
hevc.h:50
HEVC_NAL_CRA_NUT
Definition:
hevc.h:49
HEVC_NAL_SPS
Definition:
hevc.h:61
HEVC_NAL_SEI_SUFFIX
Definition:
hevc.h:68
HEVC_NAL_VCL_N14
Definition:
hevc.h:42
HEVC_NAL_RSV_VCL31
Definition:
hevc.h:59
HEVC_MAX_REFS
Definition:
hevc.h:95
HEVC_MAX_LONG_TERM_REF_PICS
Definition:
hevc.h:100
HEVC_NAL_EOB_NUT
Definition:
hevc.h:65
HEVC_NAL_RADL_N
Definition:
hevc.h:34
HEVC_SLICE_P
Definition:
hevc.h:73
HEVC_NAL_TRAIL_N
Definition:
hevc.h:28
HEVC_NAL_VCL_R13
Definition:
hevc.h:41
HEVC_NAL_VPS
Definition:
hevc.h:60
HEVC_MAX_VPS_COUNT
Definition:
hevc.h:86
HEVC_NAL_TRAIL_R
Definition:
hevc.h:29
HEVC_NAL_STSA_N
Definition:
hevc.h:32
HEVC_MAX_ENTRY_POINT_OFFSETS
Definition:
hevc.h:129
HEVC_MIN_LOG2_CTB_SIZE
Definition:
hevc.h:103
HEVC_NAL_VCL_R15
Definition:
hevc.h:43
HEVC_MAX_TILE_ROWS
Definition:
hevc.h:118
HEVCSliceType
HEVCSliceType
Definition:
hevc.h:71
HEVC_NAL_VCL_N10
Definition:
hevc.h:38
HEVC_MAX_LOG2_CTB_SIZE
Definition:
hevc.h:104
HEVC_NAL_BLA_W_RADL
Definition:
hevc.h:45
HEVC_NAL_RSV_VCL28
Definition:
hevc.h:56
HEVC_MAX_CPB_CNT
Definition:
hevc.h:107
HEVC_MAX_PPS_COUNT
Definition:
hevc.h:90
HEVC_NAL_PPS
Definition:
hevc.h:62
HEVC_NAL_RASL_R
Definition:
hevc.h:37
HEVC_SLICE_B
Definition:
hevc.h:72
HEVC_NAL_FD_NUT
Definition:
hevc.h:66
HEVC_NAL_RADL_R
Definition:
hevc.h:35
HEVC_NAL_RSV_VCL24
Definition:
hevc.h:52
HEVC_NAL_TSA_R
Definition:
hevc.h:31
Generated on Sun May 13 2018 02:03:47 for FFmpeg by
1.8.6