Changeset 1995
- Timestamp:
- 04/07/10 13:05:26 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-dvbapi.c
r1983 r1995 339 339 340 340 void dvbapi_start_emm_filter(int demux_index, int emmtype, int type) { 341 int dmx_fd, i,n=-1;341 int dmx_fd, i, n=-1; 342 342 uchar filter[32]; 343 uchar *reader_filter; 344 char *typtext[]={"UNKNOWN", "UNIQUE", "SHARED", "GLOBAL"}; 343 345 344 346 if (demux[demux_index].pidindex==-1) return; … … 349 351 int found=0; 350 352 for (i=0;i<CS_MAXREADER;i++) { 351 if (reader[i]. caid[0] == demux[demux_index].ECMpids[demux[demux_index].pidindex].CA_System_ID) {353 if (reader[i].aucaid == caid) { 352 354 client[cs_idx].au=i; 353 355 found=1; … … 356 358 } 357 359 358 switch(reader[client[cs_idx].au].card_system) {359 default:360 if (emmtype!=GLOBAL) return;361 memset(filter,0,32);362 filter[0]=0x80;363 filter[0+16]=0xF0;364 break;365 }366 367 for (i=0;i<MAX_FILTER;i++) {368 if (demux[demux_index].demux_fd[i].fd<=0) {369 n=i;370 break;371 } 372 }373 374 if (n==-1) {375 cs_log("dvbapi: no free filter");376 return;377 }378 379 dmx_fd=dvbapi_open_device(demux_index, 0);380 381 demux[demux_index].demux_fd[n].fd=dmx_fd;382 demux[demux_index].demux_fd[n].CA_System_ID=caid;383 demux[demux_index].demux_fd[n].PID=pid;384 demux[demux_index].demux_fd[n].type=type;385 386 cs_ddump(filter, 32, "demux filter:");387 dvbapi_set_filter(dmx_fd, selected_api, pid, filter, filter+16, 0);360 if (!found) { 361 cs_log("emm dmx filter - no AU reader found"); 362 } else { 363 reader_filter = get_emm_filter(&reader[client[cs_idx].au], emmtype); 364 memcpy(filter, reader_filter, 32); 365 cs_log("emm dmx filter %s \t set to: %s",typtext[emmtype], cs_hexdump(0, filter, 32)); 366 367 368 for (i=0;i<MAX_FILTER;i++) { 369 if (demux[demux_index].demux_fd[i].fd<=0) { 370 n=i; 371 break; 372 } 373 } 374 375 if (n==-1) { 376 cs_log("dvbapi: no free filter"); 377 return; 378 } 379 380 dmx_fd=dvbapi_open_device(demux_index, 0); 381 382 demux[demux_index].demux_fd[n].fd=dmx_fd; 383 demux[demux_index].demux_fd[n].CA_System_ID=caid; 384 demux[demux_index].demux_fd[n].PID=pid; 385 demux[demux_index].demux_fd[n].type=type; 386 387 cs_ddump(filter, 32, "demux filter:"); 388 dvbapi_set_filter(dmx_fd, selected_api, pid, filter, filter+16, 0); 389 } 388 390 } 389 391
Note:
See TracChangeset
for help on using the changeset viewer.