FFmpeg
libavcodec
h265_profile_level.h
Go to the documentation of this file.
1
/*
2
* This file is part of FFmpeg.
3
*
4
* FFmpeg is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* FFmpeg is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with FFmpeg; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
19
#ifndef AVCODEC_H265_PROFILE_LEVEL_H
20
#define AVCODEC_H265_PROFILE_LEVEL_H
21
22
#include <stdint.h>
23
24
#include "
cbs_h265.h
"
25
26
27
typedef
struct
H265LevelDescriptor
{
28
char
name
[4];
// Large enough for all current levels like "4.1"
29
uint8_t
level_idc
;
30
31
// Table A.6.
32
uint32_t
max_luma_ps
;
33
uint32_t
max_cpb_main
;
34
uint32_t
max_cpb_high
;
35
uint16_t
max_slice_segments_per_picture
;
36
uint8_t
max_tile_rows
;
37
uint8_t
max_tile_cols
;
38
39
// Table A.7.
40
uint32_t
max_luma_sr
;
41
uint32_t
max_br_main
;
42
uint32_t
max_br_high
;
43
uint8_t
min_cr_base_main
;
44
uint8_t
min_cr_base_high
;
45
}
H265LevelDescriptor
;
46
47
typedef
struct
H265ProfileDescriptor
{
48
const
char
*
name
;
49
uint8_t
profile_idc
;
50
uint8_t
high_throughput
;
51
52
// Tables A.2, A.3 and A.5.
53
uint8_t
max_14bit
;
54
uint8_t
max_12bit
;
55
uint8_t
max_10bit
;
56
uint8_t
max_8bit
;
57
uint8_t
max_422chroma
;
58
uint8_t
max_420chroma
;
59
uint8_t
max_monochrome
;
60
uint8_t
intra
;
61
uint8_t
one_picture_only
;
62
uint8_t
lower_bit_rate
;
63
64
// Table A.8.
65
uint16_t
cpb_vcl_factor
;
66
uint16_t
cpb_nal_factor
;
67
float
format_capability_factor
;
68
float
min_cr_scale_factor
;
69
uint8_t
max_dpb_pic_buf
;
70
}
H265ProfileDescriptor
;
71
72
73
const
H265ProfileDescriptor
*
ff_h265_get_profile
(
const
H265RawProfileTierLevel
*
ptl
);
74
75
76
/**
77
* Guess the level of a stream from some parameters.
78
*
79
* Unknown parameters may be zero, in which case they are ignored.
80
*/
81
const
H265LevelDescriptor
*
ff_h265_guess_level
(
const
H265RawProfileTierLevel
*
ptl
,
82
int64_t
bitrate
,
83
int
width
,
int
height
,
84
int
slice_segments
,
85
int
tile_rows
,
int
tile_cols
,
86
int
max_dec_pic_buffering);
87
88
#endif
/* AVCODEC_H265_PROFILE_LEVEL_H */
H265LevelDescriptor::max_cpb_main
uint32_t max_cpb_main
Definition:
h265_profile_level.h:33
H265ProfileDescriptor::max_8bit
uint8_t max_8bit
Definition:
h265_profile_level.h:56
H265ProfileDescriptor::max_10bit
uint8_t max_10bit
Definition:
h265_profile_level.h:55
H265LevelDescriptor::max_br_high
uint32_t max_br_high
Definition:
h265_profile_level.h:42
H265ProfileDescriptor::high_throughput
uint8_t high_throughput
Definition:
h265_profile_level.h:50
H265LevelDescriptor::max_slice_segments_per_picture
uint16_t max_slice_segments_per_picture
Definition:
h265_profile_level.h:35
H265LevelDescriptor::max_cpb_high
uint32_t max_cpb_high
Definition:
h265_profile_level.h:34
H265ProfileDescriptor::cpb_nal_factor
uint16_t cpb_nal_factor
Definition:
h265_profile_level.h:66
cbs_h265.h
H265ProfileDescriptor
Definition:
h265_profile_level.h:47
H265LevelDescriptor
Definition:
h265_profile_level.h:27
H265ProfileDescriptor::max_12bit
uint8_t max_12bit
Definition:
h265_profile_level.h:54
ptl
const H265RawProfileTierLevel * ptl
Definition:
h265_levels.c:170
width
#define width
H265LevelDescriptor::max_tile_rows
uint8_t max_tile_rows
Definition:
h265_profile_level.h:36
H265LevelDescriptor::min_cr_base_main
uint8_t min_cr_base_main
Definition:
h265_profile_level.h:43
bitrate
int64_t bitrate
Definition:
av1_levels.c:47
H265ProfileDescriptor::max_monochrome
uint8_t max_monochrome
Definition:
h265_profile_level.h:59
tile_rows
int tile_rows
Definition:
h265_levels.c:217
tile_cols
int tile_cols
Definition:
av1_levels.c:73
H265ProfileDescriptor::format_capability_factor
float format_capability_factor
Definition:
h265_profile_level.h:67
H265LevelDescriptor::name
char name[4]
Definition:
h265_profile_level.h:28
H265LevelDescriptor::level_idc
uint8_t level_idc
Definition:
h265_profile_level.h:29
H265ProfileDescriptor::one_picture_only
uint8_t one_picture_only
Definition:
h265_profile_level.h:61
H265LevelDescriptor::max_luma_sr
uint32_t max_luma_sr
Definition:
h265_profile_level.h:40
height
#define height
H265ProfileDescriptor::name
const char * name
Definition:
h265_profile_level.h:48
slice_segments
int slice_segments
Definition:
h265_levels.c:216
H265LevelDescriptor::max_luma_ps
uint32_t max_luma_ps
Definition:
h265_profile_level.h:32
H265ProfileDescriptor::max_dpb_pic_buf
uint8_t max_dpb_pic_buf
Definition:
h265_profile_level.h:69
ff_h265_get_profile
const H265ProfileDescriptor * ff_h265_get_profile(const H265RawProfileTierLevel *ptl)
Definition:
h265_profile_level.c:123
H265ProfileDescriptor::cpb_vcl_factor
uint16_t cpb_vcl_factor
Definition:
h265_profile_level.h:65
H265ProfileDescriptor::profile_idc
uint8_t profile_idc
Definition:
h265_profile_level.h:49
H265ProfileDescriptor::max_422chroma
uint8_t max_422chroma
Definition:
h265_profile_level.h:57
H265RawProfileTierLevel
Definition:
cbs_h265.h:35
ff_h265_guess_level
const H265LevelDescriptor * ff_h265_guess_level(const H265RawProfileTierLevel *ptl, int64_t bitrate, int width, int height, int slice_segments, int tile_rows, int tile_cols, int max_dec_pic_buffering)
Guess the level of a stream from some parameters.
Definition:
h265_profile_level.c:162
H265LevelDescriptor::min_cr_base_high
uint8_t min_cr_base_high
Definition:
h265_profile_level.h:44
H265ProfileDescriptor::max_420chroma
uint8_t max_420chroma
Definition:
h265_profile_level.h:58
H265ProfileDescriptor::lower_bit_rate
uint8_t lower_bit_rate
Definition:
h265_profile_level.h:62
H265LevelDescriptor::max_tile_cols
uint8_t max_tile_cols
Definition:
h265_profile_level.h:37
H265LevelDescriptor::max_br_main
uint32_t max_br_main
Definition:
h265_profile_level.h:41
H265ProfileDescriptor::intra
uint8_t intra
Definition:
h265_profile_level.h:60
H265ProfileDescriptor::min_cr_scale_factor
float min_cr_scale_factor
Definition:
h265_profile_level.h:68
H265ProfileDescriptor::max_14bit
uint8_t max_14bit
Definition:
h265_profile_level.h:53
Generated on Thu Apr 18 2024 22:41:50 for FFmpeg by
1.8.17