summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorHarish Mahendrakar <harish.mahendrakar@ittiam.com>2015-08-05 14:47:11 +0530
committerMarco Nelissen <marcone@google.com>2015-10-09 11:44:26 -0700
commit03ca7981bfdeff6f3f8d852f8059adef680729da (patch)
treedaa6f1ebe7eec05f5495302c2b6b655f8d4341d6 /common
parent6267c11c733b1d96ef75ac4b2854c86c7478d8a0 (diff)
downloadandroid_external_libhevc-03ca7981bfdeff6f3f8d852f8059adef680729da.tar.gz
android_external_libhevc-03ca7981bfdeff6f3f8d852f8059adef680729da.tar.bz2
android_external_libhevc-03ca7981bfdeff6f3f8d852f8059adef680729da.zip
Added SEI structures and reordered ihevc_structs.h contents
Added asserts in buffer manager Added few definitions for SEI messages Change-Id: Ieb6dba04303e433e93f79360c064d96f21b1058f
Diffstat (limited to 'common')
-rw-r--r--common/ihevc_buf_mgr.c8
-rw-r--r--common/ihevc_chroma_itrans_recon.h5
-rw-r--r--common/ihevc_defs.h14
-rw-r--r--common/ihevc_func_types.h2
-rw-r--r--common/ihevc_structs.h1569
5 files changed, 906 insertions, 692 deletions
diff --git a/common/ihevc_buf_mgr.c b/common/ihevc_buf_mgr.c
index b6e4f2a..93340ff 100644
--- a/common/ihevc_buf_mgr.c
+++ b/common/ihevc_buf_mgr.c
@@ -43,10 +43,12 @@
*******************************************************************************
*/
#include <stdlib.h>
+#include <assert.h>
#include "ihevc_typedefs.h"
#include "ihevc_macros.h"
#include "ihevc_func_selector.h"
#include "ihevc_buf_mgr.h"
+#include "ihevc_debug.h"
/**
@@ -165,6 +167,8 @@ void* ihevc_buf_mgr_get_next_free(
pv_ret_ptr = NULL;
for(id = 0; id < (WORD32)ps_buf_mgr->u4_max_buf_cnt; id++)
{
+ ASSERT(ps_buf_mgr->au4_status[id] != 2);
+
/* Check if the buffer is non-null and status is zero */
if((ps_buf_mgr->au4_status[id] == 0) && (ps_buf_mgr->apv_ptr[id]))
{
@@ -206,6 +210,8 @@ WORD32 ihevc_buf_mgr_check_free(
for(id = 0; id < ps_buf_mgr->u4_max_buf_cnt; id++)
{
+ ASSERT(ps_buf_mgr->au4_status[id] != 2);
+
if((ps_buf_mgr->au4_status[id] == 0) &&
(ps_buf_mgr->apv_ptr[id]))
{
@@ -256,6 +262,7 @@ WORD32 ihevc_buf_mgr_release(
}
ps_buf_mgr->au4_status[buf_id] &= ~mask;
+ ASSERT(ps_buf_mgr->au4_status[buf_id] != 2);
/* If both the REF and DISP are zero, DEC is set to zero */
if(ps_buf_mgr->au4_status[buf_id] == 1)
@@ -312,6 +319,7 @@ WORD32 ihevc_buf_mgr_set_status(
}
ps_buf_mgr->au4_status[buf_id] |= mask;
+ ASSERT(ps_buf_mgr->au4_status[buf_id] != 2);
return 0;
}
diff --git a/common/ihevc_chroma_itrans_recon.h b/common/ihevc_chroma_itrans_recon.h
index c20cebf..7d4958b 100644
--- a/common/ihevc_chroma_itrans_recon.h
+++ b/common/ihevc_chroma_itrans_recon.h
@@ -102,6 +102,11 @@ ihevc_hbd_chroma_itrans_recon_8x8_ft ihevc_hbd_chroma_itrans_recon_8x8;
ihevc_chroma_itrans_recon_16x16_ft ihevc_chroma_itrans_recon_16x16;
ihevc_hbd_chroma_itrans_recon_16x16_ft ihevc_hbd_chroma_itrans_recon_16x16;
+/* A9 Q Function Declarations */
+ihevc_chroma_itrans_recon_4x4_ft ihevc_chroma_itrans_recon_4x4_a9q;
+ihevc_chroma_itrans_recon_8x8_ft ihevc_chroma_itrans_recon_8x8_a9q;
+ihevc_chroma_itrans_recon_16x16_ft ihevc_chroma_itrans_recon_16x16_a9q;
+
ihevc_hbd_chroma_itrans_recon_4x4_ft ihevc_hbd_chroma_itrans_recon_4x4_sse42;
ihevc_hbd_chroma_itrans_recon_8x8_ft ihevc_hbd_chroma_itrans_recon_8x8_sse42;
ihevc_hbd_chroma_itrans_recon_16x16_ft ihevc_hbd_chroma_itrans_recon_16x16_sse42;
diff --git a/common/ihevc_defs.h b/common/ihevc_defs.h
index 7f58121..c2906e7 100644
--- a/common/ihevc_defs.h
+++ b/common/ihevc_defs.h
@@ -210,6 +210,16 @@ enum
VID_FMT_UNSPECIFIED
};
+typedef enum {
+ USER_DATA_BAR_DATA = 0,
+ USER_DATA_CC_DATA = 1,
+ USER_DATA_AFD_DATA = 2,
+
+ // do not add anything below
+ USER_DATA_MAX
+} USER_DATA_SEI_TYPE_T;
+
+
#define BIT_DEPTH 8
#define BIT_DEPTH_LUMA BIT_DEPTH
#define BIT_DEPTH_CHROMA BIT_DEPTH
@@ -455,5 +465,9 @@ enum
#define INTRA_PRED_CHROMA_IDX_NONE 7
+#define MAX_NUM_CLOCK_TS 3
+#define MAX_USERDATA_PAYLOAD 256
+
+#define MAX_CPB_CNT 32
#endif /*__IHEVC_DEFS_H_*/
diff --git a/common/ihevc_func_types.h b/common/ihevc_func_types.h
index f5a2c44..74de30e 100644
--- a/common/ihevc_func_types.h
+++ b/common/ihevc_func_types.h
@@ -45,7 +45,7 @@
#define CXAINTR 10
/* Neon intrinsics */
-#define NEONINTR 0
+#define NEONINTR 11
/* X86 intrinsics */
#define X86INTR 12
diff --git a/common/ihevc_structs.h b/common/ihevc_structs.h
index 26c1a39..93d2ad4 100644
--- a/common/ihevc_structs.h
+++ b/common/ihevc_structs.h
@@ -38,6 +38,870 @@
#ifndef _IHEVC_STRUCTS_H_
#define _IHEVC_STRUCTS_H_
+
+/**
+ * Buffering Period SEI parameters Info
+ */
+typedef struct
+{
+ /**
+ * specifies SPS Id active for the coded picture assosiated
+ * with the bp message.
+ */
+ UWORD8 u1_bp_seq_parameter_set_id;
+
+ /**
+ * Derived from Hrd parameters
+ */
+ UWORD8 u1_sub_pic_cpb_params_present_flag;
+
+ /**
+ * specifies the presence of the initial_alt_cpb_removal_delay[ i ]
+ * and initial_alt_cpb_removal_offset[ i ] syntax elements
+ */
+ UWORD8 u1_rap_cpb_params_present_flag;
+
+ /**
+ * cbp removal delay used in buffering period SEI
+ */
+ UWORD32 u4_cpb_delay_offset;
+
+ /**
+ * dbp removal delay used in buffering period SEI
+ */
+ UWORD32 u4_dpb_delay_offset;
+
+ /**
+ * concatanation flag
+ */
+ UWORD8 u1_concatenation_flag;
+
+ /**
+ * delata cbp removal delay
+ */
+ UWORD32 u4_au_cpb_removal_delay_delta_minus1;
+
+ /**
+ * specify the default initial CPB removal delays, respectively,
+ * for the CPB when the NAL HRD parameters are in use
+ */
+ UWORD32 au4_nal_initial_cpb_removal_delay[MAX_CPB_CNT];
+
+ /**
+ * specify the alternate initial CPB removal delays, respectively,
+ * for the CPB when the NAL HRD parameters are in use
+ */
+ UWORD32 au4_nal_initial_alt_cpb_removal_delay[MAX_CPB_CNT];
+
+ /**
+ * specify the initial CPB removal delay offset, respectively,
+ * for the CPB when the NAL HRD parameters are in use
+ */
+ UWORD32 au4_nal_initial_cpb_removal_delay_offset[MAX_CPB_CNT];
+
+ /**
+ * specify the alternate initial CPB removal delays offsets, respectively,
+ * for the CPB when the NAL HRD parameters are in use
+ */
+ UWORD32 au4_nal_initial_alt_cpb_removal_delay_offset[MAX_CPB_CNT];
+
+ /**
+ * specify the default initial CPB removal delays, respectively,
+ * for the CPB when the VCL HRD parameters are in use
+ */
+ UWORD32 au4_vcl_initial_cpb_removal_delay[MAX_CPB_CNT];
+
+ /**
+ * specify the initial alt CPB removal delays , respectively,
+ * for the CPB when the VCL HRD parameters are in use
+ */
+ UWORD32 au4_vcl_initial_alt_cpb_removal_delay[MAX_CPB_CNT];
+
+ /**
+ * specify the initial CPB removal delay offset, respectively,
+ * for the CPB when the VCL HRD parameters are in use
+ */
+ UWORD32 au4_vcl_initial_cpb_removal_delay_offset[MAX_CPB_CNT];
+
+ /**
+ * specify the alternate initial CPB removal delays offsets, respectively,
+ * for the CPB when the VCL HRD parameters are in use
+ */
+ UWORD32 au4_vcl_initial_alt_cpb_removal_delay_offset[MAX_CPB_CNT];
+
+ /**
+ * Inital CPB removal delay
+ */
+ UWORD32 u4_initial_cpb_removal_delay_length;
+
+ /**
+ * CPB cnt for corr. sublayer
+ */
+ UWORD32 u4_cpb_cnt;
+
+
+ /**
+ * VBV buffer size used in buffering period SEI
+ */
+ UWORD32 u4_buffer_size_sei;
+
+ /**
+ * Encoder buffer fullness used in buffering period SEI
+ */
+ UWORD32 u4_dbf_sei;
+
+ /**
+ * target bitrate used in buffering period SEI
+ */
+ UWORD32 u4_target_bit_rate_sei;
+
+}buf_period_sei_params_t;
+
+
+/**
+ * Picture Timing SEI parameters Info
+ */
+typedef struct
+{
+ /**
+ * derived from vui parameters
+ */
+ UWORD8 u1_frame_field_info_present_flag;
+
+ /**
+ * indicates whether a picture should be displayed as a
+ * frame or as one or more fields
+ */
+ UWORD32 u4_pic_struct;
+
+ UWORD32 u4_source_scan_type;
+
+ /**
+ * if 1, indicates if the current pic is a duplicte pic in output order
+ */
+ UWORD8 u1_duplicate_flag;
+
+ /**
+ * specifies the number clock ticks between the nominal CPB removal time
+ * au associated with the pt SEI message and
+ * the preceding au in decoding order that contained a bp SEI message
+ */
+ UWORD32 u4_au_cpb_removal_delay_minus1;
+
+ /**
+ * compute the DPB output time of the picture
+ */
+ UWORD32 u4_pic_dpb_output_delay;
+
+ UWORD32 u4_pic_dpb_output_du_delay;
+
+ /**
+ * specifies the number of decoding units in the access unit
+ * the picture timing SEI message is associated with
+ */
+ UWORD32 u4_num_decoding_units_minus1;
+
+ /**
+ * if 1 specifies that the du_common_cpb_removal_delay_increment_minus1 is present
+ */
+ UWORD8 u1_du_common_cpb_removal_delay_flag;
+
+ /**
+ * specifies the duration, in units of clock sub-ticks,
+ * between the nominal CPB removal times of any two consecutive decoding units
+ * in decoding order in the access unit associated with the pt_SEI message
+ */
+ UWORD32 u4_du_common_cpb_removal_delay_increment_minus1; //same as u4_du_cpb_removal_delay_increment_minus1
+
+ /**
+ * specifies the number of NAL units in the decoding unit of the access unit
+ * the picture timing SEI message is associated with.
+ * range from 0 to (pic size in ctby - 1)
+ */
+ UWORD32 au4_num_nalus_in_du_minus1[4320 / MIN_CTB_SIZE];
+
+ /**
+ * specifies the duration, in units of clock sub-ticks,
+ * between the nominal CPB removal times of the ( i + 1 )-th decoding unit and the i-th decoding unit,
+ * in decoding order, in the access unit associated with the pt_SEI message
+ */
+ UWORD32 au4_du_cpb_removal_delay_increment_minus1[4320 / MIN_CTB_SIZE];
+
+}pic_timing_sei_params_t;
+
+/**
+ * Structure to hold Recovery point SEI parameters Info
+ */
+typedef struct
+{
+ /**
+ * specifies the recovery point of output pictures in output order
+ */
+ WORD32 i4_recovery_poc_cnt;
+
+ UWORD8 u1_exact_match_flag;
+
+ /**
+ * indicates the presence or absence of a broken link in the NAL unit
+ * stream at the location of the recovery point SEI message
+ */
+
+ UWORD8 u1_broken_link_flag;
+
+}recovery_point_sei_params_t;
+
+/**
+ * Structure to hold Mastering Display Colour Volume SEI
+ */
+typedef struct
+{
+ /**
+ * Array to store the display_primaries_x values
+ */
+ UWORD16 au2_display_primaries_x[3];
+
+ /**
+ * Array to store the display_primaries_y values
+ */
+ UWORD16 au2_display_primaries_y[3];
+
+ /**
+ * Variable to store the white point x value
+ */
+ UWORD16 u2_white_point_x;
+
+ /**
+ * Variable to store the white point y value
+ */
+ UWORD16 u2_white_point_y;
+
+ /**
+ * Variable to store the max display mastering luminance value
+ */
+ UWORD32 u4_max_display_mastering_luminance;
+
+ /**
+ * Variable to store the min display mastering luminance value
+ */
+ UWORD32 u4_min_display_mastering_luminance;
+
+}mastering_dis_col_vol_sei_params_t;
+
+/**
+ * Structure to hold active parameter parameter set SEI parameters Info
+ */
+typedef struct
+{
+ /*
+ * active vps id
+ */
+
+ UWORD8 u1_active_video_parameter_set_id;
+
+ /*
+ * default set to zero.
+ */
+ UWORD8 u1_self_contained_cvs_flag;
+
+ UWORD8 u1_no_parameter_set_update_flag;
+
+ UWORD8 u1_num_sps_ids_minus1;
+
+ /*
+ * active sps id
+ */
+ UWORD8 au1_active_seq_parameter_set_id[15];
+
+ UWORD32 au4_layer_sps_idx[64];
+
+}active_parameter_set_sei_param_t;
+
+/**
+ * Structure to hold SEI Hash values
+ */
+typedef struct
+{
+ /*
+ * SEI Hash values for each color component
+ */
+ UWORD8 au1_sei_hash[3][16];
+
+}hash_sei_param_t;
+
+/**
+ * Structure to hold user data registered SEI param Info
+ */
+typedef struct
+{
+ /**
+ * Contains country code by Annex A of Recommendation ITU-T T.35
+ */
+ UWORD8 u1_itu_t_t35_country_code;
+
+ /**
+ * Contains country code by Annex B of Recommendation ITU-T T.35
+ */
+ UWORD8 u1_itu_t_t35_country_code_extension_byte;
+
+ /**
+ * Contains data registered as specified in Recommendation ITU-T T.35
+ */
+ UWORD8 u1_itu_t_t35_payload_byte[MAX_USERDATA_PAYLOAD];
+
+ /**
+ * Valid payload size present in this buffer
+ */
+ WORD32 i4_valid_payload_size;
+
+ /**
+ * Total payload size incase payloadSize > IHEVCD_MAX_USERDATA_PAYLOAD
+ */
+ WORD32 i4_payload_size;
+}user_data_registered_itu_t_t35_t;
+
+/**
+ * Structure to hold time code SEI param info
+ */
+typedef struct
+{
+ /**
+ * Number of sets of clock timestamp syntax elements present for the current picture
+ */
+ UWORD8 u1_num_clock_ts;
+
+ /**
+ * Indicates presenc of associated set of clock timestamps
+ */
+ UWORD8 au1_clock_timestamp_flag[MAX_NUM_CLOCK_TS];
+
+ /**
+ * Used in calculating clockTimestamp[i]
+ */
+ UWORD8 au1_units_field_based_flag[MAX_NUM_CLOCK_TS];
+
+ /**
+ * Specifies the method of dropping values of the n_frames[i] syntax element
+ */
+ UWORD8 au1_counting_type[MAX_NUM_CLOCK_TS];
+
+ /**
+ * Specifies that the n_frames[i] syntax element is followed by seconds_value[i],
+ * minutes_value[i] and hours_value[i]
+ */
+ UWORD8 au1_full_timestamp_flag[MAX_NUM_CLOCK_TS];
+
+ /**
+ * Indicates the discontinuity in clockTimestamp
+ */
+ UWORD8 au1_discontinuity_flag[MAX_NUM_CLOCK_TS];
+
+ /**
+ * Specifies the skipping of one or more values of n_frames[i]
+ */
+ UWORD8 au1_cnt_dropped_flag[MAX_NUM_CLOCK_TS];
+
+ /**
+ * Specifies the value of nFrames used to compute clockTimestamp[i]
+ */
+ UWORD16 au2_n_frames[MAX_NUM_CLOCK_TS];
+
+ /**
+ * Specifies the presence of seconds_value[i] and minutes_flag[i]
+ */
+ UWORD8 au1_seconds_flag[MAX_NUM_CLOCK_TS];
+
+ /**
+ * Specifies the presence of minutes_value[i] and hours_flag[i]
+ */
+ UWORD8 au1_minutes_flag[MAX_NUM_CLOCK_TS];
+
+ /**
+ * Specifies the presence of hours_value[i]
+ */
+ UWORD8 au1_hours_flag[MAX_NUM_CLOCK_TS];
+
+ /**
+ * Specifies the value of sS used to compute clockTimestamp[i]
+ */
+ UWORD8 au1_seconds_value[MAX_NUM_CLOCK_TS];
+
+ /**
+ * Specifies the value of mM used to compute clockTimestamp[i]
+ */
+ UWORD8 au1_minutes_value[MAX_NUM_CLOCK_TS];
+
+ /**
+ * Specifies the value of hH used to compute clockTimestamp[i]
+ */
+ UWORD8 au1_hours_value[MAX_NUM_CLOCK_TS];
+
+ /**
+ * Specifies the length in bits of the time_offset_value[i]
+ */
+ UWORD8 au1_time_offset_length[MAX_NUM_CLOCK_TS];
+
+ /**
+ * pecifies the value of tOffset used to compute clockTimestamp[i]
+ */
+ UWORD8 au1_time_offset_value[MAX_NUM_CLOCK_TS];
+
+}time_code_t;
+
+
+/**
+ * Structure to hold SEI parameters Info
+ */
+typedef struct
+{
+
+ WORD8 i1_sei_parameters_present_flag;
+
+ WORD8 i1_aud_present_flag;
+
+ WORD8 i1_buf_period_params_present_flag;
+
+ WORD8 i1_pic_timing_params_present_flag;
+
+ WORD8 i1_recovery_point_params_present_flag;
+
+ WORD8 i1_active_parameter_set;
+
+ WORD8 i4_sei_mastering_disp_colour_vol_params_present_flags;
+
+ /* Enable/Disable SEI Hash on the Decoded picture & Hash type */
+ /* < 3 : Checksum, 2 : CRC, 1 : MD5, 0 : disable > */
+ /* Other values are not supported */
+ WORD8 i1_decoded_pic_hash_sei_flag;
+
+ /* number of user data e.g. CC data, BAR data, AFD data etc */
+ WORD32 i4_sei_user_data_cnt;
+
+ WORD8 i1_user_data_registered_present_flag;
+
+ WORD8 i1_time_code_present_flag;
+
+ buf_period_sei_params_t s_buf_period_sei_params;
+
+ pic_timing_sei_params_t s_pic_timing_sei_params;
+
+ recovery_point_sei_params_t s_recovery_point_params;
+
+ active_parameter_set_sei_param_t s_active_parameter_set_sei_params;
+
+ hash_sei_param_t s_hash_sei_params;
+
+ mastering_dis_col_vol_sei_params_t s_mastering_dis_col_vol_sei_params;
+
+ user_data_registered_itu_t_t35_t as_user_data_registered_itu_t_t35[USER_DATA_MAX];
+
+ time_code_t s_time_code;
+} sei_params_t;
+
+
+/**
+ * Sub-layer HRD parameters Info
+ */
+typedef struct
+{
+ /**
+ * (together with bit_rate_scale) specifies the
+ * maximum input bit rate for the i-th CPB
+ */
+ UWORD32 au4_bit_rate_value_minus1[MAX_CPB_CNT];
+ /**
+ * together with cpb_size_scale to specify the
+ * CPB size when the CPB operates at the access unit level.
+ */
+ UWORD32 au4_cpb_size_value_minus1[MAX_CPB_CNT];
+
+ /**
+ * together with cpb_size_du_scale to specify the CPB size
+ * when the CPB operates at sub-picture level
+ */
+ UWORD32 au4_cpb_size_du_value_minus1[MAX_CPB_CNT];
+
+ /**
+ * specifies the maximum input bit rate for the i-th CPB when the CPB
+ * operates at the sub-picture level. bit_rate_du_value_minus1[ i ]
+ * shall be in the range of 0 to 2^32 - 2
+ */
+ UWORD32 au4_bit_rate_du_value_minus1[MAX_CPB_CNT];
+
+ /**
+ * if 1, specifies that the HSS operates in a constant bit rate (CBR) mode
+ * if 0, specifies that the HSS operates in a intermittent bit rate (CBR) mode
+ */
+ UWORD8 au1_cbr_flag[32];
+
+}sub_lyr_hrd_params_t;
+
+/**
+ * HRD parameters Info
+ */
+typedef struct
+{
+ /**
+ * Indicates the presence of the
+ * num_units_in_ticks, time_scale flag
+ */
+ UWORD8 u1_timing_info_present_flag;
+
+ /**
+ * Number of units that
+ * correspond to one increment of the
+ * clock. Indicates the resolution
+ */
+ UWORD32 u4_num_units_in_tick;
+
+ /**
+ * The number of time units that pass in one second
+ */
+ UWORD32 u4_time_scale;
+
+ /**
+ * Nal- hrd parameters flag
+ */
+ UWORD8 u1_nal_hrd_parameters_present_flag;
+
+ /**
+ * VCL- hrd parameters flag
+ */
+ UWORD8 u1_vcl_hrd_parameters_present_flag;
+
+ /**
+ * Indicates the presence of NAL-HRD params or VCL_HRD params
+ * in the bitstream
+ */
+ UWORD8 u1_cpbdpb_delays_present_flag;
+
+ /**
+ * specifies that sub-picture level CPB removal delay parameters are
+ * present in picture timing SEI messages
+ */
+ UWORD8 u1_sub_pic_cpb_params_present_flag;
+
+ /**
+ * specify the clock sub-tick
+ * (the minimum interval of time that can be represented in the coded data when sub_pic_cpb_params_present_flag is equal to 1)
+ */
+ UWORD8 u1_tick_divisor_minus2;
+
+ /**
+ * specifies the length, in bits for the du cpb delay syntax in pt_sei
+ */
+ UWORD8 u1_du_cpb_removal_delay_increment_length_minus1;
+
+ /**
+ * Indicates presence of sub_pic_cpb_params in pic timing sei
+ */
+ UWORD8 u1_sub_pic_cpb_params_in_pic_timing_sei_flag;
+
+ /**
+ * specifies the length, in bits, of the pic_dpb_output_du_delay syntax
+ * element in the picture timing SEI message and the
+ * pic_spt_dpb_output_du_delay syntax element in the decoding unit
+ * information SEI message
+ */
+ UWORD8 u1_dpb_output_delay_du_length_minus1;
+
+ /**
+ * (together with bit_rate_value_minus1) specifies the
+ * maximum input bit rate of the i-th CPB
+ */
+ UWORD32 u4_bit_rate_scale;
+
+ /**
+ * (together with cpb_size_du_value_minus1) specfies
+ * CPB size of the i-th CPB when the CPB operates
+ * at the access unit level
+ */
+ UWORD32 u4_cpb_size_scale;
+
+ /**
+ * (together with cpb_size_du_value_minus1) specfies
+ * CPB size of the i-th CPB when the CPB operates
+ * at the sub-picture level
+ */
+ UWORD32 u4_cpb_size_du_scale;
+
+
+ /**
+ * specifies the length, in bits for initial cpb delay (nal/vcl)sysntax in bp sei
+ */
+ UWORD8 u1_initial_cpb_removal_delay_length_minus1;
+
+ /**
+ * specifies the length, in bits for the au cpb delay syntax in pt_sei
+ */
+ UWORD8 u1_au_cpb_removal_delay_length_minus1;
+
+ /**
+ * specifies the length, in bits, of the pic_dpb_output_delay syntax element in the pt SEI message
+ */
+ UWORD8 u1_dpb_output_delay_length_minus1;
+
+ /**
+ * if 1, , for the highest temporal sub-layers, the temporal distance between the HRD output times
+ * of consecutive pictures in output order is constrained refer to Table E-6
+ */
+ UWORD8 au1_fixed_pic_rate_general_flag[6];
+
+ UWORD8 au1_fixed_pic_rate_within_cvs_flag[6];
+
+ /**
+ * if 1, , for the highest temporal sub-layers, the temporal distance (in clock ticks) between the
+ * element units that specify HRD output times of consecutive pictures in output order is constrained
+ * refer to Table E-6
+ */
+ UWORD8 au1_elemental_duration_in_tc_minus1[6];
+
+ /**
+ * specifies the HRD operational mode
+ */
+ UWORD8 au1_low_delay_hrd_flag[6];
+
+ /**
+ * 1 specifies the number of alternative CPB specifications in the
+ * bitstream of the cvs when HighestTid is equal to i
+ */
+ UWORD8 au1_cpb_cnt_minus1[6];
+
+
+ /**
+ * VUI level Sub-layer HRD parameters
+ */
+ sub_lyr_hrd_params_t as_sub_layer_hrd_params[6];
+
+}hrd_params_t;
+
+/**
+ * Structure to hold VUI parameters Info
+ */
+typedef struct
+{
+ /**
+ * indicates the presence of aspect_ratio
+ */
+ UWORD8 u1_aspect_ratio_info_present_flag;
+
+ /**
+ * specifies the aspect ratio of the luma samples
+ */
+ UWORD8 u1_aspect_ratio_idc;
+
+ /**
+ * width of the luma samples. user dependent
+ */
+ UWORD16 u2_sar_width;
+
+ /**
+ * hieght of the luma samples. user dependent
+ */
+ UWORD16 u2_sar_height;
+
+ /**
+ * if 1, specifies that the overscan_appropriate_flag is present
+ * if 0, the preferred display method for the video signal is unspecified
+ */
+ UWORD8 u1_overscan_info_present_flag;
+
+ /**
+ * if 1,indicates that the cropped decoded pictures output
+ * are suitable for display using overscan
+ */
+ UWORD8 u1_overscan_appropriate_flag;
+
+ /**
+ * if 1 specifies that video_format, video_full_range_flag and
+ * colour_description_present_flag are present
+ */
+ UWORD8 u1_video_signal_type_present_flag;
+
+ /**
+ *
+ */
+ UWORD8 u1_video_format;
+
+ /**
+ * indicates the black level and range of the luma and chroma signals
+ */
+ UWORD8 u1_video_full_range_flag;
+
+ /**
+ * if 1,to 1 specifies that colour_primaries, transfer_characteristics
+ * and matrix_coefficients are present
+ */
+ UWORD8 u1_colour_description_present_flag;
+
+ /**
+ * indicates the chromaticity coordinates of the source primaries
+ */
+ UWORD8 u1_colour_primaries;
+
+ /**
+ * indicates the opto-electronic transfer characteristic of the source picture
+ */
+ UWORD8 u1_transfer_characteristics;
+
+ /**
+ * the matrix coefficients used in deriving luma and chroma signals
+ * from the green, blue, and red primaries
+ */
+ UWORD8 u1_matrix_coefficients;
+
+ /**
+ * if 1, specifies that chroma_sample_loc_type_top_field and
+ * chroma_sample_loc_type_bottom_field are present
+ */
+ UWORD8 u1_chroma_loc_info_present_flag;
+
+ /**
+ * location of chroma samples
+ */
+ UWORD8 u1_chroma_sample_loc_type_top_field;
+
+ UWORD8 u1_chroma_sample_loc_type_bottom_field;
+
+ /**
+ * if 1, indicates that the value of all decoded chroma samples is
+ * equal to 1 << ( BitDepthC - 1 )
+ */
+ UWORD8 u1_neutral_chroma_indication_flag;
+
+ /**
+ * 1 indicates that the coded video sequence conveys pictures that represent fields
+ * 0 indicates the pictures that represents field
+ */
+ UWORD8 u1_field_seq_flag;
+
+ /**
+ * specifies that picture timing SEI messages are present for every picture
+ */
+ UWORD8 u1_frame_field_info_present_flag;
+
+ /**
+ * 1 indicates that the default display window parameters follow next in the VUI
+ */
+ UWORD8 u1_default_display_window_flag;
+
+ /**
+ * specify the samples of the pictures in the coded video sequence
+ * that are within the default display window,
+ * in terms of a rectangular region specified in picture coordinates for display
+ */
+ UWORD32 u4_def_disp_win_left_offset;
+
+ UWORD32 u4_def_disp_win_right_offset;
+
+ UWORD32 u4_def_disp_win_top_offset;
+
+ UWORD32 u4_def_disp_win_bottom_offset;
+
+ /**
+ * to 1 specifies that the syntax structure hrd_parameters is present in the vui_parameters syntax structue
+ */
+ UWORD8 u1_vui_hrd_parameters_present_flag;
+
+ /**
+ * VUI level HRD parameters
+ */
+ hrd_params_t s_vui_hrd_parameters;
+
+ /**
+ * Indicates the presence of the
+ * num_units_in_ticks, time_scale flag
+ */
+ UWORD8 u1_vui_timing_info_present_flag;
+
+ /**
+ * Number of units that
+ * correspond to one increment of the
+ * clock. Indicates the resolution
+ */
+ UWORD32 u4_vui_num_units_in_tick;
+
+ /**
+ * The number of time units that pass in one second
+ */
+ UWORD32 u4_vui_time_scale;
+ /**
+ * if 1, indicates that the POC for each picture in the coded video sequence (cvs) (not the first picture), in decoding order,
+ * is proportional to the output time of the picture relative to that of the first picture in the cvs
+ */
+ UWORD8 u1_poc_proportional_to_timing_flag;
+
+ /**
+ * num_ticks_poc_diff_one_minus1 plus 1 specifies the number of clock ticks
+ * corresponding to a difference of poc values equal to 1
+ */
+ UWORD8 u1_num_ticks_poc_diff_one_minus1;
+
+ /**
+ * 1, specifies that the following cvs bitstream restriction parameters are present
+ */
+ UWORD8 u1_bitstream_restriction_flag;
+
+ /**
+ * if 1, indicates that each pps that is active in the cvs has
+ * the same value of the tile syntax elements
+ */
+ UWORD8 u1_tiles_fixed_structure_flag;
+
+ /**
+ * if 0, indicates that no pel outside the pic boundaries and
+ * no sub-pels derived using pels outside the pic boundaries is used for inter prediction
+ */
+ UWORD8 u1_motion_vectors_over_pic_boundaries_flag;
+
+ /**
+ * if 1, indicates
+ * all P/B slices belonging to the same pic have an identical refpic list0,
+ * all B slices that belong to the same picture have an identical refpic list1.
+ */
+ UWORD8 u1_restricted_ref_pic_lists_flag;
+
+ /**
+ * min_spatial_segmentation_idc, when not equal to 0, establishes a bound on the maximum possible size of distinct
+ * coded spatial segmentation regions in the pictures of the CVS. When min_spatial_segmentation_idc is not present, it is
+ * inferred to be equal to 0. The value of min_spatial_segmentation_idc shall be in the range of 0 to 4095, inclusive.
+ *
+ * can be used by a decoder to calculate the maximum number of luma samples to be processed by one processing thread
+ *
+ * If tiles=0 and entropy_sync=0 then
+ * no slice shall exceed ( 4 * PicSizeInSamplesY ) / minSpatialSegmentationTimes4 luma samples
+ *
+ * If tiles=1 and entropy_sync=0 then
+ * no tile shall exceed ( 4 * PicSizeInSamplesY ) / minSpatialSegmentationTimes4 luma samples
+ *
+ * If tiles=0 and entropy_sync=1 then
+ * ( 2 * pic_height_in_luma_samples + pic_width_in_luma_samples ) * CtbSizeY
+ * <= ( 4 * PicSizeInSamplesY ) / minSpatialSegmentationTimes4
+ */
+ UWORD32 u4_min_spatial_segmentation_idc;
+ /**
+ * Indicates a number of bytes not exceeded by the sum of the sizes of the VCL NAL units
+ * associated with any coded picture
+ */
+ UWORD8 u1_max_bytes_per_pic_denom;
+
+ /**
+ * Indicates an upper bound for the number of bits of coding_unit() data
+ */
+ UWORD8 u1_max_bits_per_mincu_denom;
+
+ /**
+ * Indicate the maximum absolute value of a decoded horizontal MV component
+ * in quarter-pel luma units
+ */
+ UWORD8 u1_log2_max_mv_length_horizontal;
+
+ /**
+ * Indicate the maximum absolute value of a decoded vertical MV component
+ * in quarter-pel luma units
+ */
+ UWORD8 u1_log2_max_mv_length_vertical;
+}vui_t;
+
/**
* Picture buffer
*/
@@ -59,6 +923,16 @@ typedef struct
*/
UWORD8 u1_buf_id;
+
+ // See IV_FLD_TYPE_T for all field types
+ UWORD32 e4_fld_type;
+
+ sei_params_t s_sei_params;
+
+ WORD32 i4_vui_present;
+
+ vui_t s_vui;
+
}pic_buf_t;
@@ -386,7 +1260,7 @@ typedef struct
UWORD32 b2_pred_mode : 2;
-/**
+ /**
* Merge flag for each partition - 0 or 1
*/
UWORD32 b1_merge_flag : 1;
@@ -424,7 +1298,6 @@ typedef struct
*/
UWORD32 b2_part_idx : 2;
-
}pu_t;
/**
@@ -442,7 +1315,6 @@ typedef struct
*/
UWORD32 b4_pos_y : 4;
-
/*************************************************************************/
/* Luma TU size (width or height) = 1 << (b3_size + 2) */
/* i.e. 0 : 4, 1 : 8, 2: 16, 3: 32, 4: 64 */
@@ -460,7 +1332,6 @@ typedef struct
/* Cr info. For the first three TUs in 8x8 (for 4x4 luma) this will */
/* be zero. For all the other cases this will be 1 */
/*************************************************************************/
-
/**
* 4x4 Luma TUs only the fourth one contains cb,cr
* TODO: Check if this is really needed, cb_cbf and cr_cbf should be enough
@@ -909,7 +1780,6 @@ typedef struct
}tu_sblk_coeff_data_t;
-
/*************************************************************************/
/* The following describes how each of the CU cases are handled */
/*************************************************************************/
@@ -1310,7 +2180,6 @@ typedef struct
*/
WORD8 ai1_bit_rate_info_present_flag[VPS_MAX_SUB_LAYERS];
-
/**
* pic_rate_info_present_flag[i]
*/
@@ -1320,428 +2189,23 @@ typedef struct
* avg_bit_rate[i]
*/
UWORD16 au2_avg_bit_rate[VPS_MAX_SUB_LAYERS];
+
/**
* max_bit_rate[i]
*/
UWORD16 au2_max_bit_rate[VPS_MAX_SUB_LAYERS];
+
/**
* constant_pic_rate_idc[i]
*/
WORD8 ai1_constant_pic_rate_idc[VPS_MAX_SUB_LAYERS];
+
/**
* avg_pic_rate[i]
*/
UWORD16 au2_avg_pic_rate[VPS_MAX_SUB_LAYERS];
}vps_t;
-/**
- * Sub-layer HRD parameters Info
- */
-typedef struct
-{
- /**
- * (together with bit_rate_scale) specifies the
- * maximum input bit rate for the i-th CPB
- */
- UWORD32 au4_bit_rate_value_minus1[32];
- /**
- * together with cpb_size_scale to specify the
- * CPB size when the CPB operates at the access unit level.
- */
- UWORD32 au4_cpb_size_value_minus1[32];
-
- /**
- * together with cpb_size_du_scale to specify the CPB size
- * when the CPB operates at sub-picture level
- */
- UWORD32 au4_cpb_size_du_value_minus1[32];
-
- /**
- * specifies the maximum input bit rate for the i-th CPB when the CPB
- * operates at the sub-picture level. bit_rate_du_value_minus1[ i ]
- * shall be in the range of 0 to 2^32 - 2
- */
- UWORD32 au4_bit_rate_du_value_minus1[32];
-
- /**
- * if 1, specifies that the HSS operates in a constant bit rate (CBR) mode
- * if 0, specifies that the HSS operates in a intermittent bit rate (CBR) mode
- */
- UWORD8 au1_cbr_flag[32];
-
-}sub_lyr_hrd_params_t;
-
-/**
- * HRD parameters Info
- */
-typedef struct
-{
-
- /**
- * Indicates the presence of the
- * num_units_in_ticks, time_scale flag
- */
- UWORD8 u1_timing_info_present_flag;
-
- /**
- * Number of units that
- * correspond to one increment of the
- * clock. Indicates the resolution
- */
- UWORD32 u4_num_units_in_tick;
-
- /**
- * The number of time units that pass in one second
- */
- UWORD32 u4_time_scale;
-
- /**
- * Nal- hrd parameters flag
- */
- UWORD8 u1_nal_hrd_parameters_present_flag;
-
- /**
- * VCL- hrd parameters flag
- */
- UWORD8 u1_vcl_hrd_parameters_present_flag;
-
- /**
- * Indicates the presence of NAL-HRD params or VCL_HRD params
- * in the bitstream
- */
- UWORD8 u1_cpbdpb_delays_present_flag;
-
- /**
- * specifies that sub-picture level CPB removal delay parameters are
- * present in picture timing SEI messages
- */
- UWORD8 u1_sub_pic_cpb_params_present_flag;
-
- /**
- * specify the clock sub-tick
- * (the minimum interval of time that can be represented in the coded data when sub_pic_cpb_params_present_flag is equal to 1)
- */
- UWORD8 u1_tick_divisor_minus2;
-
- /**
- * specifies the length, in bits for the du cpb delay syntax in pt_sei
- */
- UWORD8 u1_du_cpb_removal_delay_increment_length_minus1;
-
- /**
- * Indicates presence of sub_pic_cpb_params in pic timing sei
- */
- UWORD8 u1_sub_pic_cpb_params_in_pic_timing_sei_flag;
-
- /**
- * specifies the length, in bits, of the pic_dpb_output_du_delay syntax
- * element in the picture timing SEI message and the
- * pic_spt_dpb_output_du_delay syntax element in the decoding unit
- * information SEI message
- */
- UWORD8 u1_dpb_output_delay_du_length_minus1;
-
- /**
- * (together with bit_rate_value_minus1) specifies the
- * maximum input bit rate of the i-th CPB
- */
- UWORD32 u4_bit_rate_scale;
-
- /**
- * (together with cpb_size_du_value_minus1) specfies
- * CPB size of the i-th CPB when the CPB operates
- * at the access unit level
- */
- UWORD32 u4_cpb_size_scale;
-
- /**
- * (together with cpb_size_du_value_minus1) specfies
- * CPB size of the i-th CPB when the CPB operates
- * at the sub-picture level
- */
- UWORD32 u4_cpb_size_du_scale;
-
-
- /**
- * specifies the length, in bits for initial cpb delay (nal/vcl)sysntax in bp sei
- */
- UWORD8 u1_initial_cpb_removal_delay_length_minus1;
-
- /**
- * specifies the length, in bits for the au cpb delay syntax in pt_sei
- */
- UWORD8 u1_au_cpb_removal_delay_length_minus1;
-
- /**
- * specifies the length, in bits, of the pic_dpb_output_delay syntax element in the pt SEI message
- */
- UWORD8 u1_dpb_output_delay_length_minus1;
-
- /**
- * if 1, , for the highest temporal sub-layers, the temporal distance between the HRD output times
- * of consecutive pictures in output order is constrained refer to Table E-6
- */
- UWORD8 au1_fixed_pic_rate_general_flag[6];
-
- UWORD8 au1_fixed_pic_rate_within_cvs_flag[6];
-
- /**
- * if 1, , for the highest temporal sub-layers, the temporal distance (in clock ticks) between the
- * element units that specify HRD output times of consecutive pictures in output order is constrained
- * refer to Table E-6
- */
- UWORD8 au1_elemental_duration_in_tc_minus1[6];
-
- /**
- * specifies the HRD operational mode
- */
- UWORD8 au1_low_delay_hrd_flag[6];
-
- /**
- * 1 specifies the number of alternative CPB specifications in the
- * bitstream of the cvs when HighestTid is equal to i
- */
- UWORD8 au1_cpb_cnt_minus1[6];
-
-
- /**
- * VUI level Sub-layer HRD parameters
- */
- sub_lyr_hrd_params_t as_sub_layer_hrd_params[6];
-
-}hrd_params_t;
-
-
-/**
- * Structure to hold VUI parameters Info
- */
-typedef struct
-{
- /**
- * indicates the presence of aspect_ratio
- */
- UWORD8 u1_aspect_ratio_info_present_flag;
-
- /**
- * specifies the aspect ratio of the luma samples
- */
- UWORD8 u1_aspect_ratio_idc;
-
- /**
- * width of the luma samples. user dependent
- */
- UWORD16 u2_sar_width;
-
- /**
- * hieght of the luma samples. user dependent
- */
- UWORD16 u2_sar_height;
-
- /**
- * if 1, specifies that the overscan_appropriate_flag is present
- * if 0, the preferred display method for the video signal is unspecified
- */
- UWORD8 u1_overscan_info_present_flag;
-
- /**
- * if 1,indicates that the cropped decoded pictures output
- * are suitable for display using overscan
- */
- UWORD8 u1_overscan_appropriate_flag;
-
- /**
- * if 1 specifies that video_format, video_full_range_flag and
- * colour_description_present_flag are present
- */
- UWORD8 u1_video_signal_type_present_flag;
-
- /**
- *
- */
- UWORD8 u1_video_format;
-
- /**
- * indicates the black level and range of the luma and chroma signals
- */
- UWORD8 u1_video_full_range_flag;
-
- /**
- * if 1,to 1 specifies that colour_primaries, transfer_characteristics
- * and matrix_coefficients are present
- */
- UWORD8 u1_colour_description_present_flag;
-
- /**
- * indicates the chromaticity coordinates of the source primaries
- */
- UWORD8 u1_colour_primaries;
-
- /**
- * indicates the opto-electronic transfer characteristic of the source picture
- */
- UWORD8 u1_transfer_characteristics;
-
- /**
- * the matrix coefficients used in deriving luma and chroma signals
- * from the green, blue, and red primaries
- */
- UWORD8 u1_matrix_coefficients;
-
- /**
- * if 1, specifies that chroma_sample_loc_type_top_field and
- * chroma_sample_loc_type_bottom_field are present
- */
- UWORD8 u1_chroma_loc_info_present_flag;
-
- /**
- * location of chroma samples
- */
- UWORD8 u1_chroma_sample_loc_type_top_field;
-
- UWORD8 u1_chroma_sample_loc_type_bottom_field;
-
- /**
- * if 1, indicates that the value of all decoded chroma samples is
- * equal to 1 << ( BitDepthC - 1 )
- */
- UWORD8 u1_neutral_chroma_indication_flag;
-
- /**
- * 1 indicates that the coded video sequence conveys pictures that represent fields
- * 0 indicates the pictures that represents field
- */
- UWORD8 u1_field_seq_flag;
-
- /**
- * specifies that picture timing SEI messages are present for every picture
- */
- UWORD8 u1_frame_field_info_present_flag;
-
- /**
- * 1 indicates that the default display window parameters follow next in the VUI
- */
- UWORD8 u1_default_display_window_flag;
-
- /**
- * specify the samples of the pictures in the coded video sequence
- * that are within the default display window,
- * in terms of a rectangular region specified in picture coordinates for display
- */
- UWORD32 u4_def_disp_win_left_offset;
-
- UWORD32 u4_def_disp_win_right_offset;
-
- UWORD32 u4_def_disp_win_top_offset;
-
- UWORD32 u4_def_disp_win_bottom_offset;
-
- /**
- * to 1 specifies that the syntax structure hrd_parameters is present in the vui_parameters syntax structue
- */
- UWORD8 u1_vui_hrd_parameters_present_flag;
-
- /**
- * VUI level HRD parameters
- */
- hrd_params_t s_vui_hrd_parameters;
-
- /**
- * Indicates the presence of the
- * num_units_in_ticks, time_scale flag
- */
- UWORD8 u1_vui_timing_info_present_flag;
-
- /**
- * Number of units that
- * correspond to one increment of the
- * clock. Indicates the resolution
- */
- UWORD32 u4_vui_num_units_in_tick;
-
- /**
- * The number of time units that pass in one second
- */
- UWORD32 u4_vui_time_scale;
- /**
- * if 1, indicates that the POC for each picture in the coded video sequence (cvs) (not the first picture), in decoding order,
- * is proportional to the output time of the picture relative to that of the first picture in the cvs
- */
- UWORD8 u1_poc_proportional_to_timing_flag;
-
- /**
- * num_ticks_poc_diff_one_minus1 plus 1 specifies the number of clock ticks
- * corresponding to a difference of poc values equal to 1
- */
- UWORD8 u1_num_ticks_poc_diff_one_minus1;
-
- /**
- * 1, specifies that the following cvs bitstream restriction parameters are present
- */
- UWORD8 u1_bitstream_restriction_flag;
-
- /**
- * if 1, indicates that each pps that is active in the cvs has
- * the same value of the tile syntax elements
- */
- UWORD8 u1_tiles_fixed_structure_flag;
-
- /**
- * if 0, indicates that no pel outside the pic boundaries and
- * no sub-pels derived using pels outside the pic boundaries is used for inter prediction
- */
- UWORD8 u1_motion_vectors_over_pic_boundaries_flag;
-
- /**
- * if 1, indicates
- * all P/B slices belonging to the same pic have an identical refpic list0,
- * all B slices that belong to the same picture have an identical refpic list1.
- */
- UWORD8 u1_restricted_ref_pic_lists_flag;
-
- /**
- * min_spatial_segmentation_idc, when not equal to 0, establishes a bound on the maximum possible size of distinct
- * coded spatial segmentation regions in the pictures of the CVS. When min_spatial_segmentation_idc is not present, it is
- * inferred to be equal to 0. The value of min_spatial_segmentation_idc shall be in the range of 0 to 4095, inclusive.
- *
- * can be used by a decoder to calculate the maximum number of luma samples to be processed by one processing thread
- *
- * If tiles=0 and entropy_sync=0 then
- * no slice shall exceed ( 4 * PicSizeInSamplesY ) / minSpatialSegmentationTimes4 luma samples
- *
- * If tiles=1 and entropy_sync=0 then
- * no tile shall exceed ( 4 * PicSizeInSamplesY ) / minSpatialSegmentationTimes4 luma samples
- *
- * If tiles=0 and entropy_sync=1 then
- * ( 2 * pic_height_in_luma_samples + pic_width_in_luma_samples ) * CtbSizeY
- * <= ( 4 * PicSizeInSamplesY ) / minSpatialSegmentationTimes4
- */
- UWORD32 u4_min_spatial_segmentation_idc;
- /**
- * Indicates a number of bytes not exceeded by the sum of the sizes of the VCL NAL units
- * associated with any coded picture
- */
- UWORD8 u1_max_bytes_per_pic_denom;
-
- /**
- * Indicates an upper bound for the number of bits of coding_unit() data
- */
- UWORD8 u1_max_bits_per_mincu_denom;
-
- /**
- * Indicate the maximum absolute value of a decoded horizontal MV component
- * in quarter-pel luma units
- */
- UWORD8 u1_log2_max_mv_length_horizontal;
-
- /**
- * Indicate the maximum absolute value of a decoded vertical MV component
- * in quarter-pel luma units
- */
- UWORD8 u1_log2_max_mv_length_vertical;
-
-
-}vui_t;
-
/**
* Structure to hold SPS info
@@ -2288,283 +2752,6 @@ typedef struct
}pps_t;
-
-/**
- * Buffering Period SEI parameters Info
- */
-typedef struct
-{
- /**
- * specifies SPS Id active for the coded picture assosiated
- * with the bp message.
- */
- UWORD8 u1_sps_id;
-
- /**
- * Derived from Hrd parameters
- */
- UWORD8 u1_sub_pic_cpb_params_present_flag;
-
- /**
- * specifies the presence of the initial_alt_cpb_removal_delay[ i ]
- * and initial_alt_cpb_removal_offset[ i ] syntax elements
- */
- UWORD8 u1_rap_cpb_params_present_flag;
-
- /**
- * cbp removal delay used in buffering period SEI
- */
- UWORD32 cpb_delay_offset;
-
- /**
- * dbp removal delay used in buffering period SEI
- */
- UWORD32 dpb_delay_offset;
-
- /**
- * concatanation flag
- */
- UWORD8 concatenation_flag;
-
- /**
- * delata cbp removal delay
- */
- UWORD32 au_cpb_removal_delay_delta_minus1;
-
- /**
- * specify the default initial CPB removal delays, respectively,
- * for the CPB when the NAL HRD parameters are in use
- */
- UWORD32 au4_nal_initial_cpb_removal_delay[32];
-
- /**
- * specify the alternate initial CPB removal delays, respectively,
- * for the CPB when the NAL HRD parameters are in use
- */
- UWORD32 au4_nal_initial_alt_cpb_removal_delay[32];
-
- /**
- * specify the initial CPB removal delay offset, respectively,
- * for the CPB when the NAL HRD parameters are in use
- */
- UWORD32 au4_nal_initial_cpb_removal_delay_offset[32];
-
- /**
- * specify the alternate initial CPB removal delays offsets, respectively,
- * for the CPB when the NAL HRD parameters are in use
- */
- UWORD32 au4_nal_initial_alt_cpb_removal_delay_offset[32];
-
- /**
- * specify the default initial CPB removal delays, respectively,
- * for the CPB when the VCL HRD parameters are in use
- */
- UWORD32 au4_vcl_initial_cpb_removal_delay[32];
-
- /**
- * specify the initial alt CPB removal delays , respectively,
- * for the CPB when the VCL HRD parameters are in use
- */
- UWORD32 au4_vcl_initial_alt_cpb_removal_delay[32];
-
- /**
- * specify the initial CPB removal delay offset, respectively,
- * for the CPB when the VCL HRD parameters are in use
- */
- UWORD32 au4_vcl_initial_cpb_removal_delay_offset[32];
-
- /**
- * specify the alternate initial CPB removal delays offsets, respectively,
- * for the CPB when the VCL HRD parameters are in use
- */
- UWORD32 au4_vcl_initial_alt_cpb_removal_delay_offset[32];
-
- /**
- * Inital CPB removal delay
- */
- UWORD32 u4_initial_cpb_removal_delay_length;
-
- /**
- * CPB cnt for corr. sublayer
- */
- UWORD32 u4_cpb_cnt;
-
-
- /**
- * VBV buffer size used in buffering period SEI
- */
- UWORD32 u4_buffer_size_sei;
-
- /**
- * Encoder buffer fullness used in buffering period SEI
- */
- UWORD32 u4_dbf_sei;
-
- /**
- * target bitrate used in buffering period SEI
- */
- UWORD32 u4_target_bit_rate_sei;
-
-
-
-
-}buf_period_sei_params_t;
-
-
-/**
- * Picture Timing SEI parameters Info
- */
-typedef struct
-{
- /**
- * derived from vui parameters
- */
- UWORD8 u1_frame_field_info_present_flag;
-
- /**
- * indicates whether a picture should be displayed as a
- * frame or as one or more fields
- */
- UWORD32 u4_pic_struct;
-
- UWORD8 u1_num_clk_ticks;
-
- /**
- * indicates whether a scan-type of the pic should be interpreted
- * as progressive or interlaced
- */
- UWORD8 u1_progressive_source_idc;
-
- /**
- * if 1, indicates if the current pic is a duplicte pic in output order
- */
- UWORD8 u1_duplicate_flag;
-
- /**
- * specifies the number clock ticks between the nominal CPB removal time
- * au associated with the pt SEI message and
- * the preceding au in decoding order that contained a bp SEI message
- */
- UWORD32 u4_au_cpb_removal_delay_minus1;
-
- /**
- * compute the DPB output time of the picture
- */
- UWORD32 u4_pic_dpb_output_delay;
-
- UWORD32 u4_pic_dpb_output_du_delay;
-
- /**
- * specifies the number of decoding units in the access unit
- * the picture timing SEI message is associated with
- */
- UWORD32 u4_num_decoding_units_minus1;
-
- /**
- * if 1 specifies that the du_common_cpb_removal_delay_increment_minus1 is present
- */
- UWORD32 u4_du_common_cpb_removal_delay_flag;
-
- /**
- * specifies the duration, in units of clock sub-ticks,
- * between the nominal CPB removal times of any two consecutive decoding units
- * in decoding order in the access unit associated with the pt_SEI message
- */
- UWORD32 u4_du_common_cpb_removal_delay_increment_minus1; //same as u4_du_cpb_removal_delay_increment_minus1
-
- /**
- * specifies the number of NAL units in the decoding unit of the access unit
- * the picture timing SEI message is associated with.
- * range from 0 to (pic size in ctby - 1)
- */
- UWORD32 u4_num_nalus_in_du_minus1;
-
- /**
- * specifies the duration, in units of clock sub-ticks,
- * between the nominal CPB removal times of the ( i + 1 )-th decoding unit and the i-th decoding unit,
- * in decoding order, in the access unit associated with the pt_SEI message
- */
- UWORD32 u4_du_cpb_removal_delay_increment_minus1;
-
-
-}pic_timing_sei_params_t;
-
-/**
- * Structure to hold Recovery point SEI parameters Info
- */
-typedef struct
-{
- /**
- * specifies the recovery point of output pictures in output order
- */
- WORD32 i4_recovery_poc_cnt;
-
- UWORD8 u1_exact_match_flag;
-
- /**
- * indicates the presence or absence of a broken link in the NAL unit
- * stream at the location of the recovery point SEI message
- */
-
- UWORD8 u1_broken_link_flag;
-
-}recovery_point_sei_params_t;
-/**
- * Structure to hold active parameter parameter set SEI parameters Info
- */
-typedef struct
-{
- /*
- * active vps id
- */
-
- UWORD8 u1_active_video_parameter_set_id;
-
- /*
- * default set to zero.
- */
- UWORD8 u1_self_contained_cvs_flag;
-
- UWORD8 u1_no_parameter_set_update_flag;
-
- UWORD8 u1_num_sps_ids_minus1;
-
- /*
- * active sps id
- */
- UWORD8 au1_active_seq_parameter_set_id[15];
-
-}active_parameter_set_sei_param_t;
-
-/**
- * Structure to hold SEI parameters Info
- */
-typedef struct
-{
-
- WORD8 i1_sei_parameters_present_flag;
-
- WORD8 i1_aud_present_flag;
-
- WORD8 i1_buf_period_params_present_flag;
-
- WORD8 i1_pic_timing_params_present_flag;
-
- WORD8 i1_recovery_point_params_present_flag;
-
- buf_period_sei_params_t s_buf_period_sei_params;
-
- pic_timing_sei_params_t s_pic_timing_sei_params;
-
- recovery_point_sei_params_t s_recovery_point_params;
-
- active_parameter_set_sei_param_t s_active_parameter_set_sei_params;
-
-
-} sei_params_t;
-
-
-
/**
* Structure to hold slice header info
*/