|
@@ -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) {
|