@@ -7,77 +7,83 @@ import (
77 "github.com/wader/fq/pkg/scalar"
88)
99
10+ var avcSeiMpegItuT35Format decode.Group
11+
1012func init () {
1113 interp .RegisterFormat (decode.Format {
1214 Name : format .AVC_SEI ,
1315 Description : "H.264/AVC Supplemental Enhancement Information" ,
14- DecodeFn : avcSEIDecode ,
16+ Dependencies : []decode.Dependency {
17+ {Names : []string {format .MPEG_ITU_T35 }, Group : & avcSeiMpegItuT35Format },
18+ },
19+ DecodeFn : avcSEIDecode ,
1520 })
1621}
1722
1823const (
19- avcSEIUserDataUnregistered = 5
24+ avcSEIUserDataRegisteredItuTT35 = 4
25+ avcSEIUserDataUnregistered = 5
2026)
2127
2228var seiNames = scalar.UintMapSymStr {
23- 0 : "buffering_period" ,
24- 1 : "pic_timing" ,
25- 2 : "pan_scan_rect" ,
26- 3 : "filler_payload" ,
27- 4 : "user_data_registered_itu_t_t35" ,
28- avcSEIUserDataUnregistered : "user_data_unregistered" ,
29- 6 : "recovery_point" ,
30- 7 : "dec_ref_pic_marking_repetition" ,
31- 8 : "spare_pic" ,
32- 9 : "scene_info" ,
33- 10 : "sub_seq_info" ,
34- 11 : "sub_seq_layer_characteristics" ,
35- 12 : "sub_seq_characteristics" ,
36- 13 : "full_frame_freeze" ,
37- 14 : "full_frame_freeze_release" ,
38- 15 : "full_frame_snapshot" ,
39- 16 : "progressive_refinement_segment_start" ,
40- 17 : "progressive_refinement_segment_end" ,
41- 18 : "motion_constrained_slice_group_set" ,
42- 19 : "film_grain_characteristics" ,
43- 20 : "deblocking_filter_display_preference" ,
44- 21 : "stereo_video_info" ,
45- 22 : "post_filter_hint" ,
46- 23 : "tone_mapping_info" ,
47- 24 : "scalability_info" ,
48- 25 : "sub_pic_scalable_layer" ,
49- 26 : "non_required_layer_rep" ,
50- 27 : "priority_layer_info" ,
51- 28 : "layers_not_present" ,
52- 29 : "layer_dependency_change" ,
53- 30 : "scalable_nesting" ,
54- 31 : "base_layer_temporal_hrd" ,
55- 32 : "quality_layer_integrity_check" ,
56- 33 : "redundant_pic_property" ,
57- 34 : "tl0_dep_rep_index" ,
58- 35 : "tl_switching_point" ,
59- 36 : "parallel_decoding_info" ,
60- 37 : "mvc_scalable_nesting" ,
61- 38 : "view_scalability_info" ,
62- 39 : "multiview_scene_info" ,
63- 40 : "multiview_acquisition_info" ,
64- 41 : "non_required_view_component" ,
65- 42 : "view_dependency_change" ,
66- 43 : "operation_points_not_present" ,
67- 44 : "base_view_temporal_hrd" ,
68- 45 : "frame_packing_arrangement" ,
69- 46 : "multiview_view_position" ,
70- 47 : "display_orientation" ,
71- 48 : "mvcd_scalable_nesting" ,
72- 49 : "mvcd_view_scalability_info" ,
73- 50 : "depth_representation_info" ,
74- 51 : "three_dimensional_reference_displays_info" ,
75- 52 : "depth_timing" ,
76- 53 : "depth_sampling_info" ,
77- 54 : "constrained_depth_parameter_set_identifier" ,
78- 56 : "green_metadata" ,
79- 137 : "mastering_display_colour_volume" ,
80- 181 : "alternative_depth_info" ,
29+ 0 : "buffering_period" ,
30+ 1 : "pic_timing" ,
31+ 2 : "pan_scan_rect" ,
32+ 3 : "filler_payload" ,
33+ avcSEIUserDataRegisteredItuTT35 : "user_data_registered_itu_t_t35" ,
34+ avcSEIUserDataUnregistered : "user_data_unregistered" ,
35+ 6 : "recovery_point" ,
36+ 7 : "dec_ref_pic_marking_repetition" ,
37+ 8 : "spare_pic" ,
38+ 9 : "scene_info" ,
39+ 10 : "sub_seq_info" ,
40+ 11 : "sub_seq_layer_characteristics" ,
41+ 12 : "sub_seq_characteristics" ,
42+ 13 : "full_frame_freeze" ,
43+ 14 : "full_frame_freeze_release" ,
44+ 15 : "full_frame_snapshot" ,
45+ 16 : "progressive_refinement_segment_start" ,
46+ 17 : "progressive_refinement_segment_end" ,
47+ 18 : "motion_constrained_slice_group_set" ,
48+ 19 : "film_grain_characteristics" ,
49+ 20 : "deblocking_filter_display_preference" ,
50+ 21 : "stereo_video_info" ,
51+ 22 : "post_filter_hint" ,
52+ 23 : "tone_mapping_info" ,
53+ 24 : "scalability_info" ,
54+ 25 : "sub_pic_scalable_layer" ,
55+ 26 : "non_required_layer_rep" ,
56+ 27 : "priority_layer_info" ,
57+ 28 : "layers_not_present" ,
58+ 29 : "layer_dependency_change" ,
59+ 30 : "scalable_nesting" ,
60+ 31 : "base_layer_temporal_hrd" ,
61+ 32 : "quality_layer_integrity_check" ,
62+ 33 : "redundant_pic_property" ,
63+ 34 : "tl0_dep_rep_index" ,
64+ 35 : "tl_switching_point" ,
65+ 36 : "parallel_decoding_info" ,
66+ 37 : "mvc_scalable_nesting" ,
67+ 38 : "view_scalability_info" ,
68+ 39 : "multiview_scene_info" ,
69+ 40 : "multiview_acquisition_info" ,
70+ 41 : "non_required_view_component" ,
71+ 42 : "view_dependency_change" ,
72+ 43 : "operation_points_not_present" ,
73+ 44 : "base_view_temporal_hrd" ,
74+ 45 : "frame_packing_arrangement" ,
75+ 46 : "multiview_view_position" ,
76+ 47 : "display_orientation" ,
77+ 48 : "mvcd_scalable_nesting" ,
78+ 49 : "mvcd_view_scalability_info" ,
79+ 50 : "depth_representation_info" ,
80+ 51 : "three_dimensional_reference_displays_info" ,
81+ 52 : "depth_timing" ,
82+ 53 : "depth_sampling_info" ,
83+ 54 : "constrained_depth_parameter_set_identifier" ,
84+ 56 : "green_metadata" ,
85+ 137 : "mastering_display_colour_volume" ,
86+ 181 : "alternative_depth_info" ,
8187}
8288
8389var (
@@ -107,10 +113,14 @@ func avcSEIDecode(d *decode.D) any {
107113
108114 d .FramedFn (int64 (payloadSize )* 8 , func (d * decode.D ) {
109115 switch payloadType {
116+ case avcSEIUserDataRegisteredItuTT35 :
117+ d .FieldFormat ("data" , avcSeiMpegItuT35Format , nil )
110118 case avcSEIUserDataUnregistered :
111119 d .FieldRawLen ("uuid" , 16 * 8 , userDataUnregisteredNames )
120+ d .FieldRawLen ("data" , d .BitsLeft ())
121+ default :
122+ d .FieldRawLen ("data" , d .BitsLeft ())
112123 }
113- d .FieldRawLen ("data" , d .BitsLeft ())
114124 })
115125
116126 d .FieldRawLen ("rbsp_trailing_bits" , d .BitsLeft ())
0 commit comments