… | |
… | |
182 | CONST (DMX_PES_VIDEO), |
182 | CONST (DMX_PES_VIDEO), |
183 | CONST (DMX_PES_TELETEXT), |
183 | CONST (DMX_PES_TELETEXT), |
184 | CONST (DMX_PES_SUBTITLE), |
184 | CONST (DMX_PES_SUBTITLE), |
185 | CONST (DMX_PES_PCR), |
185 | CONST (DMX_PES_PCR), |
186 | |
186 | |
187 | CONST (DMX_SCRAMBLING_EV), |
187 | //CONST (DMX_SCRAMBLING_EV), |
188 | CONST (DMX_FRONTEND_EV), |
188 | //CONST (DMX_FRONTEND_EV), |
189 | |
189 | |
190 | CONST (DMX_CHECK_CRC), |
190 | CONST (DMX_CHECK_CRC), |
191 | CONST (DMX_ONESHOT), |
191 | CONST (DMX_ONESHOT), |
192 | CONST (DMX_IMMEDIATE_START), |
192 | CONST (DMX_IMMEDIATE_START), |
193 | CONST (DMX_KERNEL_CLIENT), |
193 | CONST (DMX_KERNEL_CLIENT), |
… | |
… | |
200 | CONST (DMX_SOURCE_DVR0), |
200 | CONST (DMX_SOURCE_DVR0), |
201 | CONST (DMX_SOURCE_DVR1), |
201 | CONST (DMX_SOURCE_DVR1), |
202 | CONST (DMX_SOURCE_DVR2), |
202 | CONST (DMX_SOURCE_DVR2), |
203 | CONST (DMX_SOURCE_DVR3), |
203 | CONST (DMX_SOURCE_DVR3), |
204 | |
204 | |
205 | CONST (DMX_SCRAMBLING_OFF), |
205 | //CONST (DMX_SCRAMBLING_OFF), |
206 | CONST (DMX_SCRAMBLING_ON), |
206 | //CONST (DMX_SCRAMBLING_ON), |
207 | |
207 | |
208 | // constants defined by this file |
208 | // constants defined by this file |
209 | CONST (SCT_PAT), |
209 | CONST (SCT_PAT), |
210 | CONST (SCT_CAT), |
210 | CONST (SCT_CAT), |
211 | CONST (SCT_PMT), |
211 | CONST (SCT_PMT), |
… | |
… | |
977 | if (syntax_indicator) |
977 | if (syntax_indicator) |
978 | { |
978 | { |
979 | switch (table_id) |
979 | switch (table_id) |
980 | { |
980 | { |
981 | case SCT_NIT: |
981 | case SCT_NIT: |
|
|
982 | case SCT_NIT_OTHER: |
982 | { |
983 | { |
983 | U16 descriptor_end_offset; |
984 | U16 descriptor_end_offset; |
984 | |
985 | |
985 | DEC_I (hv, 16, network_id); |
986 | DEC_I (hv, 16, network_id); |
986 | decode_field (2); // reserved |
987 | decode_field (2); // reserved |
… | |
… | |
1022 | |
1023 | |
1023 | case SCT_EIT_PRESENT: |
1024 | case SCT_EIT_PRESENT: |
1024 | case SCT_EIT_PRESENT_OTHER: |
1025 | case SCT_EIT_PRESENT_OTHER: |
1025 | case SCT_EIT_SCHEDULE0...SCT_EIT_SCHEDULE15: //GCC |
1026 | case SCT_EIT_SCHEDULE0...SCT_EIT_SCHEDULE15: //GCC |
1026 | case SCT_EIT_SCHEDULE_OTHER0...SCT_EIT_SCHEDULE_OTHER15: //GCC |
1027 | case SCT_EIT_SCHEDULE_OTHER0...SCT_EIT_SCHEDULE_OTHER15: //GCC |
|
|
1028 | { |
1027 | DEC_I (hv, 16, service_id); |
1029 | DEC_I (hv, 16, service_id); |
1028 | decode_field (2); |
1030 | decode_field (2); |
1029 | DEC_I (hv, 5, version_number); |
1031 | DEC_I (hv, 5, version_number); |
1030 | DEC_I (hv, 1, current_next_indicator); |
1032 | DEC_I (hv, 1, current_next_indicator); |
1031 | DEC_I (hv, 8, section_number); |
1033 | DEC_I (hv, 8, section_number); |
1032 | DEC_I (hv, 8, last_section_number); |
1034 | DEC_I (hv, 8, last_section_number); |
1033 | DEC_I (hv, 16, transport_stream_id); |
1035 | DEC_I (hv, 16, transport_stream_id); |
1034 | DEC_I (hv, 16, original_network_id); |
1036 | DEC_I (hv, 16, original_network_id); |
1035 | DEC_I (hv, 8, segment_last_section_number); |
1037 | DEC_I (hv, 8, segment_last_section_number); |
1036 | DEC_I (hv, 8, last_table_id); |
1038 | DEC_I (hv, 8, last_table_id); |
1037 | |
1039 | |
1038 | AV *events = newAV (); |
1040 | AV *events = newAV (); |
1039 | HVS (hv, events, newRV_noinc ((SV *)events)); |
1041 | HVS (hv, events, newRV_noinc ((SV *)events)); |
1040 | |
1042 | |
1041 | while (end - dec_ofs > 32) |
1043 | while (end - dec_ofs > 32) |
1042 | { |
1044 | { |
1043 | long dll; |
1045 | long dll; |
1044 | AV *desc; |
1046 | AV *desc; |
1045 | HV *ev = newHV (); |
1047 | HV *ev = newHV (); |
1046 | av_push (events, newRV_noinc ((SV *)ev)); |
1048 | av_push (events, newRV_noinc ((SV *)ev)); |
1047 | |
1049 | |
1048 | DEC_I (ev, 16, event_id); |
1050 | DEC_I (ev, 16, event_id); |
1049 | DEC_I (ev, 16, start_time_mjd); |
1051 | DEC_I (ev, 16, start_time_mjd); |
1050 | DEC_I (ev, 24, start_time_hms); |
1052 | DEC_I (ev, 24, start_time_hms); |
1051 | DEC_I (ev, 24, duration); |
1053 | DEC_I (ev, 24, duration); |
1052 | DEC_I (ev, 3, running_status); |
1054 | DEC_I (ev, 3, running_status); |
1053 | DEC_I (ev, 1, free_CA_mode); |
1055 | DEC_I (ev, 1, free_CA_mode); |
1054 | |
1056 | |
1055 | dll = dec_ofs + (decode_field (12) << 3); |
1057 | dll = dec_ofs + (decode_field (12) << 3); |
1056 | |
1058 | |
1057 | desc = decode_descriptors (dll); |
1059 | desc = decode_descriptors (dll); |
1058 | HVS (ev, descriptors, newRV_noinc ((SV *)desc)); |
1060 | HVS (ev, descriptors, newRV_noinc ((SV *)desc)); |
1059 | } |
1061 | } |
1060 | |
1062 | |
1061 | decode_field (32); // skip CRC |
1063 | decode_field (32); // skip CRC |
|
|
1064 | } |
1062 | |
1065 | |
1063 | break; |
1066 | break; |
1064 | |
1067 | |
1065 | case SCT_SDT: |
1068 | case SCT_SDT: |
1066 | case SCT_SDT_OTHER: |
1069 | case SCT_SDT_OTHER: |