3 * EVENT INFORMATION TABLE
5 * Copyright (C) 1998 Thomas Mirlacher
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 * The author may be reached as dent@cosy.sbg.ac.at, or
22 * Thomas Mirlacher, Jakob-Haringerstr. 2, A-5020 Salzburg,
25 *------------------------------------------------------------
32 // Service Description Section
33 #include <sys/types.h>
38 #if BYTE_ORDER == BIG_ENDIAN
39 u_char section_syntax_indicator : 1;
41 u_char section_length_hi : 4;
43 u_char section_length_hi : 4;
45 u_char section_syntax_indicator : 1;
48 u_char section_length_lo : 8;
50 u_char service_id_hi : 8;
51 u_char service_id_lo : 8;
53 #if BYTE_ORDER == BIG_ENDIAN
55 u_char version_number : 5;
56 u_char current_next_indicator : 1;
58 u_char current_next_indicator : 1;
59 u_char version_number : 5;
63 u_char section_number : 8;
64 u_char last_section_number : 8;
65 u_char transport_stream_id_hi : 8;
66 u_char transport_stream_id_lo : 8;
67 u_char original_network_id_hi : 8;
68 u_char original_network_id_lo : 8;
69 u_char segment_last_section_number : 8;
70 u_char segment_last_table_id : 8;
75 struct eit_loop_struct1 {
76 u_char service_id_hi : 8;
77 u_char service_id_lo : 8;
79 #if BYTE_ORDER == BIG_ENDIAN
81 u_char eit_schedule_flag : 1;
82 u_char eit_present_following_flag : 1;
84 u_char running_status : 3;
85 u_char free_ca_mode : 1;
86 u_char descriptors_loop_length_hi : 4;
88 u_char eit_present_following_flag : 1;
89 u_char eit_schedule_flag : 1;
92 u_char descriptors_loop_length_hi : 4;
93 u_char free_ca_mode : 1;
94 u_char running_status : 3;
97 u_char descriptors_loop_length_lo : 8;
100 #define EIT_SHORT_EVENT_DESCRIPTOR 0x4d
101 #define EIT_SHORT_EVENT_DESCRIPTOR_SIZE 6
103 struct eit_short_event_descriptor_struct {
104 u_char descriptor_tag : 8;
105 u_char descriptor_length : 8;
107 u_char language_code_1 : 8;
108 u_char language_code_2 : 8;
109 u_char language_code_3 : 8;
111 u_char event_name_length : 8;
114 #define EIT_EXTENDED_EVENT_DESCRIPOR 0x4e
116 typedef struct eit_event_struct {
117 u_char event_id_hi : 8;
118 u_char event_id_lo : 8;
120 u_char start_time_1 : 8;
121 u_char start_time_2 : 8;
122 u_char start_time_3 : 8;
123 u_char start_time_4 : 8;
124 u_char start_time_5 : 8;
126 u_char duration_1 : 8;
127 u_char duration_2 : 8;
128 u_char duration_3 : 8;
130 #if BYTE_ORDER == BIG_ENDIAN
131 u_char running_status : 3;
132 u_char free_CA_mode : 1;
133 u_char descriptors_loop_length_hi : 4;
135 u_char descriptors_loop_length_hi : 4;
136 u_char free_CA_mode : 1;
137 u_char running_status : 3;
140 u_char descriptors_loop_length_lo : 8;
143 #define EIT_LOOP_SIZE 12
145 #define EIT_EXTENDED_EVENT_DESCRIPOR 0x4e
147 struct eit_extended_descriptor_struct {
148 u_char descriptor_tag : 8;
149 u_char descriptor_length : 8;
150 #if BYTE_ORDER == BIG_ENDIAN
151 u_char descriptor_number : 4;
152 u_char last_descriptor_number : 4;
154 u_char last_descriptor_number : 4;
155 u_char descriptor_number : 4;
157 u_char iso_639_2_language_code_1 : 8;
158 u_char iso_639_2_language_code_2 : 8;
159 u_char iso_639_2_language_code_3 : 8;