Home | History | Annotate | Download | only in common
      1 /*
      2  * Copyright (c) 2016, Alliance for Open Media. All rights reserved
      3  *
      4  * This source code is subject to the terms of the BSD 2 Clause License and
      5  * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
      6  * was not distributed with this source code in the LICENSE file, you can
      7  * obtain it at www.aomedia.org/license/software. If the Alliance for Open
      8  * Media Patent License 1.0 was not distributed with this source code in the
      9  * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
     10  */
     11 
     12 #ifndef AOM_AV1_COMMON_TIMING_H_
     13 #define AOM_AV1_COMMON_TIMING_H_
     14 
     15 #include "aom/aom_integer.h"
     16 #include "av1/common/enums.h"
     17 
     18 #define MAX_NUM_OP_POINTS 32
     19 
     20 typedef struct aom_timing {
     21   uint32_t num_units_in_display_tick;
     22   uint32_t time_scale;
     23   int equal_picture_interval;
     24   uint32_t num_ticks_per_picture;
     25 } aom_timing_info_t;
     26 
     27 typedef struct aom_dec_model_info {
     28   uint32_t num_units_in_decoding_tick;
     29   int encoder_decoder_buffer_delay_length;
     30   int buffer_removal_time_length;
     31   int frame_presentation_time_length;
     32 } aom_dec_model_info_t;
     33 
     34 typedef struct aom_dec_model_op_parameters {
     35   int decoder_model_param_present_flag;
     36   int64_t bitrate;
     37   int64_t buffer_size;
     38   uint32_t decoder_buffer_delay;
     39   uint32_t encoder_buffer_delay;
     40   int low_delay_mode_flag;
     41   int display_model_param_present_flag;
     42   int initial_display_delay;
     43 } aom_dec_model_op_parameters_t;
     44 
     45 typedef struct aom_op_timing_info_t {
     46   uint32_t buffer_removal_time;
     47 } aom_op_timing_info_t;
     48 
     49 void set_aom_dec_model_info(aom_dec_model_info_t *decoder_model);
     50 
     51 void set_dec_model_op_parameters(aom_dec_model_op_parameters_t *op_params);
     52 
     53 void set_resource_availability_parameters(
     54     aom_dec_model_op_parameters_t *op_params);
     55 
     56 int64_t max_level_bitrate(BITSTREAM_PROFILE seq_profile, int seq_level_idx,
     57                           int seq_tier);
     58 
     59 #endif  // AOM_AV1_COMMON_TIMING_H_
     60