Changeset 7227
- Timestamp:
- 07/30/12 22:56:36 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-dvbapi.c
r7223 r7227 2198 2198 if (j==demux[i].ECMpidcount) continue; 2199 2199 2200 if (er->rc < E_NOTFOUND && cfg.dvbapi_requestmode==0 && (demux[i].pidindex==-1) && (er->caid!=0 || er->ocaid!=0)) {2200 if (er->rc < E_NOTFOUND && cfg.dvbapi_requestmode==0 && (demux[i].pidindex==-1) && er->caid!=0) { 2201 2201 dvbapi_start_descrambling(i); 2202 2202 } 2203 2203 2204 if (er->rc < E_NOTFOUND && cfg.dvbapi_requestmode==1 && ( er->caid!=0 || er->ocaid!=0)&& demux[i].ECMpids[j].checked != 2) { //FOUND2204 if (er->rc < E_NOTFOUND && cfg.dvbapi_requestmode==1 && (demux[i].pidindex==-1) && er->caid!=0 && demux[i].ECMpids[j].checked != 2) { //FOUND 2205 2205 2206 2206 int32_t num_pids=0, last_idx=j; … … 2219 2219 } 2220 2220 2221 if (num_pids <= 1) { //Only one left, activate it:2222 2221 int32_t o; 2223 2222 for (o = 0; o < MAX_FILTER; o++) { 2224 2223 if (demux[i].demux_fd[o].fd > 0) { //TESTME: ocaid for betatunnel added! 2225 if ((demux[i].demux_fd[o].pid == demux[i].ECMpids[last_idx].ECM_PID) && ((demux[i].demux_fd[o].caid == demux[i].ECMpids[last_idx].CAID ) || (demux[i].demux_fd[o].caid == er->ocaid)))2224 if ((demux[i].demux_fd[o].pid == er->pid) && ((demux[i].demux_fd[o].caid == demux[i].ECMpids[last_idx].CAID ) || (demux[i].demux_fd[o].caid == er->ocaid))) 2226 2225 demux[i].demux_fd[o].count = 0; //activate last_idx 2227 else if (demux[i].demux_fd[o].type == TYPE_ECM)2228 dvbapi_stop_filternum(i, o); //only drop ECMTYPE Filters2229 } //otherwise no EMM updates for 0100:00006a2226 else 2227 dvbapi_stop_filternum(i, o); 2228 } 2230 2229 } 2231 2230 edit_channel_cache(i, j, 1); 2232 } 2233 2234 if (demux[i].pidindex==-1) { 2231 2235 2232 demux[i].curindex = j; 2236 2233 dvbapi_start_descrambling(i); 2237 } else if (demux[i].curindex != j) { 2234 } 2235 if (demux[i].pidindex != -1 && demux[i].curindex != j) { 2238 2236 demux[i].curindex = j; 2239 2237 //I hope this trick works for all: adjust the index to write the right cw: … … 2241 2239 dvbapi_start_descrambling(i); 2242 2240 } 2243 }2244 2245 2241 if (er->rc >= E_NOTFOUND) { 2246 2242 edit_channel_cache(i, j, 0); 2247 if (( (er->caid >> 8) == 0x06 || (er->ocaid >> 8) == 0x06)&& demux[i].ECMpids[j].irdeto_chids < (((0xFFFF<<(demux[i].ECMpids[j].irdeto_numchids)) ^ 0xFFFF) & 0xFFFF)) {2243 if ((er->caid >> 8) == 0x06 && demux[i].ECMpids[j].irdeto_chids < (((0xFFFF<<(demux[i].ECMpids[j].irdeto_numchids)) ^ 0xFFFF) & 0xFFFF)) { 2248 2244 demux[i].ECMpids[j].irdeto_curchid++; 2249 2245 demux[i].ECMpids[j].table=0;
Note:
See TracChangeset
for help on using the changeset viewer.