OSDN Git Service

EPG収集
[iptd/iPTd.git] / src / mpeg2 / ts / EIT.h
index 480c14a..5419f2f 100644 (file)
-//
-// 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