diff --git a/src/descrambler/capmt.c b/src/descrambler/capmt.c index db8df78d..32151140 100644 --- a/src/descrambler/capmt.c +++ b/src/descrambler/capmt.c @@ -1650,10 +1650,10 @@ capmt_send_request(capmt_service_t *ct, int lm) cad.cad_length = 0x07; cad.cad_data[5] = cce2->cce_providerid >> 8; cad.cad_data[6] = cce2->cce_providerid & 0xff; - }else if (cce2->cce_caid >> 8 == 0x4a && cce2->cce_caid!=0x4ad2) { + } else if (cce2->cce_caid >> 8 == 0x4a && cce2->cce_caid != 0x4ad2) { cad.cad_length = 0x05; cad.cad_data[4] = cce2->cce_providerid & 0xff; - }else if (cce2->cce_caid == 0x4ad2) { + } else if (cce2->cce_caid == 0x4ad2) { cad.cad_length = 0x05; cad.cad_data[4] = cce2->cce_providerid & 0xffffff; }else diff --git a/src/descrambler/cwc.c b/src/descrambler/cwc.c index ce1688b9..6ffe6993 100644 --- a/src/descrambler/cwc.c +++ b/src/descrambler/cwc.c @@ -286,7 +286,7 @@ void cwc_emm_nagra(cwc_t *cwc, struct cs_card_data *pcard, const uint8_t *data, void cwc_emm_nds(cwc_t *cwc, struct cs_card_data *pcard, const uint8_t *data, int len); void cwc_emm_cryptoworks(cwc_t *cwc, struct cs_card_data *pcard, const uint8_t *data, int len); void cwc_emm_bulcrypt(cwc_t *cwc, struct cs_card_data *pcard, const uint8_t *data, int len); -void cwc_emm_streamguard(cwc_t *cwc, struct cs_card_data *pcard,const uint8_t *data, int len);//add by sangood +void cwc_emm_streamguard(cwc_t *cwc, struct cs_card_data *pcard, const uint8_t *data, int len); /** * @@ -1850,6 +1850,7 @@ cwc_emm_nds(cwc_t *cwc, struct cs_card_data *pcard, const uint8_t *data, int len if (match) cwc_send_msg(cwc, data, len, 0, 1, 0, 0); } + /** * streamguard emm handler */ diff --git a/src/input/mpegts/dvb_psi.c b/src/input/mpegts/dvb_psi.c index a1308081..f1c2c193 100644 --- a/src/input/mpegts/dvb_psi.c +++ b/src/input/mpegts/dvb_psi.c @@ -1204,13 +1204,12 @@ psi_desc_ca(mpegts_service_t *t, const uint8_t *buffer, int size) i += nanolen; } break; - case 0x4a00://DRECrypt or streamguard - if (caid==0x4ad2) { - provid=0; - } - if (caid != 0x4aee && caid!=0x4ad2) { // Bulcrypt - provid = size < 4 ? 0 : buffer[4]; - } + case 0x4a00: + if (caid == 0x4ad2)//streamguard + provid=0; + if (caid != 0x4aee && caid != 0x4ad2) { // Bulcrypt + provid = size < 4 ? 0 : buffer[4]; + } break; default: provid = 0; diff --git a/src/input/mpegts/dvb_support.c b/src/input/mpegts/dvb_support.c index 0d5ed7aa..6efb7ed8 100644 --- a/src/input/mpegts/dvb_support.c +++ b/src/input/mpegts/dvb_support.c @@ -36,9 +36,9 @@ static int convert_iso_8859[16] = { }; #define convert_utf8 14 #define convert_iso6937 15 -//-------------begin---add #define convert_ucs2 16 #define convert_gb 17 + static inline int code_convert(const char *from_charset,const char *to_charset,char *inbuf,size_t inlen,char *outbuf,size_t *outlen) { iconv_t cd; @@ -53,11 +53,12 @@ static inline int code_convert(const char *from_charset,const char *to_charset,c iconv_close(cd); return 0; } + static inline int gb2u(char *inbuf,int inlen,char *outbuf,size_t *outlen) { return code_convert("gb2312","utf-8",inbuf,inlen,outbuf,outlen); } -//GB2312-->utf-8 + static inline size_t conv_gb(const uint8_t *src, size_t srclen, char *dst, size_t *dstlen) { @@ -66,7 +67,6 @@ static inline size_t conv_gb(const uint8_t *src, size_t srclen, dst+=len-*dstlen; return 0; } -//----------end----add static inline int encode_utf8(unsigned int c, char *outb, int outleft) { @@ -92,32 +92,28 @@ static inline int encode_utf8(unsigned int c, char *outb, int outleft) return -1; } } -//begin--add -static inline size_t conv_UCS2(const uint8_t *src, size_t srclen, - char *dst, size_t *dstlen) + +static inline size_t conv_UCS2(const uint8_t *src, size_t srclen,char *dst, size_t *dstlen) { - - while (srclen>0 && (*dstlen)>0) - { - uint16_t uc = *src<<8|*(src+1); - int len = encode_utf8(uc, dst, *dstlen); - if (len == -1) { - errno = E2BIG; - return -1; - } else { - (*dstlen) -= len; - dst += len; - } - srclen-=2; - src+=2; + while (srclen>0 && (*dstlen)>0){ + uint16_t uc = *src<<8|*(src+1); + int len = encode_utf8(uc, dst, *dstlen); + if (len == -1) { + errno = E2BIG; + return -1; + } else { + (*dstlen) -= len; + dst += len; } - if (srclen>0) { - errno = E2BIG; - return -1; - } - return 0; + srclen-=2; + src+=2; + } + if (srclen>0) { + errno = E2BIG; + return -1; + } + return 0; } -//end-add static inline size_t conv_utf8(const uint8_t *src, size_t srclen, char *dst, size_t *dstlen) @@ -239,8 +235,8 @@ static inline size_t dvb_convert(int conv, switch (conv) { case convert_utf8: return conv_utf8(src, srclen, dst, dstlen); case convert_iso6937: return conv_6937(src, srclen, dst, dstlen); - case convert_gb: return conv_gb(src,srclen,dst,dstlen); //add gb2312-->utf8 convert - case convert_ucs2:return conv_UCS2(src,srclen,dst,dstlen); //add usc2-->utf8 convert + case convert_gb: return conv_gb(src,srclen,dst,dstlen); + case convert_ucs2:return conv_UCS2(src,srclen,dst,dstlen); default: return conv_8859(conv, src, srclen, dst, dstlen); } } @@ -301,20 +297,20 @@ dvb_get_string src+=3; srclen-=3; break; - //add being case 0x11: ic =convert_ucs2; src++; srclen--; break; + case 0x13: ic =convert_gb; src++; srclen--; break; + case 0x12: case 0x14: return -1; - //add end - + case 0x15: ic = convert_utf8; break; @@ -339,8 +335,10 @@ dvb_get_string ic = convert_iso6937; } else if (!strcmp(dvb_charset, "UTF-8")) { ic = convert_utf8; - }else{ - ic= convert_gb;//add + } else if (!strcmp(dvb_charset, "GB2312")) { + ic= convert_gb; + } else if (!strcmp(dvb_charset, "UCS2")) { + ic= conv_UCS2; } }