Changeset 11569 for trunk/module-dvbapi.c
- Timestamp:
- 11/07/19 20:09:47 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-dvbapi.c
r11568 r11569 2563 2563 demux[demux_id].pidindex = -1; 2564 2564 demux[demux_id].curindex = -1; 2565 if(ca_descramblers_used > 0) // it should never go below 0, but you never know 2566 { 2567 ca_descramblers_used--; // decrease number of used descramblers 2568 } 2569 2565 2570 2566 if(!cfg.dvbapi_listenport && cfg.dvbapi_boxtype != BOXTYPE_PC_NODMX) 2571 2567 { … … 8703 8699 ll_iter_remove_data(&itr); 8704 8700 cs_log_dbg(D_DVBAPI, "Removed last indexer of streampid %04X from ca%d", pid, cadevice); 8701 ca_descramblers_used = count_active_indexers(); 8705 8702 return REMOVED_STREAMPID_LASTINDEX; 8706 8703 } … … 8985 8982 } 8986 8983 return INDEX_INVALID; // no indexer found for this pid! 8984 } 8985 8986 uint32_t count_active_indexers(void) 8987 { 8988 struct s_streampid *listitem; 8989 LL_ITER itr; 8990 if(!ll_activestreampids) 8991 { 8992 return 0; 8993 } 8994 8995 bool indexer_in_use[ca_descramblers_total]; 8996 memset(&indexer_in_use, 0, sizeof(indexer_in_use)); 8997 8998 uint32_t usecounter = 0; 8999 if(ll_count(ll_activestreampids) > 0) 9000 { 9001 itr = ll_iter_create(ll_activestreampids); 9002 while((listitem = ll_iter_next(&itr))) 9003 { 9004 if(listitem->caindex != INDEX_INVALID && listitem->caindex < INDEX_MAX) 9005 { 9006 indexer_in_use[listitem->caindex] = true; 9007 } 9008 } 9009 uint32_t i = 0; 9010 for(i = 0; i < ca_descramblers_total; i++) 9011 { 9012 if(indexer_in_use[i] == true) 9013 { 9014 usecounter++; 9015 } 9016 } 9017 } 9018 9019 return usecounter; 8987 9020 } 8988 9021
Note:
See TracChangeset
for help on using the changeset viewer.