-//
-// EIT.h
-//
-
-#ifndef __MPEG2_TS_EIT_H__
-#define __MPEG2_TS_EIT_H__
-
-#include "mpeg2/ts/Table.h"
-
-namespace MPEG2
-{
-
-namespace TS
-{
-
-#define MAXSECLEN 4096
-
-typedef struct _EIThead {
- char table_id;
- int section_syntax_indicator;
- int reserved_future_use;
- int reserved1;
- int section_length;
- int service_id;
- int reserved2;
- int version_number;
- int current_next_indicator;
- int section_number;
- int last_section_number;
- int transport_stream_id;
- int original_network_id;
- int segment_last_section_number;
- int last_table_id;
-} EIThead;
-
-typedef struct _EITbody {
- int event_id;
- char start_time[5];
- char duration[3];
- int running_status;
- int free_CA_mode;
- int descriptors_loop_length;
-
- //
- int yy;
- int mm;
- int dd;
- int hh;
- int hm;
- int ss;
- int dhh;
- int dhm;
- int dss;
-} EITbody;
-
-typedef struct _SEVTdesc {
- int descriptor_tag;
- int descriptor_length;
- char ISO_639_language_code[3];
- int event_name_length;
- char event_name[MAXSECLEN];
- int text_length;
- char text[MAXSECLEN];
-} SEVTdesc;
-
-typedef struct _EEVTDhead {
- int descriptor_tag;
- int descriptor_length;
- int descriptor_number;
- int last_descriptor_number;
- char ISO_639_language_code[3];
- int length_of_items;
-} EEVTDhead;
-
-typedef struct _EEVTDitem {
- int item_description_length;
- char item_description[MAXSECLEN];
- int item_length;
- char item[MAXSECLEN];
-
- //
- int descriptor_number;
-} EEVTDitem;
-
-typedef struct _EEVTDtail {
- int text_length;
- char text[MAXSECLEN];
-} EEVTDtail;
-
-typedef struct _ContentDesc {
- int descriptor_tag;
- int descriptor_length;
- char content[MAXSECLEN];
-} ContentDesc;
-
-typedef struct _SeriesDesc {
- int descriptor_tag;
- int descriptor_length;
- int series_id;
- int repeat_label;
- int program_pattern;
- int expire_date_valid_flag;
- int expire_date;
- int episode_number;
- int last_episode_number;
- char series_name_char[MAXSECLEN];
-} SeriesDesc;
-
-class EIT : public Table
-{
-protected:
- bool decode_section();
-
-public:
- uint8_t _table_id; // 8
- uint8_t _section_syntax_indicator; // 1
- // 1 '1'
- // 2 '11'
- uint16_t _section_length; // 12
- uint16_t _service_id; // 16
- // 2 '11'
- uint8_t _version_number; // 5
- uint8_t _current_next_indicator; // 1
- uint8_t _section_number; // 8
- uint8_t _last_section_number; // 8
- uint16_t _transport_stream_id; // 16
- uint16_t _original_network_id; // 16
- uint8_t _segment_last_section_number; // 8
- uint8_t _last_table_id; // 8
-
- class Event
- {
-
- public:
- uint16_t _event_id; // 16
- // start_time 40
- uint16_t _st_year;
- uint8_t _st_month;
- uint8_t _st_day;
- uint8_t _st_hour;
- uint8_t _st_min;
- uint8_t _st_sec;
- // duration 24
- uint8_t _dur_hour;
- uint8_t _dur_min;
- uint8_t _dur_sec;
- uint8_t _running_status; // 3
- uint8_t _free_CA_mode; // 1
- uint16_t _descriptors_loop_length; // 12
-
- uint8_t * _descriptor_ptr;
- uint16_t _descriptor_offset;
- Descriptor _descriptor;
- Descriptor *nextDescriptor();
- };
-
- uint8_t _event_data[MAX_SECT_LEN];
- uint16_t _event_offset;
- Event _event;
-
-public:
- EIT();
- EIT(EIT &eit);
- ~EIT();
- void reset();
-
- Event *nextEvent();
-};
-
-
-} // TS
-} // MPEG2
-#endif
+/**\r
+ * @file EIT.h\r
+ *\r
+ */\r
+\r
+#pragma once\r
+\r
+#include "mpeg2/ts/Table.h"\r
+\r
+namespace MPEG2\r
+{\r
+\r
+namespace TS\r
+{\r
+\r
+class EIT : public Table\r
+{\r
+protected:\r
+ bool decode_section();\r
+\r
+public:\r
+ /*\r
+ * 0x4E : EIT(自ストリームの現在と次の番組)\r
+ * 0x4F : EIT(他ストリームの現在と次の番組)\r
+ * 0x50 - 0x5F : EIT(自ストリーム、スケジュール)\r
+ * 0x60 - 0x6F : EIT(他ストリーム、スケジュール)\r
+ */\r
+ enum\r
+ {\r
+ TABLE_ID_SELF = 0x4E,\r
+ TABLE_ID_OTHER = 0x4F,\r
+ TABLE_ID_SELF_SCHEDULE_BEGIN = 0x50,\r
+ TABLE_ID_SELF_SCHEDULE_END = 0x5F,\r
+ TABLE_ID_OTHER_SCHEDULE_BEGIN = 0x60,\r
+ TABLE_ID_OTHER_SCHEDULE_END = 0x6F\r
+ };\r
+\r
+ uint8_t _table_id; // 8\r
+ uint8_t _section_syntax_indicator; // 1\r
+ // 1 '1'\r
+ // 2 '11'\r
+ uint16_t _section_length; // 12\r
+ uint16_t _service_id; // 16\r
+ // 2 '11'\r
+ uint8_t _version_number; // 5\r
+ uint8_t _current_next_indicator; // 1\r
+ uint8_t _section_number; // 8\r
+ uint8_t _last_section_number; // 8\r
+ uint16_t _transport_stream_id; // 16\r
+ uint16_t _original_network_id; // 16\r
+ uint8_t _segment_last_section_number; // 8\r
+ uint8_t _last_table_id; // 8\r
+\r
+ class Event\r
+ {\r
+\r
+ public:\r
+ uint16_t _event_id; // 16\r
+ // start_time 40\r
+ uint16_t _st_year;\r
+ uint8_t _st_month;\r
+ uint8_t _st_day;\r
+ uint8_t _st_hour;\r
+ uint8_t _st_min;\r
+ uint8_t _st_sec;\r
+ // duration 24\r
+ uint8_t _dur_hour;\r
+ uint8_t _dur_min;\r
+ uint8_t _dur_sec;\r
+ uint8_t _running_status; // 3\r
+ uint8_t _free_CA_mode; // 1\r
+ uint16_t _descriptors_loop_length; // 12\r
+\r
+ uint8_t * _descriptor_ptr;\r
+ uint16_t _descriptor_offset;\r
+ Descriptor _descriptor;\r
+ Descriptor *nextDescriptor();\r
+ };\r
+\r
+ uint8_t _event_data[MAX_SECT_LEN];\r
+ uint16_t _event_offset;\r
+ Event _event;\r
+\r
+public:\r
+ EIT();\r
+ EIT(EIT &eit);\r
+ ~EIT();\r
+ void reset();\r
+\r
+ Event *nextEvent();\r
+};\r
+\r
+} // TS\r
+} // MPEG2\r