From: Jaroslav Kysela Date: Mon, 11 Jan 2016 08:43:31 +0000 (+0100) Subject: descrambler emm: add experimental griffin caid support X-Git-Tag: v4.2.1~1181 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c49ce4a585f62d35ba2d7daeae5fc0a8947b2c85;p=thirdparty%2Ftvheadend.git descrambler emm: add experimental griffin caid support --- diff --git a/src/descrambler/caid.c b/src/descrambler/caid.c index cab86b7a4..7c01988e8 100644 --- a/src/descrambler/caid.c +++ b/src/descrambler/caid.c @@ -129,6 +129,8 @@ detect_card_type(const uint16_t caid) case 0x5581: case 0x4aee: return CARD_BULCRYPT; + case 0x5500 ... 0x551a: + return CARD_GRIFFIN; } switch(c_sys) { diff --git a/src/descrambler/caid.h b/src/descrambler/caid.h index 03fdcfe07..98d2ef319 100644 --- a/src/descrambler/caid.h +++ b/src/descrambler/caid.h @@ -33,6 +33,7 @@ typedef enum { CARD_CRYPTOWORKS, CARD_BULCRYPT, CARD_STREAMGUARD, + CARD_GRIFFIN, CARD_UNKNOWN } card_type_t; diff --git a/src/descrambler/emm_reass.c b/src/descrambler/emm_reass.c index ccc0dafd3..cf5df654a 100644 --- a/src/descrambler/emm_reass.c +++ b/src/descrambler/emm_reass.c @@ -552,6 +552,29 @@ emm_bulcrypt send(aux, data, len, mux); } +static void +emm_griffin + (emm_reass_t *ra, const uint8_t *data, int len, void *mux, + emm_send_t send, void *aux) +{ + emm_provider_t *ep; + int i; + + if (len < 1) + return; + + switch (data[0]) { + case 0x82: + case 0x83: + PROVIDERS_FOREACH(ra, i, ep) + if (memcmp(&data[3], &ep->sa[0], 4) == 0) { + send(aux, data, len, mux); + break; + } + break; + } +} + void emm_filter(emm_reass_t *ra, const uint8_t *data, int len, void *mux, emm_send_t send, void *aux) @@ -579,6 +602,7 @@ emm_reass_init(emm_reass_t *ra, uint16_t caid) case CARD_CRYPTOWORKS: ra->do_emm = emm_cryptoworks; break; case CARD_BULCRYPT: ra->do_emm = emm_bulcrypt; break; case CARD_STREAMGUARD: ra->do_emm = emm_streamguard; break; + case CARD_GRIFFIN: ra->do_emm = emm_griffin; break; default: break; } }