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