Browse Source

Add support for more CA systems.

Georgi Chorbadzhiyski 8 years ago
parent
commit
d9734150a3
2 changed files with 18 additions and 2 deletions
  1. 13 2
      cat.c
  2. 5 0
      tsdata.h

+ 13 - 2
cat.c View File

@@ -184,20 +184,31 @@ int ts_cat_is_same(struct ts_cat *cat1, struct ts_cat *cat2) {
184 184
 }
185 185
 
186 186
 enum CA_system ts_get_CA_sys(uint16_t CA_id) {
187
+	if (CA_id >= 0x0100 && CA_id <= 0x01FF) return CA_SECA;
188
+	if (CA_id >= 0x0500 && CA_id <= 0x05FF) return CA_VIACCESS;
187 189
 	if (CA_id >= 0x0600 && CA_id <= 0x06FF) return CA_IRDETO;
190
+	if (CA_id >= 0x0900 && CA_id <= 0x09FF) return CA_VIDEOGUARD;
188 191
 	if (CA_id >= 0x0B00 && CA_id <= 0x0BFF) return CA_CONAX;
189 192
 	if (CA_id >= 0x0D00 && CA_id <= 0x0DFF) return CA_CRYPTOWORKS;
193
+	if (CA_id >= 0x1800 && CA_id <= 0x18FF) return CA_NAGRA;
194
+	if (CA_id >= 0x4AE0 && CA_id <= 0x4AE1) return CA_DRECRYPT;
190 195
 	return CA_UNKNOWN;
191 196
 }
192 197
 
198
+
193 199
 char * ts_get_CA_sys_txt(enum CA_system CA_sys) {
194 200
 	switch (CA_sys) {
201
+		case CA_SECA:			return "SECA";
202
+		case CA_VIACCESS:		return "VIACCESS";
195 203
 		case CA_IRDETO:			return "IRDETO";
204
+		case CA_VIDEOGUARD:		return "VIDEOGUARD";
196 205
 		case CA_CONAX:			return "CONAX";
197 206
 		case CA_CRYPTOWORKS:	return "CRYPTOWORKS";
198
-		case CA_UNKNOWN:
199
-		default:				return "UNKNOWN";
207
+		case CA_NAGRA:			return "NAGRA";
208
+		case CA_DRECRYPT:		return "DRE-CRYPT";
209
+		case CA_UNKNOWN:		return "UNKNOWN";
200 210
 	}
211
+	return "UNKNOWN";
201 212
 }
202 213
 
203 214
 static int find_CA_descriptor(uint8_t *data, int data_len, enum CA_system req_CA_type, uint16_t *CA_id, uint16_t *CA_pid) {

+ 5 - 0
tsdata.h View File

@@ -93,9 +93,14 @@ struct ts_pat {
93 93
 };
94 94
 
95 95
 enum CA_system {
96
+	CA_SECA,		// 0x0100 - 0x01FF Canal Plus (SECA/Mediaguard)
97
+	CA_VIACCESS,	// 0x0500 - 0x05FF France Telecom
96 98
 	CA_IRDETO,		// 0x0600 - 0x06FF Irdeto
99
+	CA_VIDEOGUARD,	// 0x0900 - 0x09FF News Datacom (NDS/Videoguard)
97 100
 	CA_CONAX,		// 0x0B00 - 0x0BFF Norwegian Telekom
98 101
 	CA_CRYPTOWORKS,	// 0x0D00 - 0x0DFF CrytoWorks
102
+	CA_NAGRA,		// 0x1800 - 0x18FF Kudelski SA (Nagravision)
103
+	CA_DRECRYPT,	// 0x4AE0 - 0x4AE1 OOO Cifra (DRE-Crypt)
99 104
 	CA_UNKNOWN,
100 105
 };
101 106