Changeset 1766 for trunk/module-dvbapi.c
- Timestamp:
- 03/04/10 13:13:16 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-dvbapi.c
r1743 r1766 532 532 } 533 533 534 void dvbapi_process_emm (int demux_index, unsigned char *buffer, unsigned int len) { 534 void dvbapi_process_emm (int demux_index, unsigned char *buffer, unsigned int len) 535 { 535 536 int i; 536 537 cs_debug("dvbapi: EMM Type: 0x%02x caid: %04x", buffer[0],demux[demux_index].ca_system_id); … … 554 555 if (reader[i].caid[0] == demux[demux_index].ca_system_id) { 555 556 client[cs_idx].au=i; 556 memcpy(epg.hexserial, reader[client[cs_idx].au].hexserial, 8); 557 } 558 } 559 560 switch(demux[demux_index].ca_system_id >> 8) { 561 case 0x18: // NAGRA EMM 562 epg.l=len; 563 int emm_shared = (buffer[7] == 0x10); 564 uchar cam_id[4]; 565 566 switch(buffer[0]) { 567 case 0x82: 568 //emm-s 569 cs_debug("dvbapi: NAGRA shared emm"); 570 //do_emm(&epg); 571 break; 572 case 0x83: 573 //emm-u/g 574 cam_id[0] = buffer[5]; cam_id[1] = buffer[4]; cam_id[2] = buffer[3]; cam_id[3] = buffer[6]; 575 cs_debug("dvbapi: NAGRA %s EMM for camid: %02X %02X %02X %02X", emm_shared ? "group" : "user", cam_id[0], cam_id[1], cam_id[2], cam_id[3]); 576 if (epg.hexserial[2]==cam_id[0] && epg.hexserial[3]==cam_id[1] && epg.hexserial[4]==cam_id[2]) { 577 if (emm_shared==1) { 578 //do_emm(&epg); 579 cs_debug("dvbapi: do nagra user emm"); 580 } 581 if (emm_shared==0 && epg.hexserial[5] == cam_id[3]) { 582 //do_emm(&epg); 583 cs_debug("dvbapi: do nagra group emm"); 584 } 585 } 586 break; 587 default: 588 cs_debug("dvbapi: unknown Nagra EMM (skipped)"); 589 break; 590 } 591 break; 592 case 0x06: //Irdeto EMM 593 case 0x01: //Seca EMM 594 do_emm(&epg); 595 break; 596 case 0x0D: 597 cs_debug("dvbapi: CrytoWorks EMM (skipped)"); 598 break; 599 case 0x05: 600 cs_debug("dvbapi: Viaccess EMM (skipped)"); 601 break; 602 case 0x09: 603 cs_debug("dvbapi: Videoguard EMM (skipped)"); 604 break; 605 default: 606 cs_debug("dvbapi: Unknown EMM (skipped)"); 607 break; 608 } 557 // memcpy(epg.hexserial, reader[client[cs_idx].au].hexserial, 8); 558 } 559 } 560 do_emm(&epg); 609 561 } 610 562
Note:
See TracChangeset
for help on using the changeset viewer.