OSDN Git Service

initial files
[iptd/iPTd_R3.git] / src / mpeg2 / ts / PAT.h
1 /**
2  * @file PAT.h
3  *
4  */
5
6 #pragma once
7
8 #include "mpeg2/ts/Table.h"
9
10 namespace MPEG2
11 {
12 namespace TS
13 {
14
15 class PAT : public Table
16 {
17 public:
18     uint8_t         _table_id;                  //  8
19     uint8_t         _section_syntax_indicator;  //  1
20                                                 //  1  '0'
21                                                 //  2  reserved
22     uint16_t        _section_length;            // 12
23     uint16_t        _transport_stream_id;       // 16
24                                                 //  2  reserved
25     uint8_t         _version_number;            //  5
26     uint8_t         _current_next_indicator;    //  1
27     uint8_t         _section_number;            //  8
28     uint8_t         _last_section_number;       //  8
29     uint16_t        _program_count;
30     struct _program
31     {
32         uint16_t    _program_number;            // 16
33                                                 //  3  reserved
34         uint16_t    _pid;                       // 13
35     } *             _programs;
36                                                 // 32  CRC
37
38 protected:
39     bool decode_section();
40
41 public:
42     PAT();
43     PAT(const PAT &pat);
44     ~PAT();
45     void reset();
46     bool isEqual(PAT *pat);
47 };
48
49 } // TS
50 } // MPEG2