summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-h264.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-09-19 04:14:53 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-09-19 04:14:53 +0000
commita86c5f7cae7ec9a3398300555a0b644689d946a1 (patch)
tree39fe4b107c71174fd1e8a8ceb9a4d2aa14116248 /epan/dissectors/packet-h264.c
parentReleasing progress-linux version 4.2.6-1~progress7.99u1. (diff)
downloadwireshark-a86c5f7cae7ec9a3398300555a0b644689d946a1.tar.xz
wireshark-a86c5f7cae7ec9a3398300555a0b644689d946a1.zip
Merging upstream version 4.4.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/packet-h264.c')
-rw-r--r--epan/dissectors/packet-h264.c849
1 files changed, 425 insertions, 424 deletions
diff --git a/epan/dissectors/packet-h264.c b/epan/dissectors/packet-h264.c
index 8ca3f5e9..f261626e 100644
--- a/epan/dissectors/packet-h264.c
+++ b/epan/dissectors/packet-h264.c
@@ -23,234 +23,235 @@
#include <epan/asn1.h>
#include <epan/expert.h>
#include <epan/prefs.h>
+#include <epan/tfs.h>
#include "packet-h264.h"
void proto_register_h264(void);
void proto_reg_handoff_h264(void);
/* Initialize the protocol and registered fields */
-static int proto_h264 = -1;
-static int hf_h264_type = -1;
-static int hf_h264_nal_f_bit = -1;
-static int hf_h264_nal_nri = -1;
-static int hf_h264_start_bit = -1;
-static int hf_h264_forbidden_bit = -1;
-static int hf_h264_end_bit = -1;
-static int hf_h264_profile = -1;
-static int hf_h264_profile_idc = -1;
-static int hf_h264_rbsp_stop_bit = -1;
-static int hf_h264_rbsp_trailing_bits = -1;
-static int hf_h264_constraint_set0_flag = -1;
-static int hf_h264_constraint_set1_flag = -1;
-static int hf_h264_constraint_set2_flag = -1;
-static int hf_h264_constraint_set3_flag = -1;
-static int hf_h264_constraint_set4_flag = -1;
-static int hf_h264_constraint_set5_flag = -1;
-static int hf_h264_reserved_zero_2bits = -1;
-static int hf_h264_level_idc = -1;
-static int hf_h264_nal_unit = -1;
-static int hf_h264_forbidden_zero_bit = -1;
-static int hf_h264_nal_ref_idc = -1;
-static int hf_h264_nal_unit_type = -1;
-static int hf_h264_seq_parameter_set_id = -1;
-static int hf_h264_chroma_format_idc = -1;
-static int hf_h264_residual_colour_transform_flag = -1;
-static int hf_h264_bit_depth_luma_minus8 = -1;
-static int hf_h264_bit_depth_chroma_minus8 = -1;
-static int hf_h264_qpprime_y_zero_transform_bypass_flag = -1;
-static int hf_h264_seq_scaling_matrix_present_flag = -1;
-static int hf_h264_seq_scaling_list_present_flag = -1;
-static int hf_h264_delta_scale = -1;
-static int hf_h264_log2_max_frame_num_minus4 = -1;
-static int hf_h264_pic_order_cnt_type = -1;
-static int hf_h264_log2_max_pic_order_cnt_lsb_minus4 = -1;
-static int hf_h264_delta_pic_order_always_zero_flag = -1;
-static int hf_h264_offset_for_non_ref_pic = -1;
-static int hf_h264_offset_for_top_to_bottom_field = -1;
-static int hf_h264_num_ref_frames_in_pic_order_cnt_cycle = -1;
-static int hf_h264_offset_for_ref_frame = -1;
-static int hf_h264_num_ref_frames = -1;
-static int hf_h264_gaps_in_frame_num_value_allowed_flag = -1;
-static int hf_h264_pic_width_in_mbs_minus1 = -1;
-static int hf_h264_pic_height_in_map_units_minus1 = -1;
-static int hf_h264_frame_mbs_only_flag = -1;
-static int hf_h264_mb_adaptive_frame_field_flag = -1;
-static int hf_h264_direct_8x8_inference_flag = -1;
-static int hf_h264_frame_cropping_flag = -1;
-static int hf_h264_frame_crop_left_offset = -1;
-static int hf_h264_frame_crop_right_offset = -1;
-static int hf_h264_frame_crop_top_offset = -1;
-static int hf_h264_frame_crop_bottom_offset = -1;
-static int hf_h264_vui_parameters_present_flag = -1;
-static int hf_h264_pic_parameter_set_id = -1;
-static int hf_h264_entropy_coding_mode_flag = -1;
-static int hf_h264_pic_order_present_flag = -1;
-static int hf_h264_num_slice_groups_minus1 = -1;
-static int hf_h264_slice_group_map_type = -1;
-static int hf_h264_num_ref_idx_l0_active_minus1 = -1;
-static int hf_h264_num_ref_idx_l1_active_minus1 = -1;
-static int hf_h264_weighted_pred_flag = -1;
-static int hf_h264_weighted_bipred_idc = -1;
-static int hf_h264_pic_init_qp_minus26 = -1;
-static int hf_h264_pic_init_qs_minus26 = -1;
-static int hf_h264_chroma_qp_index_offset = -1;
-static int hf_h264_deblocking_filter_control_present_flag = -1;
-static int hf_h264_constrained_intra_pred_flag = -1;
-static int hf_h264_redundant_pic_cnt_present_flag = -1;
-static int hf_h264_transform_8x8_mode_flag = -1;
-static int hf_h264_pic_scaling_matrix_present_flag = -1;
-static int hf_h264_second_chroma_qp_index_offset = -1;
-static int hf_h264_primary_pic_type = -1;
-static int hf_h264_par_profile = -1;
-static int hf_h264_par_profile_b = -1;
-static int hf_h264_par_profile_m = -1;
-static int hf_h264_par_profile_e = -1;
-static int hf_h264_par_profile_h = -1;
-static int hf_h264_par_profile_h10 = -1;
-static int hf_h264_par_profile_h4_2_2 = -1;
-static int hf_h264_par_profile_h4_4_4 = -1;
-/* static int hf_h264_par_add_mode_sup = -1; */
-static int hf_h264_par_AdditionalModesSupported = -1;
-static int hf_h264_par_add_mode_sup_rcdo = -1;
-static int hf_h264_par_ProfileIOP = -1;
-static int hf_h264_par_constraint_set0_flag = -1;
-static int hf_h264_par_constraint_set1_flag = -1;
-static int hf_h264_par_constraint_set2_flag = -1;
+static int proto_h264;
+static int hf_h264_type;
+static int hf_h264_nal_f_bit;
+static int hf_h264_nal_nri;
+static int hf_h264_start_bit;
+static int hf_h264_forbidden_bit;
+static int hf_h264_end_bit;
+static int hf_h264_profile;
+static int hf_h264_profile_idc;
+static int hf_h264_rbsp_stop_bit;
+static int hf_h264_rbsp_trailing_bits;
+static int hf_h264_constraint_set0_flag;
+static int hf_h264_constraint_set1_flag;
+static int hf_h264_constraint_set2_flag;
+static int hf_h264_constraint_set3_flag;
+static int hf_h264_constraint_set4_flag;
+static int hf_h264_constraint_set5_flag;
+static int hf_h264_reserved_zero_2bits;
+static int hf_h264_level_idc;
+static int hf_h264_nal_unit;
+static int hf_h264_forbidden_zero_bit;
+static int hf_h264_nal_ref_idc;
+static int hf_h264_nal_unit_type;
+static int hf_h264_seq_parameter_set_id;
+static int hf_h264_chroma_format_idc;
+static int hf_h264_residual_colour_transform_flag;
+static int hf_h264_bit_depth_luma_minus8;
+static int hf_h264_bit_depth_chroma_minus8;
+static int hf_h264_qpprime_y_zero_transform_bypass_flag;
+static int hf_h264_seq_scaling_matrix_present_flag;
+static int hf_h264_seq_scaling_list_present_flag;
+static int hf_h264_delta_scale;
+static int hf_h264_log2_max_frame_num_minus4;
+static int hf_h264_pic_order_cnt_type;
+static int hf_h264_log2_max_pic_order_cnt_lsb_minus4;
+static int hf_h264_delta_pic_order_always_zero_flag;
+static int hf_h264_offset_for_non_ref_pic;
+static int hf_h264_offset_for_top_to_bottom_field;
+static int hf_h264_num_ref_frames_in_pic_order_cnt_cycle;
+static int hf_h264_offset_for_ref_frame;
+static int hf_h264_num_ref_frames;
+static int hf_h264_gaps_in_frame_num_value_allowed_flag;
+static int hf_h264_pic_width_in_mbs_minus1;
+static int hf_h264_pic_height_in_map_units_minus1;
+static int hf_h264_frame_mbs_only_flag;
+static int hf_h264_mb_adaptive_frame_field_flag;
+static int hf_h264_direct_8x8_inference_flag;
+static int hf_h264_frame_cropping_flag;
+static int hf_h264_frame_crop_left_offset;
+static int hf_h264_frame_crop_right_offset;
+static int hf_h264_frame_crop_top_offset;
+static int hf_h264_frame_crop_bottom_offset;
+static int hf_h264_vui_parameters_present_flag;
+static int hf_h264_pic_parameter_set_id;
+static int hf_h264_entropy_coding_mode_flag;
+static int hf_h264_pic_order_present_flag;
+static int hf_h264_num_slice_groups_minus1;
+static int hf_h264_slice_group_map_type;
+static int hf_h264_num_ref_idx_l0_active_minus1;
+static int hf_h264_num_ref_idx_l1_active_minus1;
+static int hf_h264_weighted_pred_flag;
+static int hf_h264_weighted_bipred_idc;
+static int hf_h264_pic_init_qp_minus26;
+static int hf_h264_pic_init_qs_minus26;
+static int hf_h264_chroma_qp_index_offset;
+static int hf_h264_deblocking_filter_control_present_flag;
+static int hf_h264_constrained_intra_pred_flag;
+static int hf_h264_redundant_pic_cnt_present_flag;
+static int hf_h264_transform_8x8_mode_flag;
+static int hf_h264_pic_scaling_matrix_present_flag;
+static int hf_h264_second_chroma_qp_index_offset;
+static int hf_h264_primary_pic_type;
+static int hf_h264_par_profile;
+static int hf_h264_par_profile_b;
+static int hf_h264_par_profile_m;
+static int hf_h264_par_profile_e;
+static int hf_h264_par_profile_h;
+static int hf_h264_par_profile_h10;
+static int hf_h264_par_profile_h4_2_2;
+static int hf_h264_par_profile_h4_4_4;
+/* static int hf_h264_par_add_mode_sup; */
+static int hf_h264_par_AdditionalModesSupported;
+static int hf_h264_par_add_mode_sup_rcdo;
+static int hf_h264_par_ProfileIOP;
+static int hf_h264_par_constraint_set0_flag;
+static int hf_h264_par_constraint_set1_flag;
+static int hf_h264_par_constraint_set2_flag;
/* Packetization Values */
-static int hf_h264_nalu_size = -1;
-static int hf_h264_don = -1;
-static int hf_h264_dond = -1;
-static int hf_h264_ts_offset16 = -1;
-static int hf_h264_ts_offset24 = -1;
+static int hf_h264_nalu_size;
+static int hf_h264_don;
+static int hf_h264_dond;
+static int hf_h264_ts_offset16;
+static int hf_h264_ts_offset24;
/* Extension Header */
-static int hf_h264_nal_extension_subtype = -1;
-static int hf_h264_nal_extension_j = -1;
-static int hf_h264_nal_extension_k = -1;
-static int hf_h264_nal_extension_l = -1;
+static int hf_h264_nal_extension_subtype;
+static int hf_h264_nal_extension_j;
+static int hf_h264_nal_extension_k;
+static int hf_h264_nal_extension_l;
/* SEI Decoding Information */
-static int hf_h264_sei_uuid = -1;
+static int hf_h264_sei_uuid;
/* Microsoft Layout SEI */
-static int hf_h264_sei_ms_lpb = -1;
-static int hf_h264_sei_ms_layout_p = -1;
-static int hf_h264_sei_ms_layout_ldsize = -1;
-static int hf_h264_sei_ms_layer_desc_coded_width = -1;
-static int hf_h264_sei_ms_layer_desc_coded_height = -1;
-static int hf_h264_sei_ms_layer_desc_display_width = -1;
-static int hf_h264_sei_ms_layer_desc_display_height = -1;
-static int hf_h264_sei_ms_layer_desc_bitrate = -1;
-static int hf_h264_sei_ms_layer_desc_frame_rate = -1;
-static int hf_h264_sei_ms_layer_desc_layer_type = -1;
-static int hf_h264_sei_ms_layer_desc_prid = -1;
-static int hf_h264_sei_ms_layer_desc_cb = -1;
+static int hf_h264_sei_ms_lpb;
+static int hf_h264_sei_ms_layout_p;
+static int hf_h264_sei_ms_layout_ldsize;
+static int hf_h264_sei_ms_layer_desc_coded_width;
+static int hf_h264_sei_ms_layer_desc_coded_height;
+static int hf_h264_sei_ms_layer_desc_display_width;
+static int hf_h264_sei_ms_layer_desc_display_height;
+static int hf_h264_sei_ms_layer_desc_bitrate;
+static int hf_h264_sei_ms_layer_desc_frame_rate;
+static int hf_h264_sei_ms_layer_desc_layer_type;
+static int hf_h264_sei_ms_layer_desc_prid;
+static int hf_h264_sei_ms_layer_desc_cb;
/* Microsoft Bitstream SEI */
-static int hf_h264_sei_ms_bitstream_ref_frame_cnt = -1;
-static int hf_h264_sei_ms_bitstream_num_nalus = -1;
-static int hf_h264_sei_iso_sec_info = -1;
+static int hf_h264_sei_ms_bitstream_ref_frame_cnt;
+static int hf_h264_sei_ms_bitstream_num_nalus;
+static int hf_h264_sei_iso_sec_info;
/* Microsoft Crop SEI */
-static int hf_h264_sei_ms_crop_num_data = -1;
-static int hf_h264_sei_ms_crop_info_type = -1;
-static int hf_h264_sei_ms_crop_confidence_level = -1;
-static int hf_h264_sei_ms_crop_frame_left_offset = -1;
-static int hf_h264_sei_ms_crop_frame_right_offset = -1;
-static int hf_h264_sei_ms_crop_frame_top_offset = -1;
-static int hf_h264_sei_ms_crop_frame_bottom_offset = -1;
+static int hf_h264_sei_ms_crop_num_data;
+static int hf_h264_sei_ms_crop_info_type;
+static int hf_h264_sei_ms_crop_confidence_level;
+static int hf_h264_sei_ms_crop_frame_left_offset;
+static int hf_h264_sei_ms_crop_frame_right_offset;
+static int hf_h264_sei_ms_crop_frame_top_offset;
+static int hf_h264_sei_ms_crop_frame_bottom_offset;
/* SVC NAL Header Extension Values Annex G.7.3.1.1 */
-static int hf_h264_nal_hdr_ext_svc = -1;
-static int hf_h264_nal_hdr_ext_i = -1;
-static int hf_h264_nal_hdr_ext_prid = -1;
-static int hf_h264_nal_hdr_ext_n = -1;
-static int hf_h264_nal_hdr_ext_did = -1;
-static int hf_h264_nal_hdr_ext_qid = -1;
-static int hf_h264_nal_hdr_ext_tid = -1;
-static int hf_h264_nal_hdr_ext_u = -1;
-static int hf_h264_nal_hdr_ext_d = -1;
-static int hf_h264_nal_hdr_ext_o = -1;
-static int hf_h264_nal_hdr_ext_rr = -1;
+static int hf_h264_nal_hdr_ext_svc;
+static int hf_h264_nal_hdr_ext_i;
+static int hf_h264_nal_hdr_ext_prid;
+static int hf_h264_nal_hdr_ext_n;
+static int hf_h264_nal_hdr_ext_did;
+static int hf_h264_nal_hdr_ext_qid;
+static int hf_h264_nal_hdr_ext_tid;
+static int hf_h264_nal_hdr_ext_u;
+static int hf_h264_nal_hdr_ext_d;
+static int hf_h264_nal_hdr_ext_o;
+static int hf_h264_nal_hdr_ext_rr;
/* PACSI Values */
-static int hf_h264_pacsi_x = -1;
-static int hf_h264_pacsi_y = -1;
-static int hf_h264_pacsi_t = -1;
-static int hf_h264_pacsi_a = -1;
-static int hf_h264_pacsi_p = -1;
-static int hf_h264_pacsi_c = -1;
-static int hf_h264_pacsi_s = -1;
-static int hf_h264_pacsi_e = -1;
-static int hf_h264_pacsi_tl0picidx = -1;
-static int hf_h264_pacsi_idrpicid = -1;
-static int hf_h264_pacsi_donc = -1;
+static int hf_h264_pacsi_x;
+static int hf_h264_pacsi_y;
+static int hf_h264_pacsi_t;
+static int hf_h264_pacsi_a;
+static int hf_h264_pacsi_p;
+static int hf_h264_pacsi_c;
+static int hf_h264_pacsi_s;
+static int hf_h264_pacsi_e;
+static int hf_h264_pacsi_tl0picidx;
+static int hf_h264_pacsi_idrpicid;
+static int hf_h264_pacsi_donc;
/* VUI parameters */
-static int hf_h264_aspect_ratio_info_present_flag = -1;
-static int hf_h264_aspect_ratio_idc = -1;
-static int hf_h264_sar_width = -1;
-static int hf_h264_sar_height = -1;
-static int hf_h264_overscan_info_present_flag = -1;
-static int hf_h264_overscan_appropriate_flag = -1;
-static int hf_h264_video_signal_type_present_flag = -1;
-static int hf_h264_video_format = -1;
-static int hf_h264_video_full_range_flag = -1;
-static int hf_h264_colour_description_present_flag = -1;
-static int hf_h264_colour_primaries = -1;
-static int hf_h264_transfer_characteristics = -1;
-static int hf_h264_matrix_coefficients = -1;
-static int hf_h264_chroma_loc_info_present_flag = -1;
-static int hf_h264_chroma_sample_loc_type_top_field = -1;
-static int hf_h264_chroma_sample_loc_type_bottom_field = -1;
-static int hf_h264_timing_info_present_flag = -1;
-static int hf_h264_num_units_in_tick = -1;
-static int hf_h264_time_scale = -1;
-static int hf_h264_fixed_frame_rate_flag = -1;
-static int hf_h264_nal_hrd_parameters_present_flag = -1;
-static int hf_h264_vcl_hrd_parameters_present_flag = -1;
-static int hf_h264_low_delay_hrd_flag = -1;
-static int hf_h264_pic_struct_present_flag = -1;
-static int hf_h264_bitstream_restriction_flag = -1;
-static int hf_h264_motion_vectors_over_pic_boundaries_flag = -1;
-static int hf_h264_max_bytes_per_pic_denom = -1;
-static int hf_h264_max_bits_per_mb_denom = -1;
-static int hf_h264_log2_max_mv_length_horizontal = -1;
-static int hf_h264_log2_max_mv_length_vertical = -1;
-static int hf_h264_num_reorder_frames = -1;
-static int hf_h264_max_dec_frame_buffering = -1;
-static int hf_h264_cpb_cnt_minus1 = -1;
-static int hf_h264_bit_rate_scale = -1;
-static int hf_h264_cpb_size_scale = -1;
-static int hf_h264_bit_rate_value_minus1 = -1;
-static int hf_h264_cpb_size_value_minus1 = -1;
-static int hf_h264_cbr_flag = -1;
-static int hf_h264_initial_cpb_removal_delay_length_minus1 = -1;
-static int hf_h264_cpb_removal_delay_length_minus1 = -1;
-static int hf_h264_dpb_output_delay_length_minus11 = -1;
-static int hf_h264_time_offset_length = -1;
-
-static int hf_h264_first_mb_in_slice = -1;
-static int hf_h264_slice_type = -1;
-static int hf_h264_slice_id = -1;
-static int hf_h264_payloadsize = -1;
-static int hf_h264_payloadtype = -1;
-/* static int hf_h264_frame_num = -1; */
+static int hf_h264_aspect_ratio_info_present_flag;
+static int hf_h264_aspect_ratio_idc;
+static int hf_h264_sar_width;
+static int hf_h264_sar_height;
+static int hf_h264_overscan_info_present_flag;
+static int hf_h264_overscan_appropriate_flag;
+static int hf_h264_video_signal_type_present_flag;
+static int hf_h264_video_format;
+static int hf_h264_video_full_range_flag;
+static int hf_h264_colour_description_present_flag;
+static int hf_h264_colour_primaries;
+static int hf_h264_transfer_characteristics;
+static int hf_h264_matrix_coefficients;
+static int hf_h264_chroma_loc_info_present_flag;
+static int hf_h264_chroma_sample_loc_type_top_field;
+static int hf_h264_chroma_sample_loc_type_bottom_field;
+static int hf_h264_timing_info_present_flag;
+static int hf_h264_num_units_in_tick;
+static int hf_h264_time_scale;
+static int hf_h264_fixed_frame_rate_flag;
+static int hf_h264_nal_hrd_parameters_present_flag;
+static int hf_h264_vcl_hrd_parameters_present_flag;
+static int hf_h264_low_delay_hrd_flag;
+static int hf_h264_pic_struct_present_flag;
+static int hf_h264_bitstream_restriction_flag;
+static int hf_h264_motion_vectors_over_pic_boundaries_flag;
+static int hf_h264_max_bytes_per_pic_denom;
+static int hf_h264_max_bits_per_mb_denom;
+static int hf_h264_log2_max_mv_length_horizontal;
+static int hf_h264_log2_max_mv_length_vertical;
+static int hf_h264_num_reorder_frames;
+static int hf_h264_max_dec_frame_buffering;
+static int hf_h264_cpb_cnt_minus1;
+static int hf_h264_bit_rate_scale;
+static int hf_h264_cpb_size_scale;
+static int hf_h264_bit_rate_value_minus1;
+static int hf_h264_cpb_size_value_minus1;
+static int hf_h264_cbr_flag;
+static int hf_h264_initial_cpb_removal_delay_length_minus1;
+static int hf_h264_cpb_removal_delay_length_minus1;
+static int hf_h264_dpb_output_delay_length_minus11;
+static int hf_h264_time_offset_length;
+
+static int hf_h264_first_mb_in_slice;
+static int hf_h264_slice_type;
+static int hf_h264_slice_id;
+static int hf_h264_payloadsize;
+static int hf_h264_payloadtype;
+/* static int hf_h264_frame_num; */
/* Initialize the subtree pointers */
-static int ett_h264 = -1;
-static int ett_h264_profile = -1;
-static int ett_h264_nal = -1;
-static int ett_h264_fua = -1;
-static int ett_h264_stream = -1;
-static int ett_h264_nal_unit = -1;
-static int ett_h264_par_profile = -1;
-static int ett_h264_par_AdditionalModesSupported = -1;
-static int ett_h264_par_ProfileIOP = -1;
-static int ett_h264_ms_layer_description = -1;
-static int ett_h264_ms_crop_data = -1;
-static int ett_h264_ni_mtap = -1;
-
-static expert_field ei_h264_undecoded = EI_INIT;
-static expert_field ei_h264_ms_layout_wrong_length = EI_INIT;
-static expert_field ei_h264_oversized_exp_golomb_code = EI_INIT;
-static expert_field ei_h264_bad_nal_length = EI_INIT;
-static expert_field ei_h264_nal_unit_type_reserved = EI_INIT;
-static expert_field ei_h264_nal_unit_type_unspecified = EI_INIT;
+static int ett_h264;
+static int ett_h264_profile;
+static int ett_h264_nal;
+static int ett_h264_fua;
+static int ett_h264_stream;
+static int ett_h264_nal_unit;
+static int ett_h264_par_profile;
+static int ett_h264_par_AdditionalModesSupported;
+static int ett_h264_par_ProfileIOP;
+static int ett_h264_ms_layer_description;
+static int ett_h264_ms_crop_data;
+static int ett_h264_ni_mtap;
+
+static expert_field ei_h264_undecoded;
+static expert_field ei_h264_ms_layout_wrong_length;
+static expert_field ei_h264_oversized_exp_golomb_code;
+static expert_field ei_h264_bad_nal_length;
+static expert_field ei_h264_nal_unit_type_reserved;
+static expert_field ei_h264_nal_unit_type_unspecified;
static dissector_handle_t h264_name_handle;
@@ -526,16 +527,16 @@ dissect_h264(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
/* byte_aligned( ) is specified as follows.
* - If the current position in the bitstream is on a byte boundary, i.e.,
* the next bit in the bitstream is the first bit in a byte,
- * the return value of byte_aligned( ) is equal to TRUE.
- * - Otherwise, the return value of byte_aligned( ) is equal to FALSE.
+ * the return value of byte_aligned( ) is equal to true.
+ * - Otherwise, the return value of byte_aligned( ) is equal to false.
*/
-static gboolean
+static bool
h264_byte_aligned(int bit_offset)
{
if (bit_offset&0x3)
- return FALSE;
+ return false;
- return TRUE;
+ return true;
}
/* Expect a tvb and a bit offset into the tvb
@@ -543,25 +544,25 @@ h264_byte_aligned(int bit_offset)
*/
#define cVALS(x) (const value_string*)(x)
-static guint32
-dissect_h264_exp_golomb_code(proto_tree *tree, int hf_index, tvbuff_t *tvb, gint *start_bit_offset, h264_golomb_descriptors descriptor)
-/*(tvbuff_t *tvb, gint *start_bit_offset) */
+static uint32_t
+dissect_h264_exp_golomb_code(proto_tree *tree, packet_info *pinfo, int hf_index, tvbuff_t *tvb, int *start_bit_offset, h264_golomb_descriptors descriptor)
+/*(tvbuff_t *tvb, int *start_bit_offset) */
{
proto_item *ti;
- gint leading_zero_bits, bit_offset, start_offset;
- guint32 codenum, mask, value, tmp;
- gint32 se_value = 0;
- gint b;
+ int leading_zero_bits, bit_offset, start_offset;
+ uint32_t codenum, mask, value, tmp;
+ int32_t se_value = 0;
+ int b;
char *str;
int bit;
int i;
- gboolean overflow = FALSE;
+ bool overflow = false;
header_field_info *hf_field = NULL;
start_offset = *start_bit_offset>>3;
- if (hf_index > -1) {
+ if (hf_index > 0) {
hf_field = proto_registrar_get_nth(hf_index);
}
@@ -580,7 +581,7 @@ dissect_h264_exp_golomb_code(proto_tree *tree, int hf_index, tvbuff_t *tvb, gint
bit_offset = *start_bit_offset;
/* prepare the string */
- str = (char *)wmem_alloc(wmem_packet_scope(), 256);
+ str = (char *)wmem_alloc(pinfo->pool, 256);
str[0] = '\0';
for (bit=0; bit<((int)(bit_offset&0x07)); bit++) {
if (bit && (!(bit%4))) {
@@ -681,7 +682,7 @@ dissect_h264_exp_golomb_code(proto_tree *tree, int hf_index, tvbuff_t *tvb, gint
}
}
} else {
- /* Only allow guint32 */
+ /* Only allow uint32_t */
DISSECTOR_ASSERT_NOT_REACHED();
}
}
@@ -702,34 +703,34 @@ dissect_h264_exp_golomb_code(proto_tree *tree, int hf_index, tvbuff_t *tvb, gint
integer with most significant bit written first.
*/
if (leading_zero_bits > 32) {
- overflow = TRUE;
- codenum = G_MAXUINT32;
+ overflow = true;
+ codenum = UINT32_MAX;
if (descriptor == H264_SE_V) {
value = tvb_get_bits32(tvb, bit_offset + 32*(leading_zero_bits / 32), leading_zero_bits % 32, ENC_BIG_ENDIAN);
if (value % 2) {
- se_value = G_MININT32;
+ se_value = INT32_MIN;
} else {
- se_value = G_MAXINT32;
+ se_value = INT32_MAX;
}
}
} else if (leading_zero_bits == 32) {
value = tvb_get_bits32(tvb, bit_offset, leading_zero_bits, ENC_BIG_ENDIAN);
- codenum = G_MAXUINT32;
+ codenum = UINT32_MAX;
/* Only one value doesn't overflow a 32 bit integer, but they're
- * different for unsigned and signed (because codenum G_MAXUINT32 maps
- * to G_MAXINT32 + 1 and G_MAXUINT32 + 1 maps to G_MININT32.) */
+ * different for unsigned and signed (because codenum UINT32_MAX maps
+ * to INT32_MAX + 1 and UINT32_MAX + 1 maps to INT32_MIN.) */
if (descriptor == H264_SE_V) {
if (value != 1) {
- overflow = TRUE;
+ overflow = true;
}
if (value % 2) {
- se_value = G_MININT32;
+ se_value = INT32_MIN;
} else {
- se_value = G_MAXINT32;
+ se_value = INT32_MAX;
}
} else {
if (value != 0) {
- overflow = TRUE;
+ overflow = true;
}
}
mask = 1U << 31;
@@ -877,19 +878,19 @@ dissect_h264_exp_golomb_code(proto_tree *tree, int hf_index, tvbuff_t *tvb, gint
/* This function is adapted to parsing NAL units from SDP data where the
* base64 coding may add extra padding
- * Returns TRUE if there is a non-zero bit in remaining of tvb (skipping the current bit)
- * FALSE if the rest of the tvb is zeros
+ * Returns true if there is a non-zero bit in remaining of tvb (skipping the current bit)
+ * false if the rest of the tvb is zeros
*/
-static gboolean
-more_rbsp_data(proto_tree *tree _U_, tvbuff_t *tvb, packet_info *pinfo _U_, gint bit_offset)
+static bool
+more_rbsp_data(proto_tree *tree _U_, tvbuff_t *tvb, packet_info *pinfo _U_, int bit_offset)
{
int current_bit_offset;
int byte_offset;
int tvb_length;
int significant_bits_mask;
int i;
- guint8 current_byte;
+ uint8_t current_byte;
/* XXX might not be the best way of doing things but:
* Search in the tvb for the first '1' bit
@@ -909,23 +910,23 @@ more_rbsp_data(proto_tree *tree _U_, tvbuff_t *tvb, packet_info *pinfo _U_, gint
tvb_length = tvb_reported_length(tvb);
for (i = byte_offset; i < tvb_length; i++) {
- current_byte = tvb_get_guint8(tvb, i);
+ current_byte = tvb_get_uint8(tvb, i);
if ((current_byte & significant_bits_mask) != 0) {
- return TRUE;
+ return true;
}
/* For the rest of bytes every bits are significant*/
significant_bits_mask = 0xFF;
}
- return FALSE;
+ return false;
}
static int
-dissect_h264_rbsp_trailing_bits(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint bit_offset)
+dissect_h264_rbsp_trailing_bits(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, int bit_offset)
{
- gint remaining_bits=0;
+ int remaining_bits=0;
proto_tree_add_bits_item(tree, hf_h264_rbsp_stop_bit, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
bit_offset++;
@@ -944,16 +945,16 @@ dissect_h264_rbsp_trailing_bits(proto_tree *tree, tvbuff_t *tvb, packet_info *pi
* XXX Just parse a few bytes
*/
static int
-dissect_h264_slice_header(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint bit_offset)
+dissect_h264_slice_header(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int bit_offset)
{
/* first_mb_in_slice 2 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_first_mb_in_slice, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_first_mb_in_slice, tvb, &bit_offset, H264_UE_V);
/* slice_type 2 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_slice_type, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_slice_type, tvb, &bit_offset, H264_UE_V);
/* pic_parameter_set_id 2 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_pic_parameter_set_id, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_pic_parameter_set_id, tvb, &bit_offset, H264_UE_V);
/* frame_num 2 u(v) */
/*
@@ -970,18 +971,18 @@ dissect_h264_slice_header(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U
* scaling_list( scalingList, sizeOfScalingList, useDefaultScalingMatrixFlag )
*/
static int
-dissect_h264_scaling_list(proto_tree *tree, tvbuff_t *tvb, gint bit_offset, int* hf_index_scalinglist,
- guint8 sizeOfScalingList)
+dissect_h264_scaling_list(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, int bit_offset, int* hf_index_scalinglist,
+ uint8_t sizeOfScalingList)
{
- guint8 j;
- gint32 lastScale = 8;
- gint32 nextScale = 8;
- gint32 delta_scale;
+ uint8_t j;
+ int32_t lastScale = 8;
+ int32_t nextScale = 8;
+ int32_t delta_scale;
for (j = 0; j < sizeOfScalingList; j++) {
if (nextScale != 0) {
/* delta_scale 0 | 1 se(v) */
- delta_scale = dissect_h264_exp_golomb_code(tree, hf_h264_delta_scale, tvb, &bit_offset, H264_SE_V);
+ delta_scale = dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_delta_scale, tvb, &bit_offset, H264_SE_V);
nextScale = ( lastScale + delta_scale + 256 ) % 256;
/* hf_index_usedefaultscalingmatrixflag = ( j == 0 && nextScale == 0 ); */
}
@@ -994,14 +995,14 @@ dissect_h264_scaling_list(proto_tree *tree, tvbuff_t *tvb, gint bit_offset, int*
/* E.1.2 HRD parameters syntax */
static int
-dissect_h264_hrd_parameters(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint bit_offset)
+dissect_h264_hrd_parameters(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int bit_offset)
{
- guint8 cpb_cnt_minus1;
+ uint8_t cpb_cnt_minus1;
int SchedSelIdx;
/* cpb_cnt_minus1 0 ue(v) */
- cpb_cnt_minus1 = dissect_h264_exp_golomb_code(tree, hf_h264_cpb_cnt_minus1, tvb, &bit_offset, H264_UE_V);
+ cpb_cnt_minus1 = dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_cpb_cnt_minus1, tvb, &bit_offset, H264_UE_V);
/* bit_rate_scale 0 u(4) */
proto_tree_add_bits_item(tree, hf_h264_bit_rate_scale, tvb, bit_offset, 4, ENC_BIG_ENDIAN);
@@ -1014,10 +1015,10 @@ dissect_h264_hrd_parameters(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo
for (SchedSelIdx = 0; SchedSelIdx <= cpb_cnt_minus1; SchedSelIdx++) {
/* bit_rate_value_minus1[ SchedSelIdx ] 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_bit_rate_value_minus1, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_bit_rate_value_minus1, tvb, &bit_offset, H264_UE_V);
/* cpb_size_value_minus1[ SchedSelIdx ] 0 ue(v)*/
- dissect_h264_exp_golomb_code(tree, hf_h264_cpb_size_value_minus1, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_cpb_size_value_minus1, tvb, &bit_offset, H264_UE_V);
/* cbr_flag[ SchedSelIdx ] 0 u(1) */
proto_tree_add_bits_item(tree, hf_h264_cbr_flag, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
@@ -1061,13 +1062,13 @@ static const value_string h264_video_format_vals[] = {
};
static int
-dissect_h264_vui_parameters(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint bit_offset)
+dissect_h264_vui_parameters(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int bit_offset)
{
- guint8 aspect_ratio_info_present_flag, aspect_ratio_idc, overscan_info_present_flag;
- guint8 video_signal_type_present_flag, colour_description_present_flag, chroma_loc_info_present_flag;
- guint8 timing_info_present_flag, nal_hrd_parameters_present_flag, vcl_hrd_parameters_present_flag;
- guint8 bitstream_restriction_flag;
+ uint8_t aspect_ratio_info_present_flag, aspect_ratio_idc, overscan_info_present_flag;
+ uint8_t video_signal_type_present_flag, colour_description_present_flag, chroma_loc_info_present_flag;
+ uint8_t timing_info_present_flag, nal_hrd_parameters_present_flag, vcl_hrd_parameters_present_flag;
+ uint8_t bitstream_restriction_flag;
/* vui_parameters( ) {
* aspect_ratio_info_present_flag 0 u(1)
@@ -1144,10 +1145,10 @@ dissect_h264_vui_parameters(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo,
if (chroma_loc_info_present_flag) {
/* chroma_sample_loc_type_top_field 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_chroma_sample_loc_type_top_field, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_chroma_sample_loc_type_top_field, tvb, &bit_offset, H264_UE_V);
/* chroma_sample_loc_type_bottom_field 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_chroma_sample_loc_type_bottom_field, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_chroma_sample_loc_type_bottom_field, tvb, &bit_offset, H264_UE_V);
}
/* timing_info_present_flag 0 u(1) */
@@ -1207,22 +1208,22 @@ dissect_h264_vui_parameters(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo,
bit_offset++;
/* max_bytes_per_pic_denom 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_max_bytes_per_pic_denom, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_max_bytes_per_pic_denom, tvb, &bit_offset, H264_UE_V);
/* max_bits_per_mb_denom 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_max_bits_per_mb_denom, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_max_bits_per_mb_denom, tvb, &bit_offset, H264_UE_V);
/* log2_max_mv_length_horizontal 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_log2_max_mv_length_horizontal, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_log2_max_mv_length_horizontal, tvb, &bit_offset, H264_UE_V);
/* log2_max_mv_length_vertical 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_log2_max_mv_length_vertical, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_log2_max_mv_length_vertical, tvb, &bit_offset, H264_UE_V);
/* num_reorder_frames 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_num_reorder_frames, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_num_reorder_frames, tvb, &bit_offset, H264_UE_V);
/* max_dec_frame_buffering 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_max_dec_frame_buffering, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_max_dec_frame_buffering, tvb, &bit_offset, H264_UE_V);
}
return bit_offset;
@@ -1234,9 +1235,9 @@ dissect_h264_profile(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
{
proto_item *item, *level_item;
proto_tree *h264_profile_tree;
- gint offset = 0;
- guint8 constraint_set3_flag;
- guint32 level_idc;
+ int offset = 0;
+ uint8_t constraint_set3_flag;
+ uint32_t level_idc;
item = proto_tree_add_item(tree, hf_h264_profile, tvb, offset, -1, ENC_NA);
h264_profile_tree = proto_item_add_subtree(item, ett_h264_profile);
@@ -1244,7 +1245,7 @@ dissect_h264_profile(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
proto_tree_add_item(h264_profile_tree, hf_h264_profile_idc, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
- constraint_set3_flag = (tvb_get_guint8(tvb, offset)&0x10)>>4;
+ constraint_set3_flag = (tvb_get_uint8(tvb, offset)&0x10)>>4;
proto_tree_add_item(h264_profile_tree, hf_h264_constraint_set0_flag, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(h264_profile_tree, hf_h264_constraint_set1_flag, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(h264_profile_tree, hf_h264_constraint_set2_flag, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -1261,7 +1262,7 @@ dissect_h264_profile(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
* shall be set equal to 0.
*/
- level_idc = tvb_get_guint8(tvb, offset);
+ level_idc = tvb_get_uint8(tvb, offset);
level_item = proto_tree_add_item(h264_profile_tree, hf_h264_level_idc, tvb, offset, 1, ENC_BIG_ENDIAN);
if ((level_idc == 11) && (constraint_set3_flag == 1)) {
proto_item_append_text(level_item," [Level 1b (128kb/s)]");
@@ -1299,17 +1300,17 @@ dissect_h265_unescap_nal_unit(tvbuff_t *tvb, packet_info *pinfo, int offset)
int length = tvb_reported_length_remaining(tvb, offset);
int NumBytesInRBSP = 0;
int i;
- gchar *buff;
+ char *buff;
- buff = (gchar *)wmem_alloc(pinfo->pool, length);
+ buff = (char *)wmem_alloc(pinfo->pool, length);
for (i = 0; i < length; i++) {
if ((i + 2 < length) && (tvb_get_ntoh24(tvb, offset) == 0x000003)) {
- buff[NumBytesInRBSP++] = tvb_get_guint8(tvb, offset);
- buff[NumBytesInRBSP++] = tvb_get_guint8(tvb, offset+1);
+ buff[NumBytesInRBSP++] = tvb_get_uint8(tvb, offset);
+ buff[NumBytesInRBSP++] = tvb_get_uint8(tvb, offset+1);
i += 2;
offset+=3;
} else {
- buff[ NumBytesInRBSP++] = tvb_get_guint8(tvb, offset);
+ buff[ NumBytesInRBSP++] = tvb_get_uint8(tvb, offset);
offset++;
}
}
@@ -1326,9 +1327,9 @@ dissect_h265_unescap_nal_unit(tvbuff_t *tvb, packet_info *pinfo, int offset)
*/
static void
-dissect_h264_slice_layer_without_partitioning_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint offset)
+dissect_h264_slice_layer_without_partitioning_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int offset)
{
- gint bit_offset;
+ int bit_offset;
bit_offset = offset <<3;
@@ -1345,9 +1346,9 @@ dissect_h264_slice_layer_without_partitioning_rbsp(proto_tree *tree, tvbuff_t *t
* slice_data_partition_a_layer_rbsp( )
*/
static void
-dissect_h264_slice_data_partition_a_layer_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset)
+dissect_h264_slice_data_partition_a_layer_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int offset)
{
- gint bit_offset;
+ int bit_offset;
bit_offset = offset <<3;
@@ -1355,7 +1356,7 @@ dissect_h264_slice_data_partition_a_layer_rbsp(proto_tree *tree, tvbuff_t *tvb,
bit_offset = dissect_h264_slice_header(tree, tvb, pinfo, bit_offset);
/* slice_id All ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_slice_id, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_slice_id, tvb, &bit_offset, H264_UE_V);
proto_tree_add_expert(tree, pinfo, &ei_h264_undecoded, tvb, bit_offset>>3, -1);
return;
/* slice_data( ) * only category 2 parts of slice_data( ) syntax * 2*/
@@ -1367,14 +1368,14 @@ dissect_h264_slice_data_partition_a_layer_rbsp(proto_tree *tree, tvbuff_t *tvb,
* slice_data_partition_b_layer_rbsp(
*/
static void
-dissect_h264_slice_data_partition_b_layer_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset)
+dissect_h264_slice_data_partition_b_layer_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int offset)
{
- gint bit_offset;
+ int bit_offset;
bit_offset = offset <<3;
/* slice_id All ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_slice_id, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_slice_id, tvb, &bit_offset, H264_UE_V);
/* if (redundant_pic_cnt_present_flag) */
/* redundant_pic_cnt All ue(v) */
/* slice_data( ) * only category 3 parts of slice_data( ) syntax * 3 */
@@ -1388,14 +1389,14 @@ dissect_h264_slice_data_partition_b_layer_rbsp(proto_tree *tree, tvbuff_t *tvb,
* slice_data_partition_c_layer_rbsp( )
*/
static void
-dissect_h264_slice_data_partition_c_layer_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset)
+dissect_h264_slice_data_partition_c_layer_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int offset)
{
- gint bit_offset;
+ int bit_offset;
bit_offset = offset <<3;
/* slice_id All ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_slice_id, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_slice_id, tvb, &bit_offset, H264_UE_V);
/* if (redundant_pic_cnt_present_flag) */
/* redundant_pic_cnt All ue(v) */
/* slice_data( ) * only category 4 parts of slice_data( ) syntax * 4 */
@@ -1406,14 +1407,14 @@ dissect_h264_slice_data_partition_c_layer_rbsp(proto_tree *tree, tvbuff_t *tvb,
/* D.1.6 User data unregistered SEI message syntax */
static int
-h264_user_data_unregistered(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint bit_offset, guint32 payloadSize)
+h264_user_data_unregistered(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, int bit_offset, uint32_t payloadSize)
{
- guint8 i;
- guint8 ld_size;
- guint8 p_flag;
- guint8 desc =0;
- guint8 num_crops;
- gint offset = bit_offset >> 3;
+ uint8_t i;
+ uint8_t ld_size;
+ uint8_t p_flag;
+ uint8_t desc =0;
+ uint8_t num_crops;
+ int offset = bit_offset >> 3;
proto_item *item;
proto_item *uuid_item;
proto_tree *h264_ms_layer_desc_tree;
@@ -1435,7 +1436,7 @@ h264_user_data_unregistered(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo
/* Microsoft MS-H264PF Specification */
if ( memcmp(&guid, &(ms_guids[MS_LAYOUT]), sizeof(e_guid_t)) == 0)
{
- col_append_fstr(pinfo->cinfo, COL_INFO, ":MS_Layout");
+ col_append_str(pinfo->cinfo, COL_INFO, ":MS_Layout");
proto_item_append_text(uuid_item," - Microsoft Stream Layout SEI Message");
/* Loop through the layer presence bytes 0-7 */
for (i = 0; i < 8 ; i++)
@@ -1444,12 +1445,12 @@ h264_user_data_unregistered(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo
proto_item_append_text (item, " PRID %2d - %2d", (i+1)*8-1, i*8);
offset++;
}
- p_flag = tvb_get_guint8 (tvb, offset);
+ p_flag = tvb_get_uint8 (tvb, offset);
proto_tree_add_item (tree, hf_h264_sei_ms_layout_p, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
if (p_flag == 1)
{
- ld_size = tvb_get_guint8 (tvb, offset);
+ ld_size = tvb_get_uint8 (tvb, offset);
proto_tree_add_item (tree, hf_h264_sei_ms_layout_ldsize, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
/* MS Errata - Microsoft seems to be setting the LD size to 16 but then including 2 layer descriptions which should be 32
@@ -1481,9 +1482,9 @@ h264_user_data_unregistered(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo
}
else if ( memcmp(&guid, &(ms_guids[MS_CROPPING]), sizeof(e_guid_t)) == 0)
{
- col_append_fstr(pinfo->cinfo, COL_INFO, ":MS_Cropping");
+ col_append_str(pinfo->cinfo, COL_INFO, ":MS_Cropping");
proto_item_append_text(uuid_item," - Microsoft Cropping Info SEI Message");
- num_crops = tvb_get_guint8 (tvb, offset);
+ num_crops = tvb_get_uint8 (tvb, offset);
proto_tree_add_item (tree, hf_h264_sei_ms_crop_num_data, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
proto_tree_add_item (tree, hf_h264_sei_ms_crop_info_type, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -1502,7 +1503,7 @@ h264_user_data_unregistered(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo
}
else if ( memcmp(&guid, &(ms_guids[MS_BITSTREAM]), sizeof(e_guid_t)) == 0)
{
- col_append_fstr(pinfo->cinfo, COL_INFO, ":MS_Bitstream");
+ col_append_str(pinfo->cinfo, COL_INFO, ":MS_Bitstream");
proto_item_append_text(uuid_item," - Microsoft Bitstream Info SEI Message");
proto_tree_add_item (tree, hf_h264_sei_ms_bitstream_ref_frame_cnt, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
@@ -1570,7 +1571,7 @@ static const value_string h264_sei_payload_vals[] = {
};
static int
-h264_sei_payload(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint bit_offset, guint32 payloadType, guint32 payloadSize)
+h264_sei_payload(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, int bit_offset, uint32_t payloadType, uint32_t payloadSize)
{
/* sei_payload( payloadType, payloadSize ) { C Descriptor */
if (payloadType == 0) {
@@ -1645,12 +1646,12 @@ reserved_sei_message( payloadSize ) 5
/*
* 7.3.2.3.1 Supplemental enhancement information message syntax
*/
-static gint
-dissect_h264_sei_message(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint bit_offset)
+static int
+dissect_h264_sei_message(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int bit_offset)
{
/* sei_message( ) { C Descriptor */
- guint32 payloadType = 0, payloadSize;
- gint start_bit_offset, length;
+ uint32_t payloadType = 0, payloadSize;
+ int start_bit_offset, length;
start_bit_offset = bit_offset;
@@ -1692,9 +1693,9 @@ dissect_h264_sei_message(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gi
* sei_rbsp( )
*/
static int
-dissect_h264_sei_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset)
+dissect_h264_sei_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, int offset)
{
- gint bit_offset;
+ int bit_offset;
bit_offset = offset <<3;
/* do */
@@ -1703,7 +1704,7 @@ dissect_h264_sei_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, g
/* while (more_rbsp_data( ))
* If there is more data in an RBSP before rbsp_trailing_bits( ),
- * the return value of more_rbsp_data( ) is equal to TRUE.
+ * the return value of more_rbsp_data( ) is equal to true.
*/
/* rbsp_trailing_bits( ) 5 */
if (tvb_reported_length_remaining (tvb, bit_offset >> 3) != 0 || (bit_offset & 0x7) != 0)
@@ -1716,25 +1717,25 @@ dissect_h264_sei_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, g
/* Ref 7.3.2.1 Sequence parameter set RBSP syntax */
static int
-dissect_h264_seq_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint offset)
+dissect_h264_seq_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int offset)
{
proto_item *level_item;
- gint bit_offset;
- guint8 constraint_set3_flag;
- guint32 level_idc;
-
- gint i;
- guint8 profile_idc, chroma_format_idc, frame_mbs_only_flag, frame_cropping_flag;
- guint8 pic_order_cnt_type, vui_parameters_present_flag, num_ref_frames_in_pic_order_cnt_cycle;
- guint8 seq_scaling_matrix_present_flag, seq_scaling_list_present_flag;
+ int bit_offset;
+ uint8_t constraint_set3_flag;
+ uint32_t level_idc;
+
+ int i;
+ uint8_t profile_idc, chroma_format_idc, frame_mbs_only_flag, frame_cropping_flag;
+ uint8_t pic_order_cnt_type, vui_parameters_present_flag, num_ref_frames_in_pic_order_cnt_cycle;
+ uint8_t seq_scaling_matrix_present_flag, seq_scaling_list_present_flag;
int ScalingList4x4[6][16], ScalingList8x8[2][64];
/* profile_idc 0 u(8) */
- profile_idc = tvb_get_guint8(tvb, offset);
+ profile_idc = tvb_get_uint8(tvb, offset);
proto_tree_add_item(tree, hf_h264_profile_idc, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
- constraint_set3_flag = (tvb_get_guint8(tvb, offset)&0x10)>>4;
+ constraint_set3_flag = (tvb_get_uint8(tvb, offset)&0x10)>>4;
/* constraint_set0_flag 0 u(1) */
proto_tree_add_item(tree, hf_h264_constraint_set0_flag, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -1758,7 +1759,7 @@ dissect_h264_seq_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info
offset++;
/* level_idc 0 u(8) */
- level_idc = tvb_get_guint8(tvb, offset);
+ level_idc = tvb_get_uint8(tvb, offset);
level_item = proto_tree_add_item(tree, hf_h264_level_idc, tvb, offset, 1, ENC_BIG_ENDIAN);
if ((level_idc == 11) && (constraint_set3_flag == 1)) {
proto_item_append_text(level_item,"[Level 1b]");
@@ -1771,7 +1772,7 @@ dissect_h264_seq_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info
* The parsing process for this descriptor is specified in subclause 9.1.
*/
bit_offset = offset<<3;
- dissect_h264_exp_golomb_code(tree, hf_h264_seq_parameter_set_id, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_seq_parameter_set_id, tvb, &bit_offset, H264_UE_V);
if ((profile_idc == 100) || (profile_idc == 110) ||
@@ -1782,7 +1783,7 @@ dissect_h264_seq_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info
{
/* chroma_format_idc 0 ue(v) */
- chroma_format_idc = dissect_h264_exp_golomb_code(tree, hf_h264_chroma_format_idc, tvb, &bit_offset, H264_UE_V);
+ chroma_format_idc = dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_chroma_format_idc, tvb, &bit_offset, H264_UE_V);
if (chroma_format_idc == 3) {
/* residual_colour_transform_flag 0 u(1) */
proto_tree_add_bits_item(tree, hf_h264_residual_colour_transform_flag, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
@@ -1790,10 +1791,10 @@ dissect_h264_seq_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info
}
/* bit_depth_luma_minus8 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_bit_depth_luma_minus8, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_bit_depth_luma_minus8, tvb, &bit_offset, H264_UE_V);
/* bit_depth_chroma_minus8 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_bit_depth_chroma_minus8, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_bit_depth_chroma_minus8, tvb, &bit_offset, H264_UE_V);
/* qpprime_y_zero_transform_bypass_flag 0 u(1) */
proto_tree_add_bits_item(tree, hf_h264_qpprime_y_zero_transform_bypass_flag, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
@@ -1812,9 +1813,9 @@ dissect_h264_seq_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info
bit_offset++;
if (seq_scaling_list_present_flag) {
if (i < 6)
- bit_offset = dissect_h264_scaling_list(tree, tvb, bit_offset, ScalingList4x4[ i ], 16);
+ bit_offset = dissect_h264_scaling_list(tree, pinfo, tvb, bit_offset, ScalingList4x4[ i ], 16);
else
- bit_offset = dissect_h264_scaling_list(tree, tvb, bit_offset, ScalingList8x8[ i - 6 ], 64);
+ bit_offset = dissect_h264_scaling_list(tree, pinfo, tvb, bit_offset, ScalingList8x8[ i - 6 ], 64);
}
}
}
@@ -1822,44 +1823,44 @@ dissect_h264_seq_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info
}
/* log2_max_frame_num_minus4 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_log2_max_frame_num_minus4, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_log2_max_frame_num_minus4, tvb, &bit_offset, H264_UE_V);
/* pic_order_cnt_type 0 ue(v) */
- pic_order_cnt_type = dissect_h264_exp_golomb_code(tree, hf_h264_pic_order_cnt_type, tvb, &bit_offset, H264_UE_V);
+ pic_order_cnt_type = dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_pic_order_cnt_type, tvb, &bit_offset, H264_UE_V);
if (pic_order_cnt_type == 0) {
/* log2_max_pic_order_cnt_lsb_minus4 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_log2_max_pic_order_cnt_lsb_minus4, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_log2_max_pic_order_cnt_lsb_minus4, tvb, &bit_offset, H264_UE_V);
} else if (pic_order_cnt_type == 1) {
/* delta_pic_order_always_zero_flag 0 u(1) */
proto_tree_add_bits_item(tree, hf_h264_delta_pic_order_always_zero_flag, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
bit_offset++;
/* offset_for_non_ref_pic 0 se(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_offset_for_non_ref_pic, tvb, &bit_offset, H264_SE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_offset_for_non_ref_pic, tvb, &bit_offset, H264_SE_V);
/* offset_for_top_to_bottom_field 0 se(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_offset_for_top_to_bottom_field, tvb, &bit_offset, H264_SE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_offset_for_top_to_bottom_field, tvb, &bit_offset, H264_SE_V);
/* num_ref_frames_in_pic_order_cnt_cycle 0 ue(v) */
- num_ref_frames_in_pic_order_cnt_cycle = dissect_h264_exp_golomb_code(tree, hf_h264_num_ref_frames_in_pic_order_cnt_cycle, tvb, &bit_offset, H264_UE_V);
+ num_ref_frames_in_pic_order_cnt_cycle = dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_num_ref_frames_in_pic_order_cnt_cycle, tvb, &bit_offset, H264_UE_V);
for (i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++) {
/*offset_for_ref_frame[ i ] 0 se(v)*/
- dissect_h264_exp_golomb_code(tree, hf_h264_offset_for_ref_frame, tvb, &bit_offset, H264_SE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_offset_for_ref_frame, tvb, &bit_offset, H264_SE_V);
}
}
/* num_ref_frames 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_num_ref_frames, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_num_ref_frames, tvb, &bit_offset, H264_UE_V);
/* gaps_in_frame_num_value_allowed_flag 0 u(1) */
proto_tree_add_bits_item(tree, hf_h264_gaps_in_frame_num_value_allowed_flag, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
bit_offset++;
/* pic_width_in_mbs_minus1 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_pic_width_in_mbs_minus1, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_pic_width_in_mbs_minus1, tvb, &bit_offset, H264_UE_V);
/* pic_height_in_map_units_minus1 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_pic_height_in_map_units_minus1, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_pic_height_in_map_units_minus1, tvb, &bit_offset, H264_UE_V);
/* frame_mbs_only_flag 0 u(1) */
frame_mbs_only_flag = tvb_get_bits8(tvb, bit_offset, 1);
@@ -1882,10 +1883,10 @@ dissect_h264_seq_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info
if (frame_cropping_flag) {
/* frame_crop_left_offset 0 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_frame_crop_left_offset, tvb, &bit_offset, H264_UE_V);
- dissect_h264_exp_golomb_code(tree, hf_h264_frame_crop_right_offset, tvb, &bit_offset, H264_UE_V);
- dissect_h264_exp_golomb_code(tree, hf_h264_frame_crop_top_offset, tvb, &bit_offset, H264_UE_V);
- dissect_h264_exp_golomb_code(tree, hf_h264_frame_crop_bottom_offset, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_frame_crop_left_offset, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_frame_crop_right_offset, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_frame_crop_top_offset, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_frame_crop_bottom_offset, tvb, &bit_offset, H264_UE_V);
}
@@ -1909,18 +1910,18 @@ dissect_h264_seq_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info
/* 7.3.2.2 Picture parameter set RBSP syntax */
static void
-dissect_h264_pic_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint offset)
+dissect_h264_pic_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int offset)
{
- gint bit_offset;
- guint32 num_slice_groups_minus1, pic_scaling_matrix_present_flag;
+ int bit_offset;
+ uint32_t num_slice_groups_minus1, pic_scaling_matrix_present_flag;
bit_offset = offset<<3;
/* pic_parameter_set_id 1 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_pic_parameter_set_id, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_pic_parameter_set_id, tvb, &bit_offset, H264_UE_V);
/* seq_parameter_set_id 1 ue(v) */
- dissect_h264_exp_golomb_code(tree, hf_h264_seq_parameter_set_id, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_seq_parameter_set_id, tvb, &bit_offset, H264_UE_V);
/* entropy_coding_mode_flag 1 u(1) */
proto_tree_add_bits_item(tree, hf_h264_entropy_coding_mode_flag, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
@@ -1931,11 +1932,11 @@ dissect_h264_pic_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info
bit_offset++;
/* num_slice_groups_minus1 1 ue(v)*/
- num_slice_groups_minus1 = dissect_h264_exp_golomb_code(tree, hf_h264_num_slice_groups_minus1, tvb, &bit_offset, H264_UE_V);
+ num_slice_groups_minus1 = dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_num_slice_groups_minus1, tvb, &bit_offset, H264_UE_V);
if (num_slice_groups_minus1 > 0) {
/* slice_group_map_type 1 ue(v)*/
- dissect_h264_exp_golomb_code(tree, hf_h264_slice_group_map_type, tvb, &bit_offset, H264_UE_V);
- /* slice_group_map_type = dissect_h264_exp_golomb_code(tree, hf_h264_slice_group_map_type, tvb, &bit_offset, H264_UE_V);*/
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_slice_group_map_type, tvb, &bit_offset, H264_UE_V);
+ /* slice_group_map_type = dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_slice_group_map_type, tvb, &bit_offset, H264_UE_V);*/
/* if (slice_group_map_type == 0)*/
/* for (iGroup = 0; iGroup <= num_slice_groups_minus1; iGroup++)*/
/* run_length_minus1[ iGroup ] 1 ue(v)*/
@@ -1959,10 +1960,10 @@ dissect_h264_pic_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info
return;
}
/* num_ref_idx_l0_active_minus1 1 ue(v)*/
- dissect_h264_exp_golomb_code(tree, hf_h264_num_ref_idx_l0_active_minus1, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_num_ref_idx_l0_active_minus1, tvb, &bit_offset, H264_UE_V);
/* num_ref_idx_l1_active_minus1 1 ue(v)*/
- dissect_h264_exp_golomb_code(tree, hf_h264_num_ref_idx_l1_active_minus1, tvb, &bit_offset, H264_UE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_num_ref_idx_l1_active_minus1, tvb, &bit_offset, H264_UE_V);
/* weighted_pred_flag 1 u(1)*/
proto_tree_add_bits_item(tree, hf_h264_weighted_pred_flag, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
@@ -1973,13 +1974,13 @@ dissect_h264_pic_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info
bit_offset= bit_offset+2;
/* pic_init_qp_minus26 * relative to 26 * 1 se(v)*/
- dissect_h264_exp_golomb_code(tree, hf_h264_pic_init_qp_minus26, tvb, &bit_offset, H264_SE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_pic_init_qp_minus26, tvb, &bit_offset, H264_SE_V);
/* pic_init_qs_minus26 * relative to 26 * 1 se(v)*/
- dissect_h264_exp_golomb_code(tree, hf_h264_pic_init_qs_minus26, tvb, &bit_offset, H264_SE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_pic_init_qs_minus26, tvb, &bit_offset, H264_SE_V);
/* chroma_qp_index_offset 1 se(v)*/
- dissect_h264_exp_golomb_code(tree, hf_h264_chroma_qp_index_offset, tvb, &bit_offset, H264_SE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_chroma_qp_index_offset, tvb, &bit_offset, H264_SE_V);
/* deblocking_filter_control_present_flag 1 u(1)*/
proto_tree_add_bits_item(tree, hf_h264_deblocking_filter_control_present_flag, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
@@ -2017,7 +2018,7 @@ dissect_h264_pic_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info
}
/* second_chroma_qp_index_offset 1 se(v)*/
- dissect_h264_exp_golomb_code(tree, hf_h264_second_chroma_qp_index_offset, tvb, &bit_offset, H264_SE_V);
+ dissect_h264_exp_golomb_code(tree, pinfo, hf_h264_second_chroma_qp_index_offset, tvb, &bit_offset, H264_SE_V);
}
dissect_h264_rbsp_trailing_bits(tree, tvb, pinfo, bit_offset);
}
@@ -2027,9 +2028,9 @@ dissect_h264_pic_parameter_set_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info
* access_unit_delimiter_rbsp( )
*/
static void
-dissect_h264_access_unit_delimiter_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset)
+dissect_h264_access_unit_delimiter_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, int offset)
{
- gint bit_offset = offset << 3;
+ int bit_offset = offset << 3;
/* primary_pic_type 6 u(3) */
proto_tree_add_bits_item(tree, hf_h264_primary_pic_type, tvb, bit_offset, 3, ENC_BIG_ENDIAN);
bit_offset += 3;
@@ -2043,7 +2044,7 @@ dissect_h264_access_unit_delimiter_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_
* end_of_seq_rbsp( ) {}
*/
static void
-dissect_h264_end_of_seq_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset)
+dissect_h264_end_of_seq_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, int offset)
{
proto_tree_add_expert(tree, pinfo, &ei_h264_undecoded, tvb, offset, -1);
}
@@ -2053,7 +2054,7 @@ dissect_h264_end_of_seq_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo
* end_of_stream_rbsp( ) {}
*/
static void
-dissect_h264_end_of_stream_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset)
+dissect_h264_end_of_stream_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, int offset)
{
proto_tree_add_expert(tree, pinfo, &ei_h264_undecoded, tvb, offset, -1);
}
@@ -2063,7 +2064,7 @@ dissect_h264_end_of_stream_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pi
* filler_data_rbsp( )
*/
static void
-dissect_h264_filler_data_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset)
+dissect_h264_filler_data_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, int offset)
{
/* while (next_bits( 8 ) == 0xFF) */
/* ff_byte * equal to 0xFF * 9 f(8) */
@@ -2076,7 +2077,7 @@ dissect_h264_filler_data_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinf
* seq_parameter_set_extension_rbsp( )
*/
static void
-dissect_h264_seq_parameter_set_extension_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset)
+dissect_h264_seq_parameter_set_extension_rbsp(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, int offset)
{
/* seq_parameter_set_id 10 ue(v) */
/* aux_format_idc 10 ue(v) */
@@ -2092,8 +2093,8 @@ dissect_h264_seq_parameter_set_extension_rbsp(proto_tree *tree, tvbuff_t *tvb, p
}
/* RFC 6190 Section: 1.1.3 - NAL Unit Header Extension - H.264 Annex G*/
-static gint
-dissect_h264_svc_nal_header_extension(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset)
+static int
+dissect_h264_svc_nal_header_extension(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, int offset)
{
proto_tree_add_item(tree, hf_h264_nal_hdr_ext_svc, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_h264_nal_hdr_ext_i, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -2113,9 +2114,9 @@ dissect_h264_svc_nal_header_extension(proto_tree *tree, tvbuff_t *tvb, packet_in
}
/* H.264 Annex G Prefix NAL Unit */
-static int dissect_h264_prefix(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint offset)
+static int dissect_h264_prefix(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int offset)
{
- guint8 svc_extension_flag;
+ uint8_t svc_extension_flag;
svc_extension_flag = tvb_get_bits8(tvb, offset << 3, 1);
if (svc_extension_flag)
@@ -2135,17 +2136,17 @@ static int dissect_h264_prefix(proto_tree *tree, tvbuff_t *tvb, packet_info *pin
/* RFC 6190 Section: 4.9 - Payload Content Scalability Information (PACSI) */
static void
// NOLINTNEXTLINE(misc-no-recursion)
-dissect_h264_pacsi(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint offset)
+dissect_h264_pacsi(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int offset)
{
- gint8 pacsi_flags;
- guint16 nal_unit_size;
+ int8_t pacsi_flags;
+ uint16_t nal_unit_size;
tvbuff_t *nalu_tvb;
- gboolean error = FALSE;
- gboolean contains_sei = FALSE;
+ bool error = false;
+ bool contains_sei = false;
offset = dissect_h264_svc_nal_header_extension(tree, tvb, pinfo, offset);
- pacsi_flags = tvb_get_guint8(tvb, offset);
+ pacsi_flags = tvb_get_uint8(tvb, offset);
proto_tree_add_item(tree, hf_h264_pacsi_x, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_h264_pacsi_y, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_h264_pacsi_t, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -2170,8 +2171,8 @@ dissect_h264_pacsi(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint off
}
if (tvb_reported_length_remaining(tvb, offset) > 0)
{
- contains_sei = TRUE;
- col_append_fstr(pinfo->cinfo, COL_INFO, "(");
+ contains_sei = true;
+ col_append_str(pinfo->cinfo, COL_INFO, "(");
}
/* Decode the SEI units that are in the packet. */
@@ -2184,7 +2185,7 @@ dissect_h264_pacsi(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint off
if (nal_unit_size == 0 || nal_unit_size > tvb_reported_length_remaining(tvb, offset))
{
proto_tree_add_expert(tree, pinfo, &ei_h264_bad_nal_length, tvb, offset-2, 2);
- error = TRUE;
+ error = true;
}
else
{
@@ -2195,9 +2196,9 @@ dissect_h264_pacsi(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint off
offset += nal_unit_size;
}
}
- if (contains_sei == TRUE)
+ if (contains_sei == true)
{
- col_append_fstr(pinfo->cinfo, COL_INFO, ")");
+ col_append_str(pinfo->cinfo, COL_INFO, ")");
}
}
@@ -2206,9 +2207,9 @@ dissect_h264_pacsi(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint off
*/
static void
// NOLINTNEXTLINE(misc-no-recursion)
-dissect_h264_stap(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset, gint8 nal_type)
+dissect_h264_stap(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, int offset, int8_t nal_type)
{
- guint16 nal_unit_size;
+ uint16_t nal_unit_size;
tvbuff_t *nalu_tvb;
proto_item *item;
@@ -2230,7 +2231,7 @@ dissect_h264_stap(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint
if (nal_unit_size == 0 || tvb_reported_length_remaining(tvb, offset) < nal_unit_size)
{
/* Throw an exception if the size is wrong and don't try to decode the rest of the packet. */
- col_append_fstr(pinfo->cinfo, COL_INFO, " [Bad NAL Length]");
+ col_append_str(pinfo->cinfo, COL_INFO, " [Bad NAL Length]");
item = proto_tree_add_expert (tree, pinfo, &ei_h264_bad_nal_length, tvb, offset-2, 2);
proto_item_append_text(item, " Size of %d, Remaining %d",
nal_unit_size, tvb_reported_length_remaining(tvb, offset));
@@ -2252,10 +2253,10 @@ dissect_h264_stap(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint
*/
static void
// NOLINTNEXTLINE(misc-no-recursion)
-dissect_h264_mtap(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset, gint8 nal_type)
+dissect_h264_mtap(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, int offset, int8_t nal_type)
{
- gint size_offset;
- guint16 nal_unit_size;
+ int size_offset;
+ uint16_t nal_unit_size;
tvbuff_t *nalu_tvb;
proto_item *item;
@@ -2288,7 +2289,7 @@ dissect_h264_mtap(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint
if (nal_unit_size == 0 || tvb_reported_length_remaining(tvb, offset) < nal_unit_size)
{
/* Throw an exception if the size is wrong and don't try to decode the rest of the packet. */
- col_append_fstr(pinfo->cinfo, COL_INFO, " [Bad NAL Length]");
+ col_append_str(pinfo->cinfo, COL_INFO, " [Bad NAL Length]");
item = proto_tree_add_expert (tree, pinfo, &ei_h264_bad_nal_length, tvb, size_offset, 2);
proto_item_append_text(item, " Size of %d, Remaining %d",
nal_unit_size, tvb_reported_length_remaining(tvb, offset));
@@ -2310,15 +2311,15 @@ dissect_h264_mtap(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint
*/
static void
// NOLINTNEXTLINE(misc-no-recursion)
-dissect_h264_nalu_extension (proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset)
+dissect_h264_nalu_extension (proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, int offset)
{
- gint size_offset;
- guint16 nal_unit_size;
+ int size_offset;
+ uint16_t nal_unit_size;
tvbuff_t *nalu_tvb;
- guint8 subtype;
- guint8 j_flag;
- guint8 bit_offset = offset << 3;
- guint8 unit = 1;
+ uint8_t subtype;
+ uint8_t j_flag;
+ uint8_t bit_offset = offset << 3;
+ uint8_t unit = 1;
proto_item *item;
proto_tree *nimtap_tree;
@@ -2355,7 +2356,7 @@ dissect_h264_nalu_extension (proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo
if (nal_unit_size == 0 || tvb_reported_length_remaining(tvb, offset) < nal_unit_size)
{
/* Throw an exception if the size is wrong and don't try to decode the rest of the packet. */
- col_append_fstr(pinfo->cinfo, COL_INFO, " [Bad NAL Length]");
+ col_append_str(pinfo->cinfo, COL_INFO, " [Bad NAL Length]");
item = proto_tree_add_expert (nimtap_tree, pinfo, &ei_h264_bad_nal_length, tvb, size_offset, 2);
proto_item_append_text(item, " Size of %d, Remaining %d",
nal_unit_size, tvb_reported_length_remaining(tvb, offset));
@@ -2382,9 +2383,9 @@ dissect_h264_nal_unit(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
{
proto_item *item, *nal_item;
proto_tree *h264_nal_tree;
- gint offset = 0;
- guint8 nal_unit_type;
- guint32 dword;
+ int offset = 0;
+ uint8_t nal_unit_type;
+ uint32_t dword;
item = proto_tree_add_item(tree, hf_h264_nal_unit, tvb, offset, -1, ENC_NA);
h264_nal_tree = proto_item_add_subtree(item, ett_h264_nal_unit);
@@ -2404,7 +2405,7 @@ startover:
}
}
/* Ref: 7.3.1 NAL unit syntax */
- nal_unit_type = tvb_get_guint8(tvb, offset) & 0x1f;
+ nal_unit_type = tvb_get_uint8(tvb, offset) & 0x1f;
/* forbidden_zero_bit All f(1) */
proto_tree_add_item(h264_nal_tree, hf_h264_forbidden_zero_bit, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -2491,15 +2492,15 @@ dissect_h264_bytestream(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
proto_item *item;
tvbuff_t *next_tvb, *rbsp_tvb;
- gint offset = 0, end_offset;
- guint32 dword;
+ int offset = 0, end_offset;
+ uint32_t dword;
/* Look for the first start word. Assume byte aligned. */
while (1) {
if (tvb_reported_length(tvb) < 4) {
return 0;
}
- dword = tvb_get_guint32(tvb, offset, ENC_BIG_ENDIAN);
+ dword = tvb_get_uint32(tvb, offset, ENC_BIG_ENDIAN);
if ((dword >> 8) == 1 || dword == 1) {
break;
} else if (dword != 0) {
@@ -2513,25 +2514,25 @@ dissect_h264_bytestream(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
h264_tree = proto_item_add_subtree(item, ett_h264);
while (tvb_reported_length_remaining(tvb, offset)) {
- dword = tvb_get_guint32(tvb, offset, ENC_BIG_ENDIAN);
+ dword = tvb_get_uint32(tvb, offset, ENC_BIG_ENDIAN);
if ((dword >> 8) != 1) {
/* zero_byte */
offset++;
}
/* start_code_prefix_one_3bytes */
offset += 3;
- gint nal_length = tvb_reported_length_remaining(tvb, offset);
+ int nal_length = tvb_reported_length_remaining(tvb, offset);
/* Search for either \0\0\1 or \0\0\0\1:
* Find \0\0 and then check if \0\1 is in the next offset or
* the one after that. (Note none of this throws exceptions.)
*/
- end_offset = tvb_find_guint16(tvb, offset, -1, 0);
+ end_offset = tvb_find_uint16(tvb, offset, -1, 0);
while (end_offset != -1) {
- if (tvb_find_guint16(tvb, end_offset + 1, 3, 1) != -1) {
+ if (tvb_find_uint16(tvb, end_offset + 1, 3, 1) != -1) {
nal_length = end_offset - offset;
break;
}
- end_offset = tvb_find_guint16(tvb, end_offset + 1, -1, 0);
+ end_offset = tvb_find_uint16(tvb, end_offset + 1, -1, 0);
}
/* If end_offset is -1, we got to the end; assume this is the end
@@ -2558,14 +2559,14 @@ dissect_h264(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
int offset = 0;
proto_item *item;
proto_tree *h264_tree, *h264_nal_tree, *stream_tree, *fua_tree;
- guint8 type;
+ uint8_t type;
tvbuff_t *rbsp_tvb;
/* Make entries in Protocol column and Info column on summary display */
col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.264");
- type = tvb_get_guint8(tvb, offset)&0x1f;
+ type = tvb_get_uint8(tvb, offset)&0x1f;
col_append_fstr(pinfo->cinfo, COL_INFO, " %s",
val_to_str(type, h264_type_summary_values, "Unknown Type (%u)"));
@@ -2604,16 +2605,16 @@ dissect_h264(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
proto_tree_add_item(fua_tree, hf_h264_end_bit, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(fua_tree, hf_h264_forbidden_bit, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(fua_tree, hf_h264_nal_unit_type, tvb, offset, 1, ENC_BIG_ENDIAN);
- if ((tvb_get_guint8(tvb, offset)&0x80) == 0x80) {
- type = tvb_get_guint8(tvb, offset)&0x1f;
+ if ((tvb_get_uint8(tvb, offset)&0x80) == 0x80) {
+ type = tvb_get_uint8(tvb, offset)&0x1f;
col_append_fstr(pinfo->cinfo, COL_INFO, " Start:%s",
val_to_str(type, h264_type_summary_values, "Unknown Type (%u)"));
offset++;
}
else
{
- if ((tvb_get_guint8(tvb, offset)&0x40) == 0x40) {
- col_append_fstr(pinfo->cinfo, COL_INFO, " End");
+ if ((tvb_get_uint8(tvb, offset)&0x40) == 0x40) {
+ col_append_str(pinfo->cinfo, COL_INFO, " End");
}
return offset;
}
@@ -2762,8 +2763,8 @@ static int
dissect_h264_par_level(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_, void *data)
{
int offset = 0;
- guint16 lvl;
- const gchar *p;
+ uint16_t lvl;
+ const char *p;
asn1_ctx_t *actx;
/* Reject the packet if data is NULL */
@@ -2798,8 +2799,8 @@ dissect_h264_par_DecoderConfigurationInformation(tvbuff_t *tvb, packet_info *pin
}
typedef struct _h264_capability_t {
- const gchar *id;
- const gchar *name;
+ const char *id;
+ const char *name;
dissector_t content_pdu;
} h264_capability_t;
@@ -2826,7 +2827,7 @@ static h264_capability_t h264_capability_tab[] = {
{ NULL, NULL, NULL },
};
-static h264_capability_t *find_cap(const gchar *id) {
+static h264_capability_t *find_cap(const char *id) {
h264_capability_t *ftr = NULL;
h264_capability_t *f;
@@ -3796,7 +3797,7 @@ proto_register_h264(void)
},
{ &hf_h264_pacsi_tl0picidx,
{ "TL0PICIDX", "h264.pacsi.tl0picidx",
- FT_UINT8, BASE_DEC, NULL, 0xff,
+ FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
{ &hf_h264_pacsi_idrpicid,
@@ -3813,7 +3814,7 @@ proto_register_h264(void)
};
/* Setup protocol subtree array */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_h264,
&ett_h264_profile,
&ett_h264_nal,