summaryrefslogtreecommitdiff
path: root/p2pvr/dvb/siParsers/service.h
blob: 611eb901af3eeda52cd36af1b82d7e526c37d1ca (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
#ifndef SERVICEROWS_H
#define SERVICEROWS_H

#include "table.h"
#include <dvbsi.h>

struct TransportStreamDescriptor {
	SiTableHeader header;
	uint16_t original_network_id;
	uint8_t _reserved1;
	u_char data[];
} __attribute__((packed));

class SiServicesParser : public SiTableParser<TransportStreamDescriptor, DVBSI::TransportStreamPtr, int> {
	protected:
		bool CheckTableId(u_char tableId) const;
		void ParseSiTable(const struct TransportStreamDescriptor * nit, DVBSI::TransportStreamPtr);

	private:
		static void parseDescriptor_Service(DVBSI::ServicePtr, const u_char *data, size_t len);
		static void parseDescriptor_DefaultAuthority(DVBSI::ServicePtr, const u_char *data, size_t len);
};

#endif