Changeset 1979
- Timestamp:
- 04/06/10 21:18:09 (14 years ago)
- Location:
- branches/modular
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/modular/module-dvbapi.c
r1975 r1979 347 347 ushort pid = demux[demux_index].ECMpids[demux[demux_index].pidindex].EMM_PID; 348 348 349 if (reader[client[cs_idx].au].card_system<1) 350 return; 351 349 352 if (cardsystem[reader[client[cs_idx].au].card_system-1].get_emm_filter) { 350 353 uchar *filter1 = cardsystem[reader[client[cs_idx].au].card_system-1].get_emm_filter(&reader[client[cs_idx].au], emmtype); … … 777 780 778 781 for(j2=0,j1=0;j2<len;j2+=2,j1++) { 779 if (sscanf((char*)mbuf+j2, "%02X",(uint*)dest+j1) != 1) {782 if (sscanf((char*)mbuf+j2, "%02X", dest+j1) != 1) { 780 783 cs_log("dvbapi: error parsing QboxHD pmt.tmp, data not valid in position %d",j2); 781 784 return; -
branches/modular/reader-common.h
r1975 r1979 17 17 int irdeto_get_emm_type(EMM_PACKET *, struct s_reader *); //s_reader as last argument to remind you that this function picks out OTHER reader than you would expect! 18 18 int irdeto_card_info(struct s_reader * reader); 19 uchar *irdeto_get_emm_filter(struct s_reader * rdr, int type); 19 20 20 21 // reader-viaccess -
branches/modular/reader-irdeto.c
r1975 r1979 290 290 } 291 291 292 uchar *irdeto_get_emm_filter(struct s_reader * rdr, int type)293 {294 static uint8_t filter[32];295 memset(filter, 0x00, 32);296 297 switch (type) {298 case GLOBAL:299 filter[1] = 0x00;300 filter[1+16] = 0x2F;301 break;302 case SHARED:303 case UNIQUE:304 filter[1] = 0xD2;305 filter[1+16] = 0xFE;306 memcpy(filter+2, rdr->hexserial, 2);307 memset(filter+2+16, 0xFF, 2);308 309 break;310 }311 312 return filter;313 }314 315 292 int irdeto_get_emm_type(EMM_PACKET *ep, struct s_reader * rdr) { 316 293 … … 352 329 } 353 330 331 } 332 333 uchar *irdeto_get_emm_filter(struct s_reader * rdr, int type) 334 { 335 static uint8_t filter[32]; 336 memset(filter, 0x00, 32); 337 338 switch (type) { 339 case GLOBAL: 340 filter[0] = 0x82; 341 filter[0+16] = 0xFF; 342 filter[1] = 0x00; 343 filter[1+16] = 0x2F; // 0x00 to 0xD0 344 //filter[1] = 0xD0; 345 //filter[1+16] = 0xFF; 346 break; 347 case SHARED: 348 filter[0] = 0x82; 349 filter[0+16] = 0xFF; 350 filter[1] = 0xD2; 351 filter[1+16] = 0xFF; 352 filter[2] = rdr->sa[0][0]; 353 filter[2+16] = 0xFF; 354 filter[3] = rdr->sa[0][1]; 355 filter[3+16] = 0xFF; 356 break; 357 case UNIQUE: 358 filter[0] = 0x82; 359 filter[0+16] = 0xFF; 360 filter[1] = 0xD3; 361 filter[1+16] = 0xFF; 362 memcpy(filter+2, rdr->hexserial, 4); 363 memset(filter+2+16, 0xFF, 4); 364 break; 365 } 366 367 return filter; 354 368 } 355 369
Note:
See TracChangeset
for help on using the changeset viewer.