aizvorski / h264bitstream

A complete set of functions to read and write H.264 video bitstreams, in particular to examine or modify headers.
GNU Lesser General Public License v2.1
713 stars 237 forks source link

[Error] - SPS that contains scaling lists #19

Closed juvasquezg closed 7 years ago

juvasquezg commented 7 years ago

Hi @aizvorski

I try to read SPS with scaling list but I get error when I run the program.

Segmentation fault (core dumped)

I use live555 to get h264 stream

My camera send first

sprop-parameter-sets=Z2QAKK2ECSZuIzSQgSTNxGaSECSZuIzSQgSTNxGaSECSZuIzSQgSTNxGaSEFTS69fX5P6/J9eutVCCppdevr8n9fk+vXWqtAUBf8uAqkAAADAAQAAAMCWYEAD6AABGUb3vheEQjU,aO48sA==

I run base64Decode and the result I pass it through h264bitstream and I get the error.

With other SPS without scaling list work good.

Thank you so much.

juvasquezg commented 7 years ago

Hi,

Excuse me,

the sps is:

sprop-parameter-sets=Z2QAKK2EBUViuKxUdCAqKxXFYqOhAVFYrisVHQgKisVxWKjoQFRWK4rFR0ICorFcVio6ECSFITk8nyfk/k/J8nm5s00IEkKQnJ5Pk/J/J+T5PNzZprQFAe2AqkAAAAMAQAAAJZgQAPoAAEZRve+F4RCNQA==,aO48sA==
juvasquezg commented 7 years ago

Hi,

I saved SPS binary file of.h264, the result is:

