FFmpeg
av1_levels.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2023 Intel Corporation
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_AV1_LEVELS_H
22 #define AVCODEC_AV1_LEVELS_H
23 
24 #include <stdint.h>
25 
26 typedef struct AV1LevelDescriptor {
27  char name[4];
28  uint8_t level_idx;
29 
30  uint32_t max_pic_size;
31  uint32_t max_h_size;
32  uint32_t max_v_size;
33  uint64_t max_display_rate;
34  uint64_t max_decode_rate;
35 
36  uint32_t max_header_rate;
37  float main_mbps;
38  float high_mbps;
39  uint32_t main_cr;
40  uint32_t high_cr;
41  uint32_t max_tiles;
42  uint32_t max_tile_cols;
44 
45 /**
46  * Guess the level of a stream from some parameters.
47  *
48  * Unknown parameters may be zero, in which case they will be ignored.
49  */
51  int tier,
52  int width,
53  int height,
54  int tile_rows,
55  int tile_cols,
56  float fps);
57 
58 #endif /* AVCODEC_AV1_LEVELS_H */
AV1LevelDescriptor::max_tiles
uint32_t max_tiles
Definition: av1_levels.h:41
int64_t
long long int64_t
Definition: coverity.c:34
AV1LevelDescriptor::main_cr
uint32_t main_cr
Definition: av1_levels.h:39
AV1LevelDescriptor::max_pic_size
uint32_t max_pic_size
Definition: av1_levels.h:30
AV1LevelDescriptor::max_display_rate
uint64_t max_display_rate
Definition: av1_levels.h:33
AV1LevelDescriptor::max_tile_cols
uint32_t max_tile_cols
Definition: av1_levels.h:42
AV1LevelDescriptor::max_decode_rate
uint64_t max_decode_rate
Definition: av1_levels.h:34
bitrate
int64_t bitrate
Definition: av1_levels.c:47
tile_rows
int tile_rows
Definition: h265_levels.c:217
tile_cols
int tile_cols
Definition: av1_levels.c:73
tier
int tier
Definition: av1_levels.c:48
AV1LevelDescriptor::high_mbps
float high_mbps
Definition: av1_levels.h:38
AV1LevelDescriptor::name
char name[4]
Definition: av1_levels.h:27
AV1LevelDescriptor::high_cr
uint32_t high_cr
Definition: av1_levels.h:40
height
#define height
Definition: dsp.h:85
AV1LevelDescriptor
Definition: av1_levels.h:26
AV1LevelDescriptor::max_h_size
uint32_t max_h_size
Definition: av1_levels.h:31
AV1LevelDescriptor::main_mbps
float main_mbps
Definition: av1_levels.h:37
AV1LevelDescriptor::max_header_rate
uint32_t max_header_rate
Definition: av1_levels.h:36
AV1LevelDescriptor::max_v_size
uint32_t max_v_size
Definition: av1_levels.h:32
width
#define width
Definition: dsp.h:85
ff_av1_guess_level
const AV1LevelDescriptor * ff_av1_guess_level(int64_t bitrate, int tier, int width, int height, int tile_rows, int tile_cols, float fps)
Guess the level of a stream from some parameters.
Definition: av1_levels.c:48
AV1LevelDescriptor::level_idx
uint8_t level_idx
Definition: av1_levels.h:28