Changeset 10656
- Timestamp:
- 05/05/15 17:27:40 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-dvbapi.c
r10655 r10656 2607 2607 cs_log_dbg(D_DVBAPI, "Receiver sends PMT command %d for channel %04X", ca_pmt_list_management, program_number); 2608 2608 2609 for(i = 0; i < MAX_DEMUX && !pmt_stopmarking; i++, pmt_stopmarking = (i == MAX_DEMUX)) // only mark running and deleting for first pmt record 2610 { 2611 if(demux[i].program_number == 0) { continue; } // skip empty demuxers 2612 if(demux[i].ECMpidcount != 0 && demux[i].pidindex != -1 ) 2613 { 2614 cs_log_dbg(D_DVBAPI, "Marked demuxer %d/%d (srvid = %04X fd = %d ecmpids = %d pidindex = %d) as already running", i, MAX_DEMUX, 2615 demux[i].program_number, connfd, demux[i].ECMpidcount, demux[i].pidindex); 2616 demux[i].running = 1; } // mark if channel is already descrambling and running 2617 if(demux[i].socket_fd != connfd) { continue; } // skip demuxers belonging to other ca pmt connection 2618 if(ca_pmt_list_management == LIST_FIRST || ca_pmt_list_management == LIST_ONLY) 2619 { 2609 if(!pmt_stopmarking && (ca_pmt_list_management == LIST_FIRST || ca_pmt_list_management == LIST_ONLY)) 2610 { 2611 for(i = 0; i < MAX_DEMUX; i++) 2612 { 2613 if(demux[i].program_number == 0) { continue; } // skip empty demuxers 2614 if(demux[i].socket_fd != connfd) { continue; } // skip demuxers belonging to other ca pmt connection 2620 2615 demux[i].stopdescramble = 1; // Mark for deletion if not used again by following pmt objects. 2621 2616 cs_log_dbg(D_DVBAPI, "Marked demuxer %d/%d (srvid = %04X fd = %d) to stop decoding", i, MAX_DEMUX, demux[i].program_number, connfd); 2622 2617 } 2623 } 2618 pmt_stopmarking = 1; // only stop demuxing for first pmt record 2619 } 2620 2624 2621 getDemuxOptions(i, buffer, &ca_mask, &demux_index, &adapter_index, &pmtpid); 2625 2622 cs_log_dbg(D_DVBAPI,"Receiver wants to demux srvid %04X on adapter %04X camask %04X index %04X pmtpid %04X", … … 2902 2899 if(demux[j].running == 0 && demux[j].ECMpidcount != 0 ) // only start demuxer if it wasnt running 2903 2900 { 2901 cs_log_dbg(D_DVBAPI, "Demuxer %d/%d lets start descrambling (srvid = %04X fd = %d ecmpids = %d)", j, MAX_DEMUX, 2902 demux[j].program_number, connfd, demux[j].ECMpidcount); 2903 demux[j].running = 1; // mark channel as running 2904 2904 openxcas_set_sid(demux[j].program_number); 2905 2905 demux[j].decodingtries = -1; … … 2910 2910 else if(demux[j].ECMpidcount == 0) //fta do logging and part of ecmhandler since there will be no ecms asked! 2911 2911 { 2912 cs_log_dbg(D_DVBAPI, "Demuxer %d/%d no descrambling needed (srvid = %04X fd = %d ecmpids = %d)", j, MAX_DEMUX, 2913 demux[j].program_number, connfd, demux[j].ECMpidcount); 2912 2914 demux[j].running = 0; // reset running flag 2913 2915 demux[demux_id].pidindex = -1; // reset ecmpid used for descrambling
Note:
See TracChangeset
for help on using the changeset viewer.