00000000  00 00 00 01 67 64 00 28 AD 84 05 45 62 B8 AC 54 74 20 2A 2B 15 C5 62 A3 A1 01 51 58 AE 2B 15 1D 08 0A 8A C5 ....gd.(...Eb..Tt *+..b...QX.+......
00000024  71 58 A8 E8 40 54 56 2B 8A C5 47 42 02 A2 B1 5C 56 2A 3A 10 24 85 21 39 3C 9F 27 E4 FE 4F C9 F2 79 B9 B3 4D qX..@TV+..GB...\V*:.$.!9<.'..O..y..M
00000048  08 12 42 90 9C 9E 4F 93 F2 7F 27 E4 F9 3C DC D9 A6 B4 05 01 ED 80 AA 40 00 00 03 00 40 00 00 25 98 10 00 FA ..B...O...'..<.........@....@..%....
0000006C  00 00 46 51 BD EF 85 E1 10 8D 40 00 00 00 00 00 00 00 00 00 00 00                                           ..FQ......@...........

I run

h264_analyze of.h264

The result

!! Found NAL at offset 4 (0x0004), size 115 (0x0073)
0.8: forbidden_zero_bit: 0
0.7: nal->nal_ref_idc: 3
0.5: nal->nal_unit_type: 7
1.8: sps->profile_idc: 100
2.8: sps->constraint_set0_flag: 0
2.7: sps->constraint_set1_flag: 0
2.6: sps->constraint_set2_flag: 0
2.5: sps->constraint_set3_flag: 0
2.4: sps->constraint_set4_flag: 0
2.3: sps->constraint_set5_flag: 0
2.2: reserved_zero_2bits: 0
3.8: sps->level_idc: 40
4.8: sps->seq_parameter_set_id: 0
4.7: sps->chroma_format_idc: 1
4.4: sps->bit_depth_luma_minus8: 0
4.3: sps->bit_depth_chroma_minus8: 0
4.2: sps->qpprime_y_zero_transform_bypass_flag: 0
4.1: sps->seq_scaling_matrix_present_flag: 1
5.8: sps->seq_scaling_list_present_flag[ i ]: 1
5.7: delta_scale: 8
6.6: delta_scale: 5
7.7: delta_scale: 0
7.6: delta_scale: 5
8.7: delta_scale: 0
8.6: delta_scale: 0
8.5: delta_scale: 5
9.6: delta_scale: 0
9.5: delta_scale: 0
9.4: delta_scale: 0
9.3: delta_scale: 5
10.4: delta_scale: 0
10.3: delta_scale: 0
10.2: delta_scale: 5
11.3: delta_scale: 0
11.2: delta_scale: 7
12.3: sps->seq_scaling_list_present_flag[ i ]: 1
12.2: delta_scale: 8
13.1: delta_scale: 5
14.2: delta_scale: 0
14.1: delta_scale: 5
15.2: delta_scale: 0
15.1: delta_scale: 0
16.8: delta_scale: 5
16.1: delta_scale: 0
17.8: delta_scale: 0
17.7: delta_scale: 0
17.6: delta_scale: 5
18.7: delta_scale: 0
18.6: delta_scale: 0
18.5: delta_scale: 5
19.6: delta_scale: 0
19.5: delta_scale: 7
20.6: sps->seq_scaling_list_present_flag[ i ]: 1
20.5: delta_scale: 8
21.4: delta_scale: 5
22.5: delta_scale: 0
22.4: delta_scale: 5
23.5: delta_scale: 0
23.4: delta_scale: 0
23.3: delta_scale: 5
24.4: delta_scale: 0
24.3: delta_scale: 0
24.2: delta_scale: 0
24.1: delta_scale: 5
25.2: delta_scale: 0
25.1: delta_scale: 0
26.8: delta_scale: 5
26.1: delta_scale: 0
27.8: delta_scale: 7
27.1: sps->seq_scaling_list_present_flag[ i ]: 1
28.8: delta_scale: 8
29.7: delta_scale: 5
30.8: delta_scale: 0
30.7: delta_scale: 5
31.8: delta_scale: 0
31.7: delta_scale: 0
31.6: delta_scale: 5
32.7: delta_scale: 0
32.6: delta_scale: 0
32.5: delta_scale: 0
32.4: delta_scale: 5
33.5: delta_scale: 0
33.4: delta_scale: 0
33.3: delta_scale: 5
34.4: delta_scale: 0
34.3: delta_scale: 7
35.4: sps->seq_scaling_list_present_flag[ i ]: 1
35.3: delta_scale: 8
36.2: delta_scale: 5
37.3: delta_scale: 0
37.2: delta_scale: 5
38.3: delta_scale: 0
38.2: delta_scale: 0
38.1: delta_scale: 5
39.2: delta_scale: 0
39.1: delta_scale: 0
40.8: delta_scale: 0
40.7: delta_scale: 5

41.7: delta_scale: 0
41.6: delta_scale: 5
42.7: delta_scale: 0
42.6: delta_scale: 7
43.7: sps->seq_scaling_list_present_flag[ i ]: 1
43.6: delta_scale: 8
44.5: delta_scale: 5
45.6: delta_scale: 0
45.5: delta_scale: 5
46.6: delta_scale: 0
46.5: delta_scale: 0
46.4: delta_scale: 5
47.5: delta_scale: 0
47.4: delta_scale: 0
47.3: delta_scale: 0
47.2: delta_scale: 5
48.3: delta_scale: 0
48.2: delta_scale: 0
48.1: delta_scale: 5
49.2: delta_scale: 0
49.1: delta_scale: 7
50.2: sps->seq_scaling_list_present_flag[ i ]: 1
50.1: delta_scale: 8
52.8: delta_scale: 2
52.3: delta_scale: 0
52.2: delta_scale: 2
53.5: delta_scale: -2
54.8: delta_scale: 2
54.3: delta_scale: 2
55.6: delta_scale: 0
55.5: delta_scale: 0
55.4: delta_scale: 0
55.3: delta_scale: 2
56.6: delta_scale: 0
56.5: delta_scale: 0
56.4: delta_scale: 0
56.3: delta_scale: 0
56.2: delta_scale: 2
57.5: delta_scale: 0
57.4: delta_scale: 0
57.3: delta_scale: 0
57.2: delta_scale: 0
57.1: delta_scale: 0
58.8: delta_scale: 2
58.3: delta_scale: 0
58.2: delta_scale: 0
58.1: delta_scale: 0
59.8: delta_scale: 0
59.7: delta_scale: 0
59.6: delta_scale: 0
59.5: delta_scale: 2
60.8: delta_scale: 0
60.7: delta_scale: 0
60.6: delta_scale: 0
60.5: delta_scale: 0
60.4: delta_scale: 0
60.3: delta_scale: 0
60.2: delta_scale: 0
60.1: delta_scale: 2
61.4: delta_scale: 0
61.3: delta_scale: 0
61.2: delta_scale: 0
61.1: delta_scale: 0
62.8: delta_scale: 0
62.7: delta_scale: 0
62.6: delta_scale: 2
62.1: delta_scale: 0
63.8: delta_scale: 0
63.7: delta_scale: 0
63.6: delta_scale: 0
63.5: delta_scale: 0
63.4: delta_scale: 2
64.7: delta_scale: 0
64.6: delta_scale: 0
64.5: delta_scale: 0
64.4: delta_scale: 0
64.3: delta_scale: 3
65.6: delta_scale: 0
65.5: delta_scale: 0
65.4: delta_scale: 0
65.3: delta_scale: 3
66.6: delta_scale: 0
66.5: delta_scale: 0
66.4: delta_scale: 3
67.7: delta_scale: 0
67.6: delta_scale: 3
67.1: sps->seq_scaling_list_present_flag[ i ]: 1
68.8: delta_scale: 8
69.7: delta_scale: 2
69.2: delta_scale: 0
69.1: delta_scale: 2
70.4: delta_scale: -2
71.7: delta_scale: 2
71.2: delta_scale: 2
72.5: delta_scale: 0
72.4: delta_scale: 0
72.3: delta_scale: 0
72.2: delta_scale: 2
73.5: delta_scale: 0
73.4: delta_scale: 0
73.3: delta_scale: 0
73.2: delta_scale: 0
73.1: delta_scale: 2
74.4: delta_scale: 0

74.2: delta_scale: 0
74.1: delta_scale: 0
75.8: delta_scale: 0
75.7: delta_scale: 2
75.2: delta_scale: 0
75.1: delta_scale: 0
76.8: delta_scale: 0
76.7: delta_scale: 0
76.6: delta_scale: 0
76.5: delta_scale: 0
76.4: delta_scale: 2
77.7: delta_scale: 0
77.6: delta_scale: 0
77.5: delta_scale: 0
77.4: delta_scale: 0
77.3: delta_scale: 0
77.2: delta_scale: 0
77.1: delta_scale: 0
78.8: delta_scale: 2
78.3: delta_scale: 0
78.2: delta_scale: 0
78.1: delta_scale: 0
79.8: delta_scale: 0
79.7: delta_scale: 0
79.6: delta_scale: 0
79.5: delta_scale: 2
80.8: delta_scale: 0
80.7: delta_scale: 0
80.6: delta_scale: 0
80.5: delta_scale: 0
80.4: delta_scale: 0
80.3: delta_scale: 2
81.6: delta_scale: 0
81.5: delta_scale: 0
81.4: delta_scale: 0
81.3: delta_scale: 0
81.2: delta_scale: 3
82.5: delta_scale: 0
82.4: delta_scale: 0
82.3: delta_scale: 0
82.2: delta_scale: 3
83.5: delta_scale: 0
83.4: delta_scale: 0
83.3: delta_scale: 3
84.6: delta_scale: 0
84.5: delta_scale: 3
85.8: sps->log2_max_frame_num_minus4: 0
85.7: sps->pic_order_cnt_type: 2
85.4: sps->num_ref_frames: 1
85.1: sps->gaps_in_frame_num_value_allowed_flag: 0
86.8: sps->pic_width_in_mbs_minus1: 39
87.5: sps->pic_height_in_map_units_minus1: 29
88.4: sps->frame_mbs_only_flag: 1
88.3: sps->direct_8x8_inference_flag: 1
88.2: sps->frame_cropping_flag: 0
88.1: sps->vui_parameters_present_flag: 1
89.8: sps->vui.aspect_ratio_info_present_flag: 1
89.7: sps->vui.aspect_ratio_idc: 1
90.7: sps->vui.overscan_info_present_flag: 0
90.6: sps->vui.video_signal_type_present_flag: 1
90.5: sps->vui.video_format: 2
90.2: sps->vui.video_full_range_flag: 1
90.1: sps->vui.colour_description_present_flag: 0
91.8: sps->vui.chroma_loc_info_present_flag: 0
91.7: sps->vui.timing_info_present_flag: 1
91.6: sps->vui.num_units_in_tick: 1
95.6: sps->vui.time_scale: 150
99.6: sps->vui.fixed_frame_rate_flag: 0
99.5: sps->vui.nal_hrd_parameters_present_flag: 1
99.4: sps->hrd.cpb_cnt_minus1: 0
99.3: sps->hrd.bit_rate_scale: 0
100.7: sps->hrd.cpb_size_scale: 2
100.3: sps->hrd.bit_rate_value_minus1[ SchedSelIdx ]: 3999
103.4: sps->hrd.cpb_size_value_minus1[ SchedSelIdx ]: 8999
106.1: sps->hrd.cbr_flag[ SchedSelIdx ]: 1
107.8: sps->hrd.initial_cpb_removal_delay_length_minus1: 23
107.3: sps->hrd.cpb_removal_delay_length_minus1: 23
108.6: sps->hrd.dpb_output_delay_length_minus1: 23
108.1: sps->hrd.time_offset_length: 24
109.4: sps->vui.vcl_hrd_parameters_present_flag: 0
109.3: sps->vui.low_delay_hrd_flag: 1
109.2: sps->vui.pic_struct_present_flag: 0
109.1: sps->vui.bitstream_restriction_flag: 1
110.8: sps->vui.motion_vectors_over_pic_boundaries_flag: 1
110.7: sps->vui.max_bytes_per_pic_denom: 0
110.6: sps->vui.max_bits_per_mb_denom: 0
110.5: sps->vui.log2_max_mv_length_horizontal: 16
111.4: sps->vui.log2_max_mv_length_vertical: 16
112.3: sps->vui.num_reorder_frames: 0
112.2: sps->vui.max_dec_frame_buffering: 1
113.7: rbsp_stop_one_bit: 1
113.6: rbsp_alignment_zero_bit: 0
113.5: rbsp_alignment_zero_bit: 0
113.4: rbsp_alignment_zero_bit: 0
113.3: rbsp_alignment_zero_bit: 0
113.2: rbsp_alignment_zero_bit: 0
113.1: rbsp_alignment_zero_bit: 0

with

    int nal_start = 0;
    int nal_end   = 0;
    find_nal_unit(m_bufferAV, size, &nal_start, &nal_end);
    read_nal_unit(m_h264, &m_bufferAV[nal_start], nal_end - nal_start);

I get

Segmentation fault (core dumped)

commit is

commit 81238ff85387535337571641e8d176a58e47d69c
Author: Alex Izvorski <aizvorski@gmail.com>
Date:   Wed Dec 9 22:17:06 2015 -0800

    Moved README contents to README.md; delete README

Please help me!

Thank you!!

juvasquezg commented 7 years ago

Hi,

Thank you so much.

You can Close this issue, look #20

Regards, @juvasquezg

aizvorski commented 7 years ago

@juvasquezg Thanks for looking into it! I think this is okay, please reopen if it is still a problem.