Changeset 8094
- Timestamp:
- 01/12/13 16:49:52 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-dvbapi.c
r8091 r8094 525 525 while ((rdr = ll_iter_next(&itr))) { 526 526 527 if (rdr->audisabled != 0)528 continue; 527 if (rdr->audisabled !=0 || !rdr->enable || (!is_network_reader(rdr) && rdr->card_status != CARD_INSERTED)) 528 continue; 529 529 530 530 memset(dmx_filter, 0, sizeof(dmx_filter)); … … 659 659 660 660 void dvbapi_add_emmpid(struct s_reader *testrdr, int32_t demux_id, uint16_t caid, uint16_t emmpid, uint32_t provid, uint8_t type) { 661 char typetext[40]; 662 cs_strncpy(typetext, ":", sizeof(typetext)); 663 664 if (type & 0x01) strcat(typetext, "UNIQUE:"); 665 if (type & 0x02) strcat(typetext, "SHARED:"); 666 if (type & 0x04) strcat(typetext, "GLOBAL:"); 667 if (type & 0xF8) strcat(typetext, "UNKNOWN:"); 668 661 669 if (emm_reader_match(testrdr, caid, provid)){ 670 uint16_t i; 671 for (i = 0; i < demux[demux_id].EMMpidcount; i++) { 672 if ((demux[demux_id].EMMpids[i].PID == emmpid) 673 && (demux[demux_id].EMMpids[i].CAID == caid) 674 && (demux[demux_id].EMMpids[i].PROVID == provid) 675 && (demux[demux_id].EMMpids[i].type == type)) { 676 cs_debug_mask(D_DVBAPI,"[SKIP EMMPID] CAID: %04X EMM_PID: %04X PROVID: %06X TYPE %s (same as emmpid #%d)", caid, emmpid, provid, 677 typetext, i); 678 return; 679 } 680 } 662 681 demux[demux_id].EMMpids[demux[demux_id].EMMpidcount].PID = emmpid; 663 682 demux[demux_id].EMMpids[demux[demux_id].EMMpidcount].CAID = caid; 664 683 demux[demux_id].EMMpids[demux[demux_id].EMMpidcount].PROVID = provid; 665 684 demux[demux_id].EMMpids[demux[demux_id].EMMpidcount++].type = type; 666 cs_debug_mask(D_DVBAPI,"[ADD EMMPID] CAID: %04X EMM_PID: %04X PROVID: %06X - (type %d) ENABLED!", caid, emmpid, provid, type); 685 cs_debug_mask(D_DVBAPI,"[ADD EMMPID #%d] CAID: %04X EMM_PID: %04X PROVID: %06X TYPE %s", demux[demux_id].EMMpidcount-1, caid, emmpid, provid, 686 typetext); 667 687 } 668 688 else { 669 cs_debug_mask(D_DVBAPI,"[ ADD EMMPID] CAID: %04X EMM_PID: %04X PROVID: %06X - (type %d) DISABLED!", caid, emmpid, provid, type);689 cs_debug_mask(D_DVBAPI,"[IGNORE EMMPID] CAID: %04X EMM_PID: %04X PROVID: %06X TYPE %s (no match)", caid, emmpid, provid, typetext); 670 690 } 671 691 } … … 680 700 LL_ITER itr = ll_iter_create(cl->aureader_list); 681 701 while ((testrdr = ll_iter_next(&itr))) { // make a list of all readers 682 if ((testrdr->audisabled !=0) || (!testrdr->enable)){ //only parse au enabled readers that are enabled 683 cs_debug_mask(D_DVBAPI,"Reader %s au disabled or not enabled-> skip!", testrdr->label); 702 if ((testrdr->audisabled !=0) 703 || (!testrdr->enable) 704 || (!is_network_reader(testrdr) && testrdr->card_status != CARD_INSERTED)){ 705 cs_debug_mask(D_DVBAPI,"Reader %s au disabled or not enabled-> skip!", testrdr->label); //only parse au enabled readers that are enabled 684 706 continue; 685 707 } 686 elsecs_debug_mask(D_DVBAPI,"Reader %s au enabled -> parsing cat for emm pids!", testrdr->label);708 cs_debug_mask(D_DVBAPI,"Reader %s au enabled -> parsing cat for emm pids!", testrdr->label); 687 709 688 710 for (i = 8; i < (((buf[1] & 0x0F) << 8) | buf[2]) - 1; i += buf[i + 1] + 2) { … … 703 725 dvbapi_add_emmpid(testrdr,demux_id, caid, emm_pid, emm_provider, EMM_SHARED); 704 726 } 705 continue;727 break; 706 728 case 0x05: 707 729 for (k = i+6; k < i+buf[i+1]+2; k += buf[k+1]+2) { … … 711 733 } 712 734 } 713 continue;735 break; 714 736 case 0x18: 715 737 emm_provider = (buf[i+1] == 0x07) ? (buf[i+6] << 16 | (buf[i+7] << 8| (buf[i+8]))) : 0; 716 738 dvbapi_add_emmpid(testrdr,demux_id, caid, emm_pid, emm_provider, EMM_UNIQUE|EMM_SHARED|EMM_GLOBAL); 717 continue;739 break; 718 740 default: 719 741 dvbapi_add_emmpid(testrdr,demux_id, caid, emm_pid, 0, EMM_UNIQUE|EMM_SHARED|EMM_GLOBAL); 720 continue;742 break; 721 743 } 722 744 }
Note:
See TracChangeset
for help on using the changeset viewer.