summaryrefslogtreecommitdiff
path: root/siinfo.h
blob: 37c8a15eb95b017896b6cd608aaf1cce6aeb020f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38


#define TTXT_INITIAL_PAGE 1
#define TTXT_SUBTITLE_PAGE 2
#define TTXT_ADDITIONAL_INFO_PAGE 3
#define TTXT_PROGRAMME_SCHEDULE_PAGE 4
#define TTXT_SUBTITLE_HEARING_IMPAIRED_PAGE 5

struct ttxtpageinfo {
  char lang[3];
  uint8_t type;
  uint8_t mag;
  uint8_t page;
};

struct ttxtpidinfo {
    uint16_t pid;
    int pagecount;
    struct ttxtpageinfo *i;
};

// XXX should be an object instead and use c++ vectors etc
struct ttxtinfo {
  int pidcount;
  struct ttxtpidinfo *p;
};

/*
 * find the ttxt_info in the PMT via the PAT, try first with the SID
 * and if that fails with the VPID
 * return <> 0 on error;
 */
int GetTtxtInfo(int card_no, uint16_t sid, uint16_t vpid, struct ttxtinfo *info);

void FreeTtxtInfoData(struct ttxtinfo *info);
void DupTtxtInfo(struct ttxtinfo *in, struct ttxtinfo *out);

struct ttxtpidinfo *FindSubs(struct ttxtinfo *info, char *lang, int HI, int *pid, int *pageno);