diff --git a/src/config.h b/src/config.h index e09fad17..615a43cf 100644 --- a/src/config.h +++ b/src/config.h @@ -28,6 +28,14 @@ #include "global.h" +typedef struct { + double qp_factor; + int8_t qp_offset; /*!< \brief QP offset */ + int8_t poc_offset; /*!< \brief POC offset */ + int8_t layer; /*!< \brief Current layer */ + int8_t is_ref; /*!< \brief Flag if this picture is used as a reference */ +} gop_config; + /*! \brief Struct which contains all configuration data */ @@ -88,6 +96,9 @@ typedef struct int32_t min; int32_t max; } pu_depth_inter, pu_depth_intra; + + int8_t gop_len; /*!< \brief length of GOP for the video sequence */ + gop_config gop[MAX_GOP]; /*!< \brief Array of GOP settings */ } config; /* Function definitions */ diff --git a/src/encoderstate.h b/src/encoderstate.h index 11273ceb..d14befc3 100644 --- a/src/encoderstate.h +++ b/src/encoderstate.h @@ -66,6 +66,7 @@ typedef struct { int32_t poc; /*!< \brief picture order count */ int8_t QP; //!< \brief Quantization parameter + double QP_factor; //!< \brief Quantization factor //Current picture available references image_list *ref; diff --git a/src/global.h b/src/global.h index 0ff5a1f0..f20bc525 100644 --- a/src/global.h +++ b/src/global.h @@ -66,6 +66,9 @@ typedef int16_t coefficient; #define PU_DEPTH_INTRA_MIN 0 #define PU_DEPTH_INTRA_MAX 4 +// Maximum length of GoP (for allocating structures) +#define MAX_GOP 32 + // Maximum CU depth when descending form LCU level. #define MAX_DEPTH 3 /*!< spec: log2_diff_max_min_luma_coding_block_size */ // Minimum log2 size of CUs.