summaryrefslogtreecommitdiff
path: root/libavcodec/hevc_ps.h
diff options
context:
space:
mode:
authorLynne <dev@lynne.ee>2022-12-07 01:29:57 +0100
committerLynne <dev@lynne.ee>2023-05-29 00:41:31 +0200
commitfc429d785e9e24c5520ce716d4bc3b5547e581eb (patch)
tree42e7eaa9880cafac78f775da9f8ffc827052cb66 /libavcodec/hevc_ps.h
parent20de09a6de79da0adc7b539e205878c34913b323 (diff)
hevc_ps: expose SPS and VPS headers
Diffstat (limited to 'libavcodec/hevc_ps.h')
-rw-r--r--libavcodec/hevc_ps.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/libavcodec/hevc_ps.h b/libavcodec/hevc_ps.h
index 2124deb953..0124f5d37f 100644
--- a/libavcodec/hevc_ps.h
+++ b/libavcodec/hevc_ps.h
@@ -32,6 +32,43 @@
#include "h2645_vui.h"
#include "hevc.h"
+typedef struct HEVCSublayerHdrParams {
+ uint32_t bit_rate_value_minus1[HEVC_MAX_CPB_CNT];
+ uint32_t cpb_size_value_minus1[HEVC_MAX_CPB_CNT];
+ uint32_t cpb_size_du_value_minus1[HEVC_MAX_CPB_CNT];
+ uint32_t bit_rate_du_value_minus1[HEVC_MAX_CPB_CNT];
+ uint32_t cbr_flag;
+} HEVCSublayerHdrParams;
+
+typedef struct HEVCHdrFlagParams {
+ uint32_t nal_hrd_parameters_present_flag;
+ uint32_t vcl_hrd_parameters_present_flag;
+ uint32_t sub_pic_hrd_params_present_flag;
+ uint32_t sub_pic_cpb_params_in_pic_timing_sei_flag;
+ uint32_t fixed_pic_rate_general_flag;
+ uint32_t fixed_pic_rate_within_cvs_flag;
+ uint32_t low_delay_hrd_flag;
+} HEVCHdrFlagParams;
+
+typedef struct HEVCHdrParams {
+ HEVCHdrFlagParams flags;
+
+ uint8_t tick_divisor_minus2;
+ uint8_t du_cpb_removal_delay_increment_length_minus1;
+ uint8_t dpb_output_delay_du_length_minus1;
+ uint8_t bit_rate_scale;
+ uint8_t cpb_size_scale;
+ uint8_t cpb_size_du_scale;
+ uint8_t initial_cpb_removal_delay_length_minus1;
+ uint8_t au_cpb_removal_delay_length_minus1;
+ uint8_t dpb_output_delay_length_minus1;
+ uint8_t cpb_cnt_minus1[HEVC_MAX_SUB_LAYERS];
+ uint16_t elemental_duration_in_tc_minus1[HEVC_MAX_SUB_LAYERS];
+
+ HEVCSublayerHdrParams nal_params[HEVC_MAX_SUB_LAYERS];
+ HEVCSublayerHdrParams vcl_params[HEVC_MAX_SUB_LAYERS];
+} HEVCHdrParams;
+
typedef struct ShortTermRPS {
unsigned int num_negative_pics;
int num_delta_pocs;
@@ -108,6 +145,8 @@ typedef struct PTL {
} PTL;
typedef struct HEVCVPS {
+ HEVCHdrParams hdr[HEVC_MAX_LAYER_SETS];
+
uint8_t vps_temporal_id_nesting_flag;
int vps_max_layers;
int vps_max_sub_layers; ///< vps_max_temporal_layers_minus1 + 1
@@ -146,6 +185,8 @@ typedef struct HEVCSPS {
HEVCWindow pic_conf_win;
+ HEVCHdrParams hdr;
+
int bit_depth;
int bit_depth_chroma;
int pixel_shift;