DVBCore  17.9.0
Open Source DVB Engine
 All Data Structures Files Functions Typedefs Macros Pages
stbsitab.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright © 2014 The DTVKit Open Software Foundation Ltd (www.dtvkit.org)
3  * Copyright © 2004 Ocean Blue Software Ltd
4  *
5  * This file is part of a DTVKit Software Component
6  * You are permitted to copy, modify or distribute this file subject to the terms
7  * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org
8  *
9  * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
10  * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
11  * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
12  *
13  * If you or your organisation is not a member of DTVKit then you have access
14  * to this source code outside of the terms of the licence agreement
15  * and you are expected to delete this and any associated files immediately.
16  * Further information on DTVKit, membership and terms can be found at www.dtvkit.org
17  *******************************************************************************/
25 // pre-processor mechanism so multiple inclusions don't cause compilation error
26 
27 #ifndef _STBSITAB_H
28 #define _STBSITAB_H
29 
30 #include "techtype.h"
31 #include "stbsiflt.h"
32 #include "stbdpc.h"
33 
34 //---Constant and macro definitions for public use-----------------------------
35 
36 /* CRID related defines */
37 #define CRID_LOCATION_MASK 0x03
38 #define CRID_TYPE_MASK 0xfc
39 #define CRID_TYPE_SHIFT 2
40 
41 #define CRID_LOCATION_0 0x00
42 #define CRID_LOCATION_1 0x01
43 
44 #define DVB_INVALID_ID 0x1fff
45 #define DVB_INVALID_CAROUSEL_ID 0xffffffff
46 
47 
48 //---Enumerations for public use-----------------------------------------------
49 
50 typedef enum
51 {
52  USER_DEF_DESCRIP_NOT_USED = 0,
53  USER_DEF_DESCRIP_LOGICAL_CHAN_NUM = 1,
54  USER_DEF_DESCRIP_PREF_NAME_LIST = 2,
55  USER_DEF_DESCRIP_PREF_NAME_ID = 3
56 } STB_SI_USER_DEF_DESCRIP_FUNCTION;
57 
58 typedef enum
59 {
60  EIT_NOW_NEXT_ACT = 0,
61  EIT_NOW_NEXT_OTHER = 1,
62  EIT_NOW_NEXT_ALL = 2,
63  EIT_PF_PLUS = 3
64 } E_SI_EIT_TABLE_REQ;
65 
66 typedef enum
67 {
68  EIT_SCHED_ACT = 0,
69  EIT_SCHED_OTHER = 1,
70  EIT_SCHED_ACT_4DAY = 2,
71  EIT_SCHED_OTHER_4DAY = 3,
72  EIT_SCHED_ALL_4DAY = 4,
73  EIT_SCHED_ALL_8DAY = 5,
74  EIT_SCHED_ALL = 6
75 } E_SI_SCHED_TABLE_REQ;
76 
77 typedef enum
78 {
79  CTYPE_DVB_SUBTITLE = 0x310,
80  CTYPE_DVB_SUBTITLE_4_3 = 0x311,
81  CTYPE_DVB_SUBTITLE_16_9 = 0x312,
82  CTYPE_DVB_SUBTITLE_221_1 = 0x313,
83  CTYPE_DVB_SUBTITLE_HD = 0x314,
84 
85  CTYPE_DVB_SUBTITLE_HH = 0x320,
86  CTYPE_DVB_SUBTITLE_HH_4_3 = 0x321,
87  CTYPE_DVB_SUBTITLE_HH_16_9 = 0x322,
88  CTYPE_DVB_SUBTITLE_HH_221_1 = 0x323,
89  CTYPE_DVB_SUBTITLE_HH_HD = 0x324,
90 } E_SI_COMPONENT_TYPE_SUBTITLE;
91 
92 typedef enum /* see ETSI 300468 */
93 {
94  /* MPEG1 Audio Description types */
95  CTYPE_MPEG1_AD_VISUAL = 0x240,
96  CTYPE_MPEG1_AD_HEARING = 0x241,
97  CTYPE_MPEG1_AD_RCVR_MIX = 0x247,
98  CTYPE_MPEG1_AD_BCAST_MIX = 0x248,
99 
100  /* AC3, Full Service Audio description types */
101  CTYPE_AC3_FS_VISUAL = 0x450, /* to 0x457 */
102  CTYPE_AC3_FS_HEARING = 0x458, /* to 0x45f */
103  CTYPE_AC3_FS_DIALOGUE = 0x420, /* to 0x427 */
104  CTYPE_AC3_FS_COMMENTARY = 0x468,
105  CTYPE_AC3_FS_EMERGENCY = 0x470,
106 
107  /* E-AC3, Full Service Audio description types */
108  CTYPE_EAC3_FS_VISUAL = 0x4d0, /* to 0x4d7 */
109  CTYPE_EAC3_FS_HEARING = 0x4d8, /* to 0x4df */
110  CTYPE_EAC3_FS_DIALOGUE = 0x4a0, /* to 0x4a7 */
111  CTYPE_EAC3_FS_COMMENTARY = 0x4e8,
112  CTYPE_EAC3_FS_EMERGENCY = 0x4f0,
113 
114  /* HE-AAC Audio Description types */
115  CTYPE_HEAAC_AD_VISUAL = 0x640,
116  CTYPE_HEAAC_AD_HEARING = 0x641,
117  CTYPE_HEAAC_AD_RCVR_MIX = 0x647,
118  CTYPE_HEAAC_AD_BCAST_MIX = 0x648,
119 
120  /* HE-AAC v2 Audio Description types */
121  CTYPE_HEAACV2_AD_VISUAL = 0x644,
122  CTYPE_HEAACV2_AD_HEARING = 0x645,
123  CTYPE_HEAACV2_AD_RCVR_MIX = 0x649,
124  CTYPE_HEAACV2_AD_BCAST_MIX = 0x64a,
125 
126  /* Supplementary Audio */
127  CTYPE_MPEG1_SA_RCVR_MIX = 0x242,
128  CTYPE_HEAAC_SA_RCVR_MIX = 0x642,
129  CTYPE_HEAACV2_SA_RCVR_MIX = 0x646
130 } E_SI_COMPONENT_TYPE_AUDIO_DESC;
131 
132 //---Global type defs for public use-------------------------------------------
133 
134 // common structures used in following tables
135 typedef struct si_string
136 {
137  U8BIT nbytes;
138  U8BIT *str_ptr;
140 
141 typedef struct si_linkage_desc
142 {
143  struct si_linkage_desc *next;
144  U16BIT orig_net_id;
145  U16BIT tran_id;
146  U16BIT serv_id;
147  U8BIT link_type;
148  U8BIT data_length;
149  U8BIT data;
151 
152 typedef struct si_guidance_desc
153 {
154  U8BIT guidance_type;
155  BOOLEAN guidance_mode;
156  U8BIT num_langs;
157  U32BIT *lang_codes;
158  SI_STRING_DESC **strings;
160 
161 typedef struct si_fta_content_desc
162 {
163  BOOLEAN do_not_scramble;
164  U8BIT access_over_internet;
165  BOOLEAN do_not_apply_revocation;
167 
168 typedef struct si_target_region
169 {
170  struct si_target_region *next;
171  U8BIT region_depth;
172  U8BIT primary_region_code;
173  U8BIT secondary_region_code;
174  U8BIT tertiary_region_code;
176 
177 typedef struct si_target_region_desc
178 {
179  struct si_target_region_desc *next;
180  U32BIT country_code;
181  SI_TARGET_REGION *region_list;
183 
184 typedef struct si_serv_avail_desc
185 {
186  struct si_serv_avail_desc *next;
187  U16BIT num_of_cell_ids;
188  U16BIT *cell_ids;
189  BOOLEAN availability_flag;
191 
192 typedef enum
193 {
194  ICON_TRANS_LOCAL = 0x0,
195  ICON_TRANS_URL = 0x1,
196  ICON_TRANS_RES1 = 0x2,
197  ICON_TRANS_RES2 = 0x3
198 } E_ICON_TRANSPORT_MODE;
199 
200 typedef enum
201 {
202  ICON_COORDS_576 = 0x0,
203  ICON_COORDS_720 = 0x1,
204  ICON_COORDS_1080 = 0x2
205 } E_ICON_COORD_SYSTEM;
206 
207 typedef struct si_image_icon_desc
208 {
209  U8BIT desc_num;
210  U8BIT last_desc_num;
211  U8BIT icon_id;
212  E_ICON_TRANSPORT_MODE transport_mode;
213  BOOLEAN position_defined;
214  E_ICON_COORD_SYSTEM coord_system;
215  U16BIT x_pos;
216  U16BIT y_pos;
217  U8BIT *icon_type;
218  U32BIT data_len;
219  U8BIT *icon_data;
221 
222 
223 //--------------------------------------------------
224 // PAT table structures
225 typedef struct si_pat_service_entry
226 {
227  struct si_pat_service_entry *next;
228  U16BIT serv_id;
229  U16BIT pmt_pid;
231 
232 typedef struct si_pat_table
233 {
234  U8BIT version;
235  U16BIT tran_id;
236  U16BIT num_services;
237  SI_PAT_SERVICE_ENTRY *service_list;
238  SI_PAT_SERVICE_ENTRY *last_service_entry;
239 } SI_PAT_TABLE;
240 
241 //--------------------------------------------------
242 // PMT table structures
243 typedef struct si_dvb_subt_desc
244 {
245  U32BIT lang_code;
246  U8BIT type;
247  U16BIT composition_page;
248  U16BIT ancillary_page;
250 
251 typedef struct si_teletext_desc
252 {
253  U32BIT lang_code;
254  U8BIT type;
255  U8BIT magazine;
256  U8BIT page;
258 
259 typedef struct si_ca_desc
260 {
261  U16BIT ca_id;
262  U16BIT ca_pid;
263 } SI_CA_DESC;
264 
265 typedef struct si_iso_lang_desc
266 {
267  U32BIT lang_code;
268  U8BIT audio_type;
270 
271 /* Structure used when parsing AC-3 and E-AC3 descriptors */
272 typedef struct si_ac3_desc
273 {
274  U8BIT dtag;
275  BOOLEAN component_type_flag;
276  U8BIT component_type;
277  BOOLEAN bsid_flag;
278  U8BIT bsid;
279  BOOLEAN mainid_flag;
280  U8BIT mainid;
281  BOOLEAN asvc_flag;
282  U8BIT asvc;
283  BOOLEAN mixinfoexists;
284  BOOLEAN substream1_flag;
285  U8BIT substream1;
286  BOOLEAN substream2_flag;
287  U8BIT substream2;
288  BOOLEAN substream3_flag;
289  U8BIT substream3;
290 } SI_AC3_DESC;
291 
292 typedef struct si_ad_desc
293 {
294  U32BIT lang_code;
295  BOOLEAN mix_type;
296  U8BIT edit_class;
297 } SI_AD_DESC;
298 
299 typedef struct si_aac_desc
300 {
301  U8BIT profile_level;
302  BOOLEAN type_present;
303  U8BIT aac_type;
304 } SI_AAC_DESC;
305 
306 typedef struct si_service_move_desc
307 {
308  U16BIT onet_id;
309  U16BIT ts_id;
310  U16BIT service_id;
312 
313 typedef struct si_app_sig_desc
314 {
315  U16BIT app_type;
316  U8BIT ait_version;
318 
319 typedef enum
320 {
321  SI_STREAM_TYPE_VIDEO1 = 0x01,
322  SI_STREAM_TYPE_VIDEO2 = 0x02,
323  SI_STREAM_TYPE_AUDIO1 = 0x03,
324  SI_STREAM_TYPE_AUDIO2 = 0x04,
325  SI_STREAM_TYPE_PRIVATE = 0x05,
326  SI_STREAM_TYPE_PES_PKT = 0x06,
327  SI_STREAM_TYPE_MHEG = 0x07,
328  SI_STREAM_TYPE_DATA_A = 0x0a,
329  SI_STREAM_TYPE_DATA_B = 0x0b,
330  SI_STREAM_TYPE_DATA_C = 0x0c,
331  SI_STREAM_TYPE_DATA_D = 0x0d,
332  SI_STREAM_TYPE_AUX = 0x0e,
333  SI_STREAM_TYPE_AAC = 0x0f,
334  SI_STREAM_TYPE_HEAAC = 0x11,
335  SI_STREAM_TYPE_H264 = 0x1b,
336  SI_STREAM_TYPE_H265 = 0x24,
337  SI_STREAM_TYPE_AC3 = 0x81
338 } SI_STREAM_TYPE;
339 
341 {
342  U8BIT data_type;
343  U8BIT component_tag;
345 
346 typedef struct si_pmt_stream_entry
347 {
348  struct si_pmt_stream_entry *next;
349  SI_STREAM_TYPE type;
350  U16BIT pid;
351  U8BIT *tag_array_ptr;
352  U8BIT num_tag_entries;
353  U16BIT num_iso_lang_entries;
354  SI_ISO_LANG_DESC *iso_lang_desc_array;
355  U16BIT num_ca_entries;
356  SI_CA_DESC *ca_desc_array;
357  U16BIT num_subtitle_entries;
358  SI_SUBTITLE_DESC *subtitle_desc_array;
359  U16BIT num_teletext_entries;
360  SI_TELETEXT_DESC *teletext_desc_array;
361  SI_SERVICE_MOVE_DESC *service_move;
362  U16BIT num_app_sig_entries;
363  SI_APP_SIG_DESC *app_sig_desc_array;
364  BOOLEAN has_ait;
365  BOOLEAN has_rct;
366  U8BIT num_tunnelled_entries;
367  SI_FREESAT_TUNNELLED_DATA_DESC *tunnelled_desc_array;
368  U32BIT carousel_id;
369 
370  SI_AC3_DESC *ac3_descriptor;
371  SI_AD_DESC *audio_desc;
372  SI_AAC_DESC *aac_descriptor;
374 
375 typedef struct si_pmt_table
376 {
377  U8BIT version;
378  U16BIT serv_id;
379  U16BIT pcr_pid;
380  U16BIT num_ca_entries;
381  SI_CA_DESC *ca_desc_array;
382  U8BIT num_tunnelled_entries;
383  SI_FREESAT_TUNNELLED_DATA_DESC *tunnelled_desc_array;
384  U16BIT num_streams;
385  SI_PMT_STREAM_ENTRY *stream_list;
386  SI_PMT_STREAM_ENTRY *last_stream_entry;
387 } SI_PMT_TABLE;
388 
389 //--------------------------------------------------
390 // NIT table structures
392 {
393  U32BIT lang_code;
394  SI_STRING_DESC *name_str;
396 
397 typedef struct si_serv_list_desc
398 {
399  U16BIT serv_id;
400  U8BIT serv_type;
402 
403 typedef struct uk_dtt_lcn_desc
404 {
405  U16BIT serv_id;
406  U16BIT serv_lcn;
407  BOOLEAN visible;
408 } SI_LCN_DESC;
409 
410 typedef struct
411 {
412  U16BIT serv_id;
413  U16BIT serv_lcn;
414  BOOLEAN visible;
416 
417 typedef struct
418 {
419  U8BIT chan_list_id;
420  SI_STRING_DESC *chan_list_name;
421  U32BIT country_code;
422  U8BIT num_services;
423  SI_NORDIG_SERV_LCN *serv_array;
425 
426 typedef struct si_terr_del_sys_desc
427 {
428  U32BIT freq_hz;
429  E_STB_DP_TBWIDTH bwidth;
430  E_STB_DP_TMODE mode;
432 
433 typedef struct si_t2_del_sys_cell
434 {
435  U16BIT cell_id;
436  U8BIT num_freqs;
437  U32BIT freq_hz[6];
439 
440 typedef struct si_t2_del_sys_desc
441 {
442  U8BIT plp_id;
443  U16BIT t2_system_id;
444  E_STB_DP_TBWIDTH bwidth;
445  E_STB_DP_TMODE mode;
446  U8BIT num_cells;
447  SI_T2_DEL_SYS_CELL *cell;
449 
450 typedef struct
451 {
452  BOOLEAN is_t2;
453  union
454  {
457  } u;
459 
460 typedef struct si_cable_del_sys_desc
461 {
462  U32BIT freq_hz;
463  U8BIT fec_outer;
464  U8BIT fec_inner;
465  U8BIT modulation;
466  U32BIT symbol_rate;
468 
469 typedef struct si_sat_del_sys_desc
470 {
471  U32BIT freq_hz;
472  U16BIT position;
473  U16BIT sym_rate;
474  E_STB_DP_POLARITY polarity;
475  BOOLEAN east_west;
476  E_STB_DP_FEC fec_code;
477  BOOLEAN dvb_s2;
478  E_STB_DP_MODULATION modulation;
480 
481 typedef enum si_delivery_sys_desc_type
482 {
483  SI_DEL_SYS_DESC_TYPE_TERR,
484  SI_DEL_SYS_DESC_TYPE_SAT,
485  SI_DEL_SYS_DESC_TYPE_CABLE
486 } SI_DELIVERY_SYS_DESC_TYPE;
487 
488 typedef union si_delivery_sys_desc
489 {
491  SI_CABLE_DEL_SYS_DESC cable;
492  SI_TERR_DEL_SYS terr;
494 
496 {
497  U16BIT serv_id;
498  BOOLEAN service_selectable;
499  BOOLEAN service_visible;
501 
502 typedef struct si_nit_region_name
503 {
504  U8BIT region_depth;
505  SI_STRING_DESC *region_name;
506  U8BIT primary_region_code;
507  U8BIT secondary_region_code;
508  U16BIT tertiary_region_code;
510 
512 {
513  struct si_nit_target_region_name_desc *next;
514  U32BIT country_code;
515  U32BIT lang_code;
516  U8BIT num_names;
517  SI_NIT_REGION_NAME *name_array;
519 
520 typedef struct si_ciplus_service
521 {
522  struct si_ciplus_service *next;
523  U16BIT id;
524  U8BIT type;
525  BOOLEAN visible;
526  BOOLEAN selectable;
527  U16BIT lcn;
528  SI_STRING_DESC *provider_str;
529  SI_STRING_DESC *name_str;
531 
533 {
534  struct si_nit_transport_entry *next;
535  U16BIT tran_id;
536  U16BIT orig_net_id;
537  SI_DELIVERY_SYS_DESC_TYPE del_sys_desc_type;
538  SI_DELIVERY_SYS_DESC *del_sys_desc;
539  U16BIT num_freq_list_entries;
540  U32BIT *freq_list_desc_array;
541  U16BIT num_serv_list_entries;
542  SI_SERV_LIST_DESC *serv_list_desc_array;
543  U16BIT num_lcn_entries;
544  SI_LCN_DESC *lcn_desc_array;
545  SI_STRING_DESC *def_authority;
546  U16BIT num_serv_attr_entries;
547  SI_SERV_ATTRIBUTE_DESC *serv_attr_array;
548  U16BIT num_nordig_lcn_entries;
549  SI_NORDIG_LCN_DESC *nordig_lcn_desc_array;
550  U16BIT num_hd_lcn_entries;
551  SI_LCN_DESC *hd_lcn_desc_array;
552  SI_FTA_CONTENT_DESC *fta_content_desc;
553  SI_TARGET_REGION_DESC *target_region_list;
554  U16BIT num_ciplus_services;
555  SI_CIPLUS_SERVICE *ciplus_service_list;
556  SI_CIPLUS_SERVICE *last_ciplus_service;
558 
559 typedef enum
560 {
561  CATEGORY_ALL_RECEIVERS = 0,
562  CATEGORY_T2_RECEIVERS = 1
563 } SI_NIT_RECEIVER_CATEGORY;
564 
565 typedef enum
566 {
567  NET_CHANGE_MESSAGE_ONLY = 0x0,
568  NET_CHANGE_MINOR_DEFAULT = 0x1,
569  NET_CHANGE_MULTIPLEX_REMOVE = 0x2,
570  NET_CHANGE_SERVICE_CHANGE = 0x3,
571  NET_CHANGE_MINOR_RESERVED_1 = 0x4,
572  NET_CHANGE_MINOR_RESERVED_2 = 0x5,
573  NET_CHANGE_MINOR_RESERVED_3 = 0x6,
574  NET_CHANGE_MINOR_RESERVED_4 = 0x7,
575  NET_CHANGE_MAJOR_DEFAULT = 0x8,
576  NET_CHANGE_MULTIPLEX_FREQ_CHANGE = 0x9,
577  NET_CHANGE_MULTIPLEX_COVERAGE_CHANGE = 0xA,
578  NET_CHANGE_MULTIPLEX_ADDED = 0xB,
579  NET_CHANGE_MAJOR_RESERVED_1 = 0xC,
580  NET_CHANGE_MAJOR_RESERVED_2 = 0xD,
581  NET_CHANGE_MAJOR_RESERVED_3 = 0xE,
582  NET_CHANGE_MAJOR_RESERVED_4 = 0xF
583 } SI_NIT_NETWORK_CHANGE_TYPE;
584 
585 typedef struct si_nit_change_entry
586 {
587  U8BIT change_id;
588  U8BIT version;
589  U16BIT start_date;
590  U8BIT start_hours;
591  U8BIT start_mins;
592  U8BIT start_secs;
593  U8BIT dur_hours;
594  U8BIT dur_mins;
595  U8BIT dur_secs;
596  SI_NIT_RECEIVER_CATEGORY receiver_category;
597  SI_NIT_NETWORK_CHANGE_TYPE change_type;
598  U8BIT message_id;
599  BOOLEAN invariant_ts_present;
600  U16BIT invariant_ts_tsid;
601  U16BIT invariant_ts_onid;
603 
605 {
606  U16BIT cell_id;
607  U8BIT num_changes;
608  SI_NIT_CHANGE_ENTRY *change_array;
610 
611 typedef struct si_nit_message_entry
612 {
613  U8BIT message_id;
614  U32BIT lang_code;
615  SI_STRING_DESC *message;
617 
619 {
620  U16BIT onet_id;
621  U16BIT trans_id;
622  U16BIT serv_id;
623  U8BIT num_data_types;
624  U8BIT *data_types;
625  struct si_freesat_linkage_desc *next;
627 
629 {
630  U8BIT prefix_index;
631  SI_STRING_DESC *uri_prefix;
632  struct si_freesat_prefix_desc *next;
634 
635 typedef struct si_nit_table
636 {
637  U8BIT version;
638  U16BIT net_id;
639  SI_STRING_DESC *name_str;
640  U16BIT num_multiling_net_names;
641  SI_MULTILING_NET_NAME_DESC *multiling_net_name_desc_array;
642  U16BIT num_linkage_entries;
643  SI_LINKAGE_DESC_ENTRY *linkage_desc_list;
644  SI_LINKAGE_DESC_ENTRY *last_linkage_entry;
645  SI_STRING_DESC *def_authority;
646  U16BIT num_transports;
647  SI_NIT_TRANSPORT_ENTRY *transport_list;
648  SI_NIT_TRANSPORT_ENTRY *last_transport_entry;
649  U16BIT num_change_notifies;
650  SI_NIT_CHANGE_NOTIFY_DESC *change_notify_array;
651  U16BIT num_messages;
652  SI_NIT_MESSAGE_ENTRY *message_array;
653  SI_FTA_CONTENT_DESC *fta_content_desc;
654  SI_NIT_TARGET_REGION_NAME_DESC *target_region_name_list;
655  SI_TARGET_REGION_DESC *target_region_list;
656  SI_FREESAT_LINKAGE_DESC *freesat_linkage_desc;
657  SI_FREESAT_PREFIX_DESC *freesat_prefix_list;
658 } SI_NIT_TABLE;
659 
660 //--------------------------------------------------
661 // SDT table structures
663 {
664  U32BIT lang_code;
665  SI_STRING_DESC *name_str;
666  SI_STRING_DESC *provider_str;
668 
669 typedef struct
670 {
671  U32BIT lang_code;
672  SI_STRING_DESC *name_str;
674 
676 {
677  U32BIT lang_code;
678  U8BIT name_id;
679  SI_STRING_DESC *name_str;
681 
682 typedef enum
683 {
684  RUN_STATE_UNDEFINED = 0,
685  RUN_STATE_NOT_RUNNING,
686  RUN_STATE_STARTS_SOON,
687  RUN_STATE_PAUSING,
688  RUN_STATE_RUNNING,
689  RUN_STATE_OFF_AIR
690 } E_RUNNING_STATE;
691 
692 typedef struct si_sdt_service_entry
693 {
694  struct si_sdt_service_entry *next;
695  U16BIT serv_id;
696  BOOLEAN eit_sched_avail;
697  BOOLEAN eit_now_next_avail;
698  U8BIT running_status;
699  BOOLEAN all_streams_free;
700  U8BIT serv_type;
701  SI_STRING_DESC *name_str;
702  SI_STRING_DESC *provider_str;
703  U8BIT num_ca_id_entries;
704  U16BIT *ca_id_desc_array;
705  U16BIT num_multiling_names;
706  SI_MULTILING_SERV_NAME_DESC *multiling_name_desc_array;
707  U16BIT num_preferred_names;
708  SI_PREFERRED_NAME_DESC *preferred_name_desc_array;
709  U16BIT num_linkage_entries;
710  SI_LINKAGE_DESC_ENTRY *linkage_desc_list;
711  SI_LINKAGE_DESC_ENTRY *last_linkage_entry;
712  SI_STRING_DESC *def_authority;
713  SI_STRING_DESC *short_name_str;
714  U16BIT num_multiling_short_names;
715  SI_MULTILING_SHORT_NAME_DESC *multiling_short_name_array;
716  SI_GUIDANCE_DESC *guidance;
717  SI_FTA_CONTENT_DESC *fta_content_desc;
718  SI_TARGET_REGION_DESC *target_region_list;
719  SI_SERV_AVAIL_DESC *serv_avail_desc_list;
720  U8BIT *ci_protection_desc;
721  SI_FREESAT_PREFIX_DESC *freesat_prefix_list;
723 
724 typedef struct si_sdt_table
725 {
726  U8BIT version;
727  U16BIT tran_id;
728  U16BIT orig_net_id;
729  U16BIT num_services;
730  SI_SDT_SERVICE_ENTRY *service_list;
731  SI_SDT_SERVICE_ENTRY *last_service_entry;
732 } SI_SDT_TABLE;
733 
734 
735 //--------------------------------------------------
736 // BAT table structures
737 
738 typedef struct si_freesat_lcn
739 {
740  BOOLEAN numeric_selection;
741  BOOLEAN visible_flag;
742  BOOLEAN user_cust;
743  U16BIT lcn;
744  U16BIT region_id;
745  struct si_freesat_lcn *next;
747 
749 {
750  U16BIT tran_id;
751  U16BIT orig_net_id;
752  U16BIT service_id;
753  U16BIT freesat_id;
754  struct si_bat_freesat_region_lcn_entry *next;
755  SI_FREESAT_LCN *freesat_lcn_list;
757 
759 {
760  struct si_bat_transport_entry *next;
761  U16BIT tran_id;
762  U16BIT orig_net_id;
763  SI_SERV_LIST_DESC *serv_list_desc_array;
764  U16BIT num_serv_list_entries;
765  U16BIT num_lcn_entries;
766  SI_LCN_DESC *lcn_desc_array;
767  SI_BAT_FREESAT_REGION_LCN_ENTRY *lcn_region_list;
768  SI_STRING_DESC *def_authority;
769  SI_FTA_CONTENT_DESC *fta_content_desc;
770  U16BIT *int_rest_serv_array; /* Interactive restrictive services */
771  U8BIT num_int_rest_serv;
773 
775 {
776  U32BIT lang_code;
777  SI_STRING_DESC *name_str;
779 
781 {
782  U8BIT group_type;
783  U16BIT group_id;
784  SI_MULTILANG_GROUP_NAME_DESC *string_array;
785  U8BIT num_group_names;
786  struct si_bat_freesat_group_name_entry *next_group;
788 
790 {
791  U16BIT group_id;
792  BOOLEAN non_destructive_flag;
793  BOOLEAN return_channel_access_flag;
794  BOOLEAN g2_extension_flag;
795  U8BIT g2_flags;
796  U8BIT num_services;
797  U16BIT *freesat_id;
798  struct si_bat_freesat_serv_group_entry *next_group;
800 
802 {
803  U8BIT *data;
804  U8BIT length;
805  struct si_bat_freesat_iactive_storage_desc *next_desc;
807 
808 typedef struct si_bat_freesat_region
809 {
810  U16BIT region_id;
811  U32BIT lang_code;
812  SI_STRING_DESC *region_name;
813  struct si_bat_freesat_region *next;
815 
817 {
818  U16BIT orig_net_id;
819  U16BIT transport_id;
820  U16BIT service_id;
821  struct si_freesat_info_location *next;
823 
824 typedef struct si_bat_table
825 {
826  U8BIT version;
827  U16BIT bouquet_id;
828  SI_STRING_DESC *bouquet_name;
829  SI_STRING_DESC *def_authority;
830  SI_BAT_FREESAT_REGION *region_list;
831  U16BIT num_linkage_entries;
832  SI_LINKAGE_DESC_ENTRY *linkage_desc_list;
833  SI_LINKAGE_DESC_ENTRY *last_linkage_entry;
834  U16BIT num_transports;
835  SI_BAT_TRANSPORT_ENTRY *transport_list;
836  SI_BAT_TRANSPORT_ENTRY *last_transport_entry;
837  SI_BAT_FREESAT_GROUP_NAME_ENTRY *group_name_list;
838  U16BIT num_serv_groups;
839  SI_BAT_FREESAT_SERV_GROUP_ENTRY *serv_group_array;
840  SI_FTA_CONTENT_DESC *fta_content_desc;
841  SI_BAT_FREESAT_IACTIVE_STORAGE_DESC *iactive_storage_desc_list;
842  SI_BAT_FREESAT_INFO_LOCATION *info_location_list;
843  SI_FREESAT_PREFIX_DESC *freesat_prefix_list;
844 } SI_BAT_TABLE;
845 
846 
847 //--------------------------------------------------
848 // EIT table structures
849 
850 typedef struct si_component_desc
851 {
852  U8BIT tag;
853  U8BIT content;
854  U8BIT type;
855  U32BIT lang_code;
856  SI_STRING_DESC *desc_str;
858 
860 {
861  U8BIT tag;
862  U32BIT lang_code;
863  SI_STRING_DESC *desc_str;
865 
866 typedef struct si_content_desc
867 {
868  U8BIT level_1;
869  U8BIT level_2;
870  U8BIT user_1;
871  U8BIT user_2;
873 
875 {
876  U32BIT country_code;
877  U8BIT rating;
879 
880 typedef struct si_short_event_desc
881 {
882  U32BIT lang_code;
883  SI_STRING_DESC *name_str;
884  SI_STRING_DESC *desc_str;
886 
888 {
889  U8BIT desc_number;
890  U8BIT last_desc_number;
891  U32BIT lang_code;
892  U8BIT num_items;
893  SI_STRING_DESC **item_desc_array;
894  SI_STRING_DESC **item_text_array;
895  SI_STRING_DESC *text_str;
897 
898 typedef struct si_crid_desc
899 {
900  struct si_crid_desc *next;
901  U8BIT type;
902  SI_STRING_DESC *crid_str;
903 } SI_CRID_DESC;
904 
905 typedef struct si_eit_event_entry
906 {
907  struct si_eit_event_entry *next;
908  U8BIT sect_num;
909  U16BIT event_id;
910  U16BIT start_date; // mjd format
911  U8BIT start_hrs;
912  U8BIT start_mins;
913  U8BIT start_secs;
914  U8BIT duration_hrs;
915  U8BIT duration_mins;
916  U8BIT duration_secs;
917  U8BIT running_status;
918  BOOLEAN all_streams_free;
919  U8BIT preferred_name_id;
920  U8BIT num_ca_id_entries;
921  U16BIT *ca_id_desc_array;
922  U8BIT num_component_entries;
923  SI_COMPONENT_DESC *component_desc_array;
924  U8BIT num_content_entries;
925  SI_CONTENT_DESC *content_desc_array;
926  U8BIT num_multiling_component_entries;
927  SI_MULTILING_COMPONENT_DESC *multiling_component_desc_array;
928  U8BIT num_parental_rating_entries;
929  SI_PARENTAL_RATING_DESC *parental_rating_desc_array;
930  U8BIT num_short_event_entries;
931  SI_SHORT_EVENT_DESC *short_event_desc_array;
932  U8BIT num_extended_event_entries;
933  SI_EXTENDED_EVENT_DESC *extended_event_desc_array;
934  U8BIT num_crids;
935  SI_CRID_DESC *crid_list;
936  SI_CRID_DESC *last_crid_entry;
937  SI_GUIDANCE_DESC *guidance;
938  SI_FTA_CONTENT_DESC *fta_content_desc;
940 
941 typedef struct si_eit_table
942 {
943  U8BIT version;
944  U8BIT table_id;
945  U16BIT serv_id;
946  U16BIT tran_id;
947  U16BIT orig_net_id;
948  U8BIT last_table_id;
949  U16BIT num_events;
950  SI_EIT_EVENT_ENTRY *event_list;
951  SI_EIT_EVENT_ENTRY *last_event_entry;
952 } SI_EIT_TABLE;
953 
954 
955 //--------------------------------------------------
956 // Time and date table structures
957 typedef struct si_lto_desc
958 {
959  U32BIT country_code;
960  U8BIT region;
961  BOOLEAN offset_negative;
962  U8BIT offset_hrs;
963  U8BIT offset_mins;
964  U16BIT change_date; // mjd format
965  U8BIT change_hrs;
966  U8BIT change_mins;
967  U8BIT change_secs;
968  U8BIT next_offset_hrs;
969  U8BIT next_offset_mins;
970 } SI_LTO_DESC;
971 
972 typedef struct si_time_table
973 {
974  U16BIT date; // mjd format
975  U8BIT hrs;
976  U8BIT mins;
977  U8BIT secs;
978  U16BIT num_lto_entries;
979  SI_LTO_DESC *lto_desc_array;
980 } SI_TIME_TABLE;
981 
982 
983 //--------------------------------------------------
984 // Related content table (RCT) structures
985 typedef enum
986 {
987  RCT_LINK_TYPE_URI = 0x0,
988  RCT_LINK_TYPE_BINARY = 0x1,
989  RCT_LINK_TYPE_URI_BINARY = 0x2,
990  RCT_LINK_TYPE_DESCRIPTOR = 0x3
991 } E_RCT_LINK_TYPE;
992 
993 typedef enum
994 {
995  RCT_HOW_RELATED_TVA_2004 = 0x00,
996  RCT_HOW_RELATED_TVA_2005 = 0x01,
997  RCT_HOW_RELATED_TVA_2007 = 0x02
998 } E_RCT_HOW_RELATED;
999 
1000 typedef enum
1001 {
1002  RCT_TERMID_IS_TRAILER_OF = 0x0002,
1003  RCT_TERMID_IS_GROUP_TRAILER_OF = 0x0005
1004 } E_RCT_TERM_ID;
1005 
1006 typedef struct si_rct_promo_text
1007 {
1008  U32BIT lang_code;
1009  SI_STRING_DESC *string;
1011 
1012 typedef struct si_rct_link_info
1013 {
1014  E_RCT_LINK_TYPE link_type;
1015  E_RCT_HOW_RELATED how_related;
1016  U16BIT term_id;
1017  U8BIT group_id;
1018  U8BIT precedence;
1019  U8BIT *uri_string;
1020  U8BIT num_items;
1021  SI_RCT_PROMO_TEXT *promo_text_array;
1022  BOOLEAN can_use_default_icon;
1023  U8BIT icon_id;
1024  SI_SHORT_EVENT_DESC *event_desc;
1025  U8BIT num_icons;
1026  SI_IMAGE_ICON_DESC *icon_array;
1028 
1029 typedef struct si_rct_subtable_data
1030 {
1031  U16BIT year_offset;
1032  U8BIT link_count;
1033  SI_RCT_LINK_INFO *link_array;
1034  U8BIT num_icons;
1035  SI_IMAGE_ICON_DESC *icon_array;
1036  struct si_rct_subtable_data *next;
1038 
1039 typedef struct si_rct_subtable
1040 {
1041  U8BIT version;
1042  U16BIT service_id;
1043  SI_RCT_SUBTABLE_DATA *data;
1044  struct si_rct_subtable *next;
1045 } SI_RCT_SUBTABLE;
1046 
1047 typedef struct si_rct_table
1048 {
1049  SI_RCT_SUBTABLE *subtables;
1050 } SI_RCT_TABLE;
1051 
1052 
1053 //---Global Function prototypes for public use---------------------------------
1054 
1055 void STB_SISetCountryPrivateDataSpecifier(U32BIT code);
1056 void STB_SISetFreesatPrivateDataSpecifierMode(BOOLEAN mode);
1057 void STB_SISetCiplusPrivateDataSpecifierMode(BOOLEAN mode);
1058 void STB_SISetEacemPrivateDataSpecifierMode(BOOLEAN mode);
1059 void STB_SISetNZSatPrivateDataSpecifierMode(BOOLEAN mode);
1060 void STB_SISetUserDefinedDescriptorFunction(U8BIT dtag, STB_SI_USER_DEF_DESCRIP_FUNCTION func);
1062 
1063 void *STB_SIRequestPat(U8BIT path, E_SI_REQUEST_TYPE req_type,
1064  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1065 
1066 void *STB_SIRequestPmt(U8BIT path, E_SI_REQUEST_TYPE req_type, U16BIT pmt_pid,
1067  U16BIT sid_match, U16BIT sid_mask, U16BIT table_count,
1068  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1069 void STB_SIModifyPmtRequest(void *fhandle, U16BIT sid_match, U16BIT sid_mask, U16BIT table_count);
1070 
1071 void *STB_SIRequestNit(U8BIT path, E_SI_REQUEST_TYPE req_type,
1072  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1073 
1084 void *STB_SIRequestNitFromPid(U8BIT path, U16BIT pid, BOOLEAN actual, E_SI_REQUEST_TYPE req_type,
1085  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1086 
1087 void *STB_SIRequestSdt(U8BIT path, E_SI_REQUEST_TYPE req_type,
1088  BOOLEAN inc_sdt_actual, BOOLEAN inc_sdt_other,
1089  U16BIT tran_id_match, U16BIT tran_id_mask, U16BIT table_count,
1090  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1091 
1092 void *STB_SIRequestSdtFromPid(U8BIT path, U16BIT pid, E_SI_REQUEST_TYPE req_type,
1093  BOOLEAN inc_sdt_actual, BOOLEAN inc_sdt_other,
1094  U16BIT tran_id_match, U16BIT tran_id_mask, U16BIT table_count,
1095  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1096 
1097 void STB_SIModifySdtRequest(void *fhandle, BOOLEAN inc_sdt_actual, BOOLEAN inc_sdt_other,
1098  U16BIT tran_id_match, U16BIT tran_id_mask, U16BIT table_count);
1099 
1100 void *STB_SIRequestBat(U8BIT path, E_SI_REQUEST_TYPE req_type, U16BIT bouquet_id_match,
1101  U16BIT bouquet_id_mask, U16BIT table_count, void (*callback)(void *, U32BIT, SI_TABLE_RECORD *),
1102  U32BIT ret_param);
1103 
1104 void *STB_SIRequestBatFromPid(U8BIT path, U16BIT pid, E_SI_REQUEST_TYPE req_type,
1105  U16BIT tran_id_match, U16BIT tran_id_mask, U16BIT table_count,
1106  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1107 
1108 void *STB_SIRequestEit(U8BIT path, E_SI_REQUEST_TYPE req_type, E_SI_EIT_TABLE_REQ reqd_eit_tables,
1109  U16BIT sid_match, U16BIT sid_mask, U16BIT table_count,
1110  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1111 
1112 void *STB_SIRequestEitFromPid(U8BIT path, U16BIT pid, E_SI_REQUEST_TYPE req_type, E_SI_EIT_TABLE_REQ reqd_eit_tables,
1113  U16BIT sid_match, U16BIT sid_mask, U16BIT table_count,
1114  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1115 
1116 void STB_SIModifyEitRequest(void *fhandle, E_SI_EIT_TABLE_REQ reqd_eit_tables,
1117  U16BIT sid_match, U16BIT sid_mask, U16BIT table_count);
1118 
1119 void *STB_SIRequestSched(U8BIT path, E_SI_REQUEST_TYPE req_type, E_SI_SCHED_TABLE_REQ reqd_eit_tables,
1120  U16BIT sid_match, U16BIT sid_mask, U16BIT table_count,
1121  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1122 
1123 void *STB_SIRequestSchedFromPid(U8BIT path, U16BIT pid, E_SI_REQUEST_TYPE req_type, E_SI_SCHED_TABLE_REQ reqd_eit_tables,
1124  U16BIT sid_match, U16BIT sid_mask, U16BIT table_count,
1125  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1126 
1127 void *STB_SIRequestTdt(U8BIT path, E_SI_REQUEST_TYPE req_type,
1128  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1129 
1130 void *STB_SIRequestTdtFromPid(U8BIT path, U16BIT pid, E_SI_REQUEST_TYPE req_type,
1131  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1132 
1133 void *STB_SIRequestTot(U8BIT path, E_SI_REQUEST_TYPE req_type,
1134  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1135 
1136 void *STB_SIRequestTotFromPid(U8BIT path, U16BIT pid, E_SI_REQUEST_TYPE req_type,
1137  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1138 
1139 void *STB_SIRequestCat(U8BIT path, E_SI_REQUEST_TYPE req_type,
1140  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1141 
1142 void *STB_SIRequestRct(U8BIT path, E_SI_REQUEST_TYPE req_type, U16BIT rct_pid,
1143  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1144 
1153 
1154 U8BIT* STB_SIReadString(U8BIT nbytes, U8BIT *dptr, SI_STRING_DESC **str_ptr);
1155 
1156 BOOLEAN STB_SIParseDelSysDesc(U8BIT *data, SI_DELIVERY_SYS_DESC_TYPE *type, SI_DELIVERY_SYS_DESC **desc);
1157 BOOLEAN STB_SIParseServiceDescriptor(U8BIT *data, U8BIT *type, SI_STRING_DESC **provider,
1158  SI_STRING_DESC **name);
1159 BOOLEAN STB_SIParseShortEventDescriptor(U8BIT *data, SI_SHORT_EVENT_DESC **event_desc);
1160 
1161 /*!**************************************************************************
1162  * @brief Parses the given PMT to produce an array of the CA system IDs required
1163  * by the service or streams on the service. The array of IDs will be
1164  * allocated by this function and should be freed using STB_SIReleaseCaIdDescArray.
1165  * @param pmt_data - raw PMT section data
1166  * @param pmt_ca_ids - pointer to an array that will be allocated containing
1167  * the CA IDs found in the PMT
1168  * @return Number of CA IDs found in the PMT and returned in the array,
1169  * 0 if none are found.
1170  ****************************************************************************/
1171 U16BIT STB_SIGetPmtCaIdDescArray(U8BIT *pmt_data, U16BIT **pmt_ca_ids);
1172 
1182 void *STB_SIRequestAit(U8BIT path, E_SI_REQUEST_TYPE req_type, U16BIT ait_pid,
1183  void (*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param);
1184 
1185 void STB_SIReleasePatTable(SI_PAT_TABLE *pat_table);
1186 void STB_SIReleasePmtTable(SI_PMT_TABLE *pmt_table);
1187 void STB_SIReleaseNitTable(SI_NIT_TABLE *nit_table);
1188 void STB_SIReleaseSdtTable(SI_SDT_TABLE *sdt_table);
1189 void STB_SIReleaseEitTable(SI_EIT_TABLE *eit_table);
1190 void STB_SIReleaseTimeTable(SI_TIME_TABLE *time_table);
1191 void STB_SIReleaseRctTable(SI_RCT_TABLE *rct_table);
1192 void STB_SIReleaseBatTable(SI_BAT_TABLE *bat_table);
1193 
1194 // the following functions can be used to release individual table entry structures from the parsed
1195 // tables. They are mainly intended for releasing entries which have been transferred
1196 // out of the parsed tables by the application SI handler and are therefore not released when the
1197 // table is released.
1205 
1206 /* TODO These can probably become local functions */
1209 // the following functions can be used to release individual descriptor array elements from the
1210 // parsed tables. They are mainly intended for releasing descriptors which have been transferred
1211 // out of the parsed tables by the application SI handler (by setting the table element pointing to
1212 // the descriptor array to NULL), and are therefore not released when the table is released.
1213 void STB_SIReleaseDelSysDesc(SI_DELIVERY_SYS_DESC *desc, SI_DELIVERY_SYS_DESC_TYPE type);
1215 void STB_SIReleaseCaDescArray(SI_CA_DESC *desc_array, U16BIT num_entries);
1216 void STB_SIReleaseCaIdDescArray(U16BIT *desc_array, U8BIT num_entries);
1217 void STB_SIReleaseComponentDescArray(SI_COMPONENT_DESC *desc_array, U8BIT num_entries);
1218 void STB_SIReleaseContentDescArray(SI_CONTENT_DESC *desc_array, U8BIT num_entries);
1219 void STB_SIReleaseFreqListDescArray(U32BIT *desc_array, U16BIT num_entries);
1221 void STB_SIReleaseImageIconDescArray(SI_IMAGE_ICON_DESC *icon_array, U8BIT num_icons);
1222 void STB_SIReleaseIsoLangDescArray(SI_ISO_LANG_DESC *desc_array, U16BIT num_entries);
1223 void STB_SIReleaseLinkageDescList(SI_LINKAGE_DESC_ENTRY *desc_list, U16BIT num_entries);
1224 void STB_SIReleaseLtoDescArray(SI_LTO_DESC *desc_array, U16BIT num_entries);
1225 void STB_SIReleaseMultilingComponentDescArray(SI_MULTILING_COMPONENT_DESC *desc_array, U8BIT num_entries);
1226 void STB_SIReleaseMultilingNetNameDescArray(SI_MULTILING_NET_NAME_DESC *desc_array, U16BIT num_entries);
1227 void STB_SIReleaseMultilingServNameDescArray(SI_MULTILING_SERV_NAME_DESC *desc_array, U16BIT num_entries);
1228 void STB_SIReleaseMultilingShortNameArray(SI_MULTILING_SHORT_NAME_DESC *desc_array, U16BIT num_entries);
1229 void STB_SIReleaseParentalRatingDescArray(SI_PARENTAL_RATING_DESC *desc_array, U8BIT num_entries);
1230 void STB_SIReleaseServListDescArray(SI_SERV_LIST_DESC *desc_array, U16BIT num_entries);
1231 void STB_SIReleaseShortEventDescArray(SI_SHORT_EVENT_DESC *desc_array, U8BIT num_entries);
1232 void STB_SIReleaseExtendedEventDescArray(SI_EXTENDED_EVENT_DESC *desc_array, U8BIT num_entries);
1233 void STB_SIReleaseSubtitleDescArray(SI_SUBTITLE_DESC *desc_array, U16BIT num_entries);
1234 void STB_SIReleaseTeletextDescArray(SI_TELETEXT_DESC *desc_array, U16BIT num_entries);
1235 void STB_SIReleaseLcnDescArray(SI_LCN_DESC *desc_array, U16BIT num_entries);
1236 void STB_SIReleaseNordigLcn2DescArray(SI_NORDIG_LCN_DESC *desc_array, U16BIT num_entries);
1237 void STB_SIReleasePrefNameDescArray(SI_PREFERRED_NAME_DESC *desc_array, U16BIT num_entries);
1238 void STB_SIReleaseCRIDList(SI_CRID_DESC *crid_list);
1246 
1247 #endif // _STBSITAB_H
1248 
1249 //*****************************************************************************
1250 // End of file
1251 //*****************************************************************************
1252 
Definition: stbsitab.h:880
void STB_SIReleaseAvailabilityDescriptorList(SI_SERV_AVAIL_DESC *desc_list)
Frees the memory used by the descriptor list specified.
Definition: stbsitab.c:12233
Definition: stbsitab.h:618
Definition: stbsitab.h:808
Definition: stbsitab.h:152
void * STB_SIRequestAit(U8BIT path, E_SI_REQUEST_TYPE req_type, U16BIT ait_pid, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for AIT on given PID.
Definition: stbsitab.c:12653
Definition: stbsitab.h:259
void STB_SIReleaseParentalRatingDescArray(SI_PARENTAL_RATING_DESC *desc_array, U8BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:12002
void STB_SIReleaseMultilingNetNameDescArray(SI_MULTILING_NET_NAME_DESC *desc_array, U16BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:11914
Definition: stbsitab.h:306
void STB_SIReleaseBatTable(SI_BAT_TABLE *bat_table)
Frees the memory used by the bat table.
Definition: stbsitab.c:10962
void * STB_SIRequestEitFromPid(U8BIT path, U16BIT pid, E_SI_REQUEST_TYPE req_type, E_SI_EIT_TABLE_REQ reqd_eit_tables, U16BIT sid_match, U16BIT sid_mask, U16BIT table_count, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for EIT.
Definition: stbsitab.c:7866
Definition: stbsitab.h:635
void * STB_SIRequestTotFromPid(U8BIT path, U16BIT pid, E_SI_REQUEST_TYPE req_type, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for TOT.
Definition: stbsitab.c:8118
Definition: stbsitab.h:748
Definition: stbsitab.h:675
Definition: stbsitab.h:469
Definition: stbsitab.h:789
void STB_SIReleaseRctTable(SI_RCT_TABLE *rct_table)
Frees memory used by an RCT table.
Definition: stbsitab.c:11129
SI_NIT_TABLE * STB_SIParseNitTable(SI_TABLE_RECORD *table_rec)
Parses the Nit table supplied in TABLE_RECORD format to create a NIT_TABLE structure. Returns a pointer to the table. Application must call STB_SIReleaseNitTable to free the data.
Definition: stbsitab.c:8745
Definition: stbsitab.h:403
Definition: stbsitab.h:135
Definition: stbsitab.h:801
Definition: stbsitab.h:604
void STB_SIReleaseCRIDList(SI_CRID_DESC *crid_list)
Frees the memory used by the descriptor list specified.
Definition: stbsitab.c:12383
Definition: stbsitab.h:460
Header file - macros and function prototypes for public use.
Definition: stbsitab.h:1029
void * STB_SIRequestNitFromPid(U8BIT path, U16BIT pid, BOOLEAN actual, E_SI_REQUEST_TYPE req_type, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Create an SI filter for an NIT table.
Definition: stbsitab.c:7537
SI_SDT_TABLE * STB_SIParseSdtTable(SI_TABLE_RECORD *table_rec)
Parses the Sdt table supplied in TABLE_RECORD format to create a SDT_TABLE structure. Returns a pointer to the table. Application must call STB_SIReleaseSdtTable to free the data.
Definition: stbsitab.c:9199
void STB_SIReleaseLinkageDescList(SI_LINKAGE_DESC_ENTRY *desc_list, U16BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:11825
Definition: stbsitab.h:450
void STB_SIReleaseTargetRegionList(SI_TARGET_REGION_DESC *desc_list)
Frees the memory used by the descriptor list specified.
Definition: stbsitab.c:12196
void STB_SIModifyEitRequest(void *fhandle, E_SI_EIT_TABLE_REQ reqd_eit_tables, U16BIT sid_match, U16BIT sid_mask, U16BIT table_count)
Modifies request for SDT to look for different transport on SAME PID.
Definition: stbsitab.c:7904
void STB_SIReleasePmtTable(SI_PMT_TABLE *pmt_table)
Frees the memory used by the pmt table.
Definition: stbsitab.c:10809
Definition: stbsitab.h:375
void STB_SISetCountryPrivateDataSpecifier(U32BIT code)
Sets the private data identified by the specified code.
Definition: stbsitab.c:7297
Definition: stbsitab.h:628
void STB_SIReleaseTimeTable(SI_TIME_TABLE *time_table)
Frees the memory used by the time table (tdt or tot)
Definition: stbsitab.c:11109
Definition: stbsitab.h:232
Definition: stbsitab.h:692
void * STB_SIRequestCat(U8BIT path, E_SI_REQUEST_TYPE req_type, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for CAT.
Definition: stbsitab.c:8151
Definition: stbsitab.h:738
void STB_SIClearUserDefinedDescriptorFunctions(void)
Clear all entries in the user defined SI descriptor table.
Definition: stbsitab.c:7383
Definition: stbsitab.h:184
Definition: stbsitab.h:887
void STB_SIReleaseStringDesc(SI_STRING_DESC *desc)
Frees the memory used by the descriptor specified.
Definition: stbsitab.c:11568
SI_PAT_TABLE * STB_SIParsePatTable(SI_TABLE_RECORD *table_rec)
Parses the Pat table supplied in TABLE_RECORD format to create a PAT_TABLE structure. Returns a pointer to the table. Application must call STB_SIReleasePatTable to free the data.
Definition: stbsitab.c:8221
void STB_SIReleaseDelSysDesc(SI_DELIVERY_SYS_DESC *desc, SI_DELIVERY_SYS_DESC_TYPE type)
Frees the memory used by the descriptor specified.
Definition: stbsitab.c:11517
Definition: stbsitab.h:532
void STB_SIReleaseLcnDescArray(SI_LCN_DESC *desc_array, U16BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:12293
SI_TIME_TABLE * STB_SIParseTimeTable(SI_TABLE_RECORD *table_rec)
Parses the tdt or tot table supplied in TABLE_RECORD format to create a TIME_TABLE structure...
Definition: stbsitab.c:10182
Definition: stbsitab.h:866
Definition: stbsitab.h:299
Definition: stbsiflt.h:84
void STB_SIReleaseFreesatLinkageDesc(SI_FREESAT_LINKAGE_DESC *desc)
Frees memory used by an SI_FREESAT_LINKAGE_DESC structure.
Definition: stbsitab.c:12442
void STB_SIReleaseNordigLcn2DescArray(SI_NORDIG_LCN_DESC *desc_array, U16BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:12318
SI_BAT_TABLE * STB_SIParseBatTable(SI_TABLE_RECORD *table_rec)
Parses the BAT table supplied in TABLE_RECORD format to create a SI_BAT_TABLE structure. Returns a pointer to the table. Application must call STB_SIReleaseBatTable to free the data.
Definition: stbsitab.c:9538
void * STB_SIRequestPat(U8BIT path, E_SI_REQUEST_TYPE req_type, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for PAT.
Definition: stbsitab.c:7411
void STB_SIReleaseFreqListDescArray(U32BIT *desc_array, U16BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:11699
void STB_SIReleaseEitTable(SI_EIT_TABLE *eit_table)
Frees the memory used by the eit table.
Definition: stbsitab.c:11072
Definition: stbsitab.h:859
void * STB_SIRequestSdtFromPid(U8BIT path, U16BIT pid, E_SI_REQUEST_TYPE req_type, BOOLEAN inc_sdt_actual, BOOLEAN inc_sdt_other, U16BIT tran_id_match, U16BIT tran_id_mask, U16BIT table_count, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for SDT.
Definition: stbsitab.c:7643
Definition: stbsitab.h:292
Definition: stbsitab.h:495
void * STB_SIRequestTdt(U8BIT path, E_SI_REQUEST_TYPE req_type, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for TDT.
Definition: stbsitab.c:8018
void STB_SISetUserDefinedDescriptorFunction(U8BIT dtag, STB_SI_USER_DEF_DESCRIP_FUNCTION func)
Sets the function allocated to the user defined descriptor.
Definition: stbsitab.c:7355
void STB_SIReleaseComponentDescArray(SI_COMPONENT_DESC *desc_array, U8BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:11644
void STB_SIReleaseCaDescArray(SI_CA_DESC *desc_array, U16BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:11592
void STB_SIReleaseMultilingComponentDescArray(SI_MULTILING_COMPONENT_DESC *desc_array, U8BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:11881
void STB_SIReleaseTeletextDescArray(SI_TELETEXT_DESC *desc_array, U16BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:12268
Definition: stbsitab.h:669
void STB_SIReleaseMultilingServNameDescArray(SI_MULTILING_SERV_NAME_DESC *desc_array, U16BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:11947
BOOLEAN STB_SIParseShortEventDescriptor(U8BIT *data, SI_SHORT_EVENT_DESC **event_desc)
Parses a short event descriptor, tag 0x4d, that must be released by calling STB_SIReleaseShortEventDe...
Definition: stbsitab.c:10731
Definition: stbsitab.h:313
Definition: stbsitab.h:585
void * STB_SIRequestBatFromPid(U8BIT path, U16BIT pid, E_SI_REQUEST_TYPE req_type, U16BIT tran_id_match, U16BIT tran_id_mask, U16BIT table_count, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for Bat.
Definition: stbsitab.c:7782
Definition: stbsitab.h:874
void * STB_SIRequestPmt(U8BIT path, E_SI_REQUEST_TYPE req_type, U16BIT pmt_pid, U16BIT sid_match, U16BIT sid_mask, U16BIT table_count, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for PMT.
Definition: stbsitab.c:7448
Definition: stbsitab.h:1039
BOOLEAN STB_SIParseDelSysDesc(U8BIT *data, SI_DELIVERY_SYS_DESC_TYPE *type, SI_DELIVERY_SYS_DESC **desc)
Parses and allocates a system delivery descriptor which should be freed by calling STB_SIReleaseDelSy...
Definition: stbsitab.c:10622
void STB_SIReleaseIsoLangDescArray(SI_ISO_LANG_DESC *desc_array, U16BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:11800
Definition: stbsitab.h:440
BOOLEAN STB_SIParseServiceDescriptor(U8BIT *data, U8BIT *type, SI_STRING_DESC **provider, SI_STRING_DESC **name)
Parses a service descriptor, tag 0x48, allocating SI strings that must be freed using STB_SIReleaseSt...
Definition: stbsitab.c:10699
Definition: stbsitab.h:905
Definition: stbsitab.h:207
Definition: stbsitab.h:774
void STB_SIReleaseGuidanceDesc(SI_GUIDANCE_DESC *desc_ptr)
Frees the memory used by the descriptor specified.
Definition: stbsitab.c:11724
SI_PMT_TABLE * STB_SIParsePmtTable(SI_TABLE_RECORD *table_rec)
Parses the Pmt table supplied in TABLE_RECORD format to create a PMT_TABLE structure. Returns a pointer to the table. Application must call STB_SIReleasePmtTable to free the data.
Definition: stbsitab.c:8348
U8BIT * STB_SIReadString(U8BIT nbytes, U8BIT *dptr, SI_STRING_DESC **str_ptr)
Copies a string from a descriptor for the specified length. Converts the number of bytes specified in...
Definition: stbsitab.c:10498
Definition: stbsitab.h:397
void STB_SIReleaseSdtTable(SI_SDT_TABLE *sdt_table)
Frees the memory used by the sdt table.
Definition: stbsitab.c:10926
void STB_SIReleaseCIPlusServiceList(SI_CIPLUS_SERVICE *service_list)
Frees a CI+ service list.
Definition: stbsitab.c:12496
Definition: stbsitab.h:391
void STB_SIReleaseEitEventEntry(SI_EIT_EVENT_ENTRY *entry_ptr)
Frees the memory used by the table entry specified.
Definition: stbsitab.c:11410
void * STB_SIRequestBat(U8BIT path, E_SI_REQUEST_TYPE req_type, U16BIT bouquet_id_match, U16BIT bouquet_id_mask, U16BIT table_count, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for Bat.
Definition: stbsitab.c:7743
void STB_SIReleaseSdtServiceEntry(SI_SDT_SERVICE_ENTRY *entry_ptr)
Frees the memory used by the table entry specified.
Definition: stbsitab.c:11362
Definition: stbsitab.h:724
void STB_SIReleaseShortEventDescArray(SI_SHORT_EVENT_DESC *desc_array, U8BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:12052
Definition: stbsitab.h:1047
Definition: stbsitab.h:898
Definition: stbsitab.h:161
void * STB_SIRequestTdtFromPid(U8BIT path, U16BIT pid, E_SI_REQUEST_TYPE req_type, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for TDT.
Definition: stbsitab.c:8052
Definition: stbsitab.h:520
SI_RCT_TABLE * STB_SIParseRctTable(SI_TABLE_RECORD *table_rec)
Parses the related content table (RCT) to create an SI_RCT_TABLE structure.
Definition: stbsitab.c:10271
Definition: stbsitab.h:177
Definition: stbsitab.h:141
Definition: stbsitab.h:346
System Wide Global Technical Data Type Definitions.
Definition: stbsitab.h:780
void * STB_SIRequestSched(U8BIT path, E_SI_REQUEST_TYPE req_type, E_SI_SCHED_TABLE_REQ reqd_eit_tables, U16BIT sid_match, U16BIT sid_mask, U16BIT table_count, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for EIT schedule table.
Definition: stbsitab.c:7939
void STB_SIReleaseFreesatPrefixList(SI_FREESAT_PREFIX_DESC *list)
Frees memory used by an SI_FREESAT_PREFIX_DESC structure.
Definition: stbsitab.c:12469
Definition: stbsitab.h:662
void * STB_SIRequestRct(U8BIT path, E_SI_REQUEST_TYPE req_type, U16BIT rct_pid, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for RCT on given PID.
Definition: stbsitab.c:8185
Definition: stbsitab.h:251
void STB_SIReleaseRctLinkInfo(SI_RCT_LINK_INFO *link_info)
Frees memory used by an SI_RCT_LINK_INFO structure.
Definition: stbsitab.c:12404
Definition: stbsitab.h:168
Definition: stbsitab.h:340
void * STB_SIRequestSchedFromPid(U8BIT path, U16BIT pid, E_SI_REQUEST_TYPE req_type, E_SI_SCHED_TABLE_REQ reqd_eit_tables, U16BIT sid_match, U16BIT sid_mask, U16BIT table_count, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for EIT schedule table.
Definition: stbsitab.c:7981
void STB_SIReleaseBatLcnEntry(SI_BAT_FREESAT_REGION_LCN_ENTRY *entry_ptr)
Frees the memory used by the table entry specified.
Definition: stbsitab.c:11331
void STB_SIReleasePrefNameDescArray(SI_PREFERRED_NAME_DESC *desc_array, U16BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:12353
Definition: stbsitab.h:488
void * STB_SIRequestNit(U8BIT path, E_SI_REQUEST_TYPE req_type, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for NIT(actual)
Definition: stbsitab.c:7508
Definition: stbsitab.h:225
Definition: stbsitab.h:433
Definition: stbsitab.h:816
void STB_SIModifySdtRequest(void *fhandle, BOOLEAN inc_sdt_actual, BOOLEAN inc_sdt_other, U16BIT tran_id_match, U16BIT tran_id_mask, U16BIT table_count)
Modifies request for SDT to look for different transport on SAME PID.
Definition: stbsitab.c:7696
void * STB_SIRequestEit(U8BIT path, E_SI_REQUEST_TYPE req_type, E_SI_EIT_TABLE_REQ reqd_eit_tables, U16BIT sid_match, U16BIT sid_mask, U16BIT table_count, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for EIT.
Definition: stbsitab.c:7824
Definition: stbsitab.h:972
U16BIT STB_SIGetPmtCaIdDescArray(U8BIT *pmt_data, U16BIT **pmt_ca_ids)
Parses the given PMT to produce an array of the CA system IDs required by the service or streams on t...
Definition: stbsitab.c:12533
void STB_SIReleaseRctSubtable(SI_RCT_SUBTABLE *sub_ptr)
Frees memory used by an RCT subtable.
Definition: stbsitab.c:11444
Definition: stbsitab.h:243
void STB_SIReleaseContentDescArray(SI_CONTENT_DESC *desc_array, U8BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:11674
Definition: stbsitab.h:1006
void STB_SIReleaseExtendedEventDescArray(SI_EXTENDED_EVENT_DESC *desc_array, U8BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:12085
Definition: stbsitab.h:957
void STB_SIModifyPmtRequest(void *fhandle, U16BIT sid_match, U16BIT sid_mask, U16BIT table_count)
Modifies request for PMT to look for different service on SAME PID.
Definition: stbsitab.c:7482
void STB_SIReleasePmtStreamEntry(SI_PMT_STREAM_ENTRY *entry_ptr)
Frees the memory used by the table entry specified.
Definition: stbsitab.c:11193
void STB_SIReleasePatTable(SI_PAT_TABLE *pat_table)
Frees the memory used by the pat table.
Definition: stbsitab.c:10773
Definition: stbsitab.h:611
Definition: stbsitab.h:941
void STB_SIReleaseCaIdDescArray(U16BIT *desc_array, U8BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:11618
void STB_SIReleaseImageIconDescArray(SI_IMAGE_ICON_DESC *icon_array, U8BIT num_icons)
Frees an array of image icons, including the memory used by each one.
Definition: stbsitab.c:11761
Definition: stbsitab.h:824
void STB_SIReleaseNitTransportEntry(SI_NIT_TRANSPORT_ENTRY *entry_ptr)
Frees the memory used by the table entry specified.
Definition: stbsitab.c:11253
void * STB_SIRequestSdt(U8BIT path, E_SI_REQUEST_TYPE req_type, BOOLEAN inc_sdt_actual, BOOLEAN inc_sdt_other, U16BIT tran_id_match, U16BIT tran_id_mask, U16BIT table_count, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for SDT.
Definition: stbsitab.c:7586
void STB_SIReleaseServListDescArray(SI_SERV_LIST_DESC *desc_array, U16BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:12027
Definition: stbsitab.h:272
SI_EIT_TABLE * STB_SIParseEitTable(SI_TABLE_RECORD *table_rec)
Parses the Eit table supplied in TABLE_RECORD format to create a EIT_TABLE structure. Returns a pointer to the table. Application must call STB_SIReleaseEitTable to free the data.
Definition: stbsitab.c:9906
Definition: stbsitab.h:511
void STB_SIReleaseRctSubtableData(SI_RCT_SUBTABLE_DATA *data_ptr)
Frees memory used by an SI_RCT_SUBTABLE_DATA structure.
Definition: stbsitab.c:11471
Definition: stbsitab.h:426
Definition: stbds.h:126
Definition: stbsitab.h:758
Definition: stbsitab.h:410
void STB_SIReleaseBatTransportEntry(SI_BAT_TRANSPORT_ENTRY *entry_ptr)
Frees the memory used by the table entry specified.
Definition: stbsitab.c:11296
void STB_SIReleaseNitTable(SI_NIT_TABLE *nit_table)
Frees the memory used by the nit table.
Definition: stbsitab.c:10845
void STB_SIReleaseSubtitleDescArray(SI_SUBTITLE_DESC *desc_array, U16BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:12133
Definition: stbsitab.h:265
Definition: stbsitab.h:502
Definition: stbsitab.h:417
void * STB_SIRequestTot(U8BIT path, E_SI_REQUEST_TYPE req_type, void(*callback)(void *, U32BIT, SI_TABLE_RECORD *), U32BIT ret_param)
Generates request for TOT.
Definition: stbsitab.c:8085
void STB_SIReleasePatStreamEntry(SI_PAT_SERVICE_ENTRY *entry_ptr)
Frees the memory used by the table entry specified.
Definition: stbsitab.c:11173
void STB_SIReleaseLtoDescArray(SI_LTO_DESC *desc_array, U16BIT num_entries)
Frees the memory used by the descriptor array specified.
Definition: stbsitab.c:11856
Header file - macros and function prototypes for public use.
void STB_SIReleaseTargetRegionNameList(SI_NIT_TARGET_REGION_NAME_DESC *desc_list)
Frees the memory used by the descriptor list specified.
Definition: stbsitab.c:12157
Definition: stbsitab.h:850