51int nal_to_rbsp(
const uint8_t* nal_buf,
int* nal_size, uint8_t* rbsp_buf,
int* rbsp_size)
57 for( i = 1; i < *nal_size; i++ )
60 if( (
count == 2 ) && ( nal_buf[i] < 0x03) )
65 if( (
count == 2 ) && ( nal_buf[i] == 0x03) )
68 if((i < *nal_size - 1) && (nal_buf[i+1] > 0x03))
74 if(i == *nal_size - 1)
83 if ( j >= *rbsp_size )
89 rbsp_buf[j] = nal_buf[i];
90 if(nal_buf[i] == 0x00)
111 memset(sps, 0,
sizeof(
sps_t));
139 for( i = 0; i < 8; i++ )
207 UNUSED(useDefaultScalingMatrixFlag);
209 if(scalingList == NULL)
216 for( j = 0; j < sizeOfScalingList; j++ )
221 nextScale = ( lastScale + delta_scale + 256 ) % 256;
222 useDefaultScalingMatrixFlag = ( j == 0 && nextScale == 0 );
224 scalingList[ j ] = ( nextScale == 0 ) ? lastScale : nextScale;
225 lastScale = scalingList[ j ];
338 printf(
"======= SPS =======\n");
347 printf(
" level_idc : %d \n", sps->
level_idc );
382 printf(
"=== VUI ===\n");
416 printf(
"=== HRD ===\n");
425 printf(
" cbr_flag[%d] : %d \n", SchedSelIdx, sps->
hrd.
cbr_flag[SchedSelIdx] );
static uint32_t bs_read_u8(bs_t *b)
static uint32_t bs_read_u(bs_t *b, int n)
static uint32_t bs_read_ue(bs_t *b)
static uint32_t bs_byte_aligned(bs_t *b)
static uint32_t bs_read_u1(bs_t *b)
static int32_t bs_read_se(bs_t *b)
void read_scaling_list(bs_t *b, int *scalingList, int sizeOfScalingList, int useDefaultScalingMatrixFlag)
void read_hrd_parameters(sps_t *sps, bs_t *b)
void read_vui_parameters(sps_t *sps, bs_t *b)
int nal_to_rbsp(const uint8_t *nal_buf, int *nal_size, uint8_t *rbsp_buf, int *rbsp_size)
int read_seq_parameter_set_rbsp(sps_t *sps, bs_t *b)
void read_rbsp_trailing_bits(bs_t *b)
void debug_sps(sps_t *sps)
int video_signal_type_present_flag
int transfer_characteristics
int frame_crop_right_offset
int frame_crop_left_offset
int vui_parameters_present_flag
int nal_hrd_parameters_present_flag
int timing_info_present_flag
int mb_adaptive_frame_field_flag
int dpb_output_delay_length_minus1
int direct_8x8_inference_flag
int pic_height_in_map_units_minus1
int fixed_frame_rate_flag
int video_full_range_flag
int max_dec_frame_buffering
int vcl_hrd_parameters_present_flag
int seq_scaling_list_present_flag[8]
int offset_for_non_ref_pic
int colour_description_present_flag
int log2_max_pic_order_cnt_lsb_minus4
int log2_max_frame_num_minus4
int overscan_info_present_flag
int max_bits_per_mb_denom
int bit_depth_luma_minus8
int frame_crop_top_offset
int qpprime_y_zero_transform_bypass_flag
int motion_vectors_over_pic_boundaries_flag
int bit_depth_chroma_minus8
int offset_for_top_to_bottom_field
int frame_crop_bottom_offset
int chroma_loc_info_present_flag
int pic_struct_present_flag
int cpb_size_value_minus1[32]
int chroma_sample_loc_type_top_field
int initial_cpb_removal_delay_length_minus1
int bitstream_restriction_flag
int UseDefaultScalingMatrix4x4Flag[6]
int log2_max_mv_length_vertical
int bit_rate_value_minus1[32]
int cpb_removal_delay_length_minus1
int log2_max_mv_length_horizontal
int gaps_in_frame_num_value_allowed_flag
int UseDefaultScalingMatrix8x8Flag[2]
int offset_for_ref_frame[256]
int chroma_sample_loc_type_bottom_field
int aspect_ratio_info_present_flag
int delta_pic_order_always_zero_flag
int overscan_appropriate_flag
int max_bytes_per_pic_denom
int pic_width_in_mbs_minus1
int residual_colour_transform_flag
int seq_scaling_matrix_present_flag
int num_ref_frames_in_pic_order_cnt_cycle