#ifndef AOM_AV1_ENCODER_LEVEL_H_
#define AOM_AV1_ENCODER_LEVEL_H_
#include "av1/common/enums.h"
struct AV1_COMP;
AV1LevelSpec;
FrameRecord;
#define FRAME_WINDOW_SIZE …
FrameWindowBuffer;
AV1LevelStats;
FRAME_BUFFER;
DFG_INTERVAL;
#define DFG_INTERVAL_QUEUE_SIZE …
DFG_INTERVAL_QUEUE;
enum { … } UENUM1BYTE(…) …;
enum { … } UENUM1BYTE(…) …;
#define BUFFER_POOL_MAX_SIZE …
DECODER_MODEL;
AV1LevelInfo;
AV1LevelParams;
static inline int is_in_operating_point(int operating_point,
int temporal_layer_id,
int spatial_layer_id) { … }
void av1_init_level_info(struct AV1_COMP *cpi);
void av1_update_level_info(struct AV1_COMP *cpi, size_t size, int64_t ts_start,
int64_t ts_end);
aom_codec_err_t av1_get_seq_level_idx(const SequenceHeader *seq_params,
const AV1LevelParams *level_params,
int *seq_level_idx);
aom_codec_err_t av1_get_target_seq_level_idx(const SequenceHeader *seq_params,
const AV1LevelParams *level_params,
int *target_seq_level_idx);
DECODER_MODEL_STATUS av1_decoder_model_try_smooth_buf(
const struct AV1_COMP *const cpi, size_t coded_bits,
const DECODER_MODEL *const decoder_model);
double av1_get_max_bitrate_for_level(AV1_LEVEL level_index, int tier,
BITSTREAM_PROFILE profile);
void av1_get_max_tiles_for_level(AV1_LEVEL level_index, int *const max_tiles,
int *const max_tile_cols);
double av1_get_min_cr_for_level(AV1_LEVEL level_index, int tier,
int is_still_picture);
#endif