Changeset 4994 for trunk/module-dvbapi.c
- Timestamp:
- 04/13/11 23:19:59 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-dvbapi.c
r4989 r4994 16 16 }; 17 17 18 int selected_box=-1;19 int selected_api=-1;20 int disable_pmt_files=0;21 int dir_fd=-1, pausecam=0;18 int32_t selected_box=-1; 19 int32_t selected_api=-1; 20 int32_t disable_pmt_files=0; 21 int32_t dir_fd=-1, pausecam=0; 22 22 DEMUXTYPE demux[MAX_DEMUX]; 23 int ca_fd[8];23 int32_t ca_fd[8]; 24 24 25 25 struct s_dvbapi_priority *dvbapi_priority=NULL; 26 26 struct s_client *dvbapi_client=NULL; 27 27 28 int stapi_on = 0;29 30 int dvbapi_set_filter(int demux_id, int api, unsigned short pid, uchar *filt, uchar *mask, int timeout, int pidindex, int count, int type) {28 int32_t stapi_on = 0; 29 30 int32_t dvbapi_set_filter(int32_t demux_id, int32_t api, uint16_t pid, uchar *filt, uchar *mask, int32_t timeout, int32_t pidindex, int32_t count, int32_t type) { 31 31 #ifdef AZBOX 32 32 openxcas_caid = demux[demux_id].ECMpids[pidindex].CAID; … … 35 35 return 1; 36 36 #endif 37 int ret=-1,n=-1,i;37 int32_t ret=-1,n=-1,i; 38 38 39 39 for (i=0; i<MAX_FILTER && demux[demux_id].demux_fd[i].fd>0; i++); … … 103 103 } 104 104 105 int dvbapi_check_array(unsigned short *array, int len, unsigned short match) {106 int i;105 int32_t dvbapi_check_array(uint16_t *array, int32_t len, uint16_t match) { 106 int32_t i; 107 107 for (i=0; i<len; i++) { 108 108 if (array[i]==match) { … … 113 113 } 114 114 115 int dvbapi_detect_api() {115 int32_t dvbapi_detect_api() { 116 116 #ifdef COOL 117 117 selected_api=COOLAPI; … … 121 121 return 1; 122 122 #else 123 int num_apis=2, i,devnum=-1, dmx_fd=0, ret=-1;123 int32_t num_apis=2, i,devnum=-1, dmx_fd=0, ret=-1; 124 124 uchar filter[32]; 125 125 char device_path[128], device_path2[128]; … … 182 182 } 183 183 184 int dvbapi_read_device(int dmx_fd, unsigned char *buf, int length)184 int32_t dvbapi_read_device(int32_t dmx_fd, unsigned char *buf, int32_t length) 185 185 { 186 int len, rc;186 int32_t len, rc; 187 187 struct pollfd pfd[1]; 188 188 … … 204 204 } 205 205 206 int dvbapi_open_device(int type, int num, int adapter) {207 int dmx_fd;208 int ca_offset=0;206 int32_t dvbapi_open_device(int32_t type, int32_t num, int32_t adapter) { 207 int32_t dmx_fd; 208 int32_t ca_offset=0; 209 209 char device_path[128], device_path2[128]; 210 210 … … 236 236 } 237 237 238 int dvbapi_stop_filter(int demux_index, int type) {239 int g;238 int32_t dvbapi_stop_filter(int32_t demux_index, int32_t type) { 239 int32_t g; 240 240 241 241 for (g=0;g<MAX_FILTER;g++) { … … 248 248 } 249 249 250 int dvbapi_stop_filternum(int demux_index, int num)250 int32_t dvbapi_stop_filternum(int32_t demux_index, int32_t num) 251 251 { 252 int ret=-1;252 int32_t ret=-1; 253 253 if (demux[demux_index].demux_fd[num].fd>0) { 254 254 #ifdef COOL … … 268 268 } 269 269 270 void dvbapi_start_filter(int demux_id, int pidindex, unsigned short pid, uchar table, uchar mask, int timeout, int type, int count)270 void dvbapi_start_filter(int32_t demux_id, int32_t pidindex, uint16_t pid, uchar table, uchar mask, int32_t timeout, int32_t type, int32_t count) 271 271 { 272 272 uchar filter[32]; … … 282 282 } 283 283 284 void dvbapi_sort_nanos(unsigned char *dest, const unsigned char *src, int len)284 void dvbapi_sort_nanos(unsigned char *dest, const unsigned char *src, int32_t len) 285 285 { 286 int w=0, c=-1, j=0;286 int32_t w=0, c=-1, j=0; 287 287 while(1) { 288 int n=0x100;288 int32_t n=0x100; 289 289 for(j=0; j<len;) { 290 int l=src[j+1]+2;290 int32_t l=src[j+1]+2; 291 291 if(src[j]==c) { 292 292 if(w+l>len) { … … 307 307 308 308 309 int dvbapi_find_emmpid(int demux_id, uint8type) {310 int k;311 int bck = -1;309 int32_t dvbapi_find_emmpid(int32_t demux_id, uint8_t type) { 310 int32_t k; 311 int32_t bck = -1; 312 312 for (k=0; k<demux[demux_id].EMMpidcount; k++) { 313 313 if (demux[demux_id].EMMpids[k].CAID == demux[demux_id].ECMpids[demux[demux_id].pidindex].CAID … … 323 323 } 324 324 325 void dvbapi_start_emm_filter(int demux_index) {326 int j;325 void dvbapi_start_emm_filter(int32_t demux_index) { 326 int32_t j; 327 327 const char *typtext[] = { "UNIQUE", "SHARED", "GLOBAL", "UNKNOWN" }; 328 328 … … 352 352 } 353 353 354 int filter_count=dmx_filter[1];354 int32_t filter_count=dmx_filter[1]; 355 355 356 356 cs_debug_mask(D_DVBAPI, "start %d emm filter for %s", filter_count, demux[demux_index].rdr->label); 357 357 358 358 for (j=1;j<=filter_count && j <= 10;j++) { 359 int startpos=2+(34*(j-1));359 int32_t startpos=2+(34*(j-1)); 360 360 361 361 if (dmx_filter[startpos+1] != 0x00) … … 364 364 uchar filter[32]; 365 365 memcpy(filter, dmx_filter+startpos+2, 32); 366 int emmtype=dmx_filter[startpos];367 int count=dmx_filter[startpos+1];368 int l=-1;366 int32_t emmtype=dmx_filter[startpos]; 367 int32_t count=dmx_filter[startpos+1]; 368 int32_t l=-1; 369 369 370 370 if ( (filter[0] && (((1<<(filter[0] % 0x80)) & demux[demux_index].rdr->b_nano) && !((1<<(filter[0] % 0x80)) & demux[demux_index].rdr->s_nano))) ) … … 377 377 378 378 if (l>-1) { 379 u nsigned int typtext_idx = 0;379 uint32_t typtext_idx = 0; 380 380 while (((emmtype >> typtext_idx) & 0x01) == 0 && typtext_idx < sizeof(typtext) / sizeof(const char *)) 381 381 ++typtext_idx; … … 391 391 } 392 392 393 void dvbapi_add_ecmpid(int demux_id, ushort caid, ushort ecmpid, ulongprovid) {394 int n,added=0;393 void dvbapi_add_ecmpid(int32_t demux_id, uint16_t caid, uint16_t ecmpid, uint32_t provid) { 394 int32_t n,added=0; 395 395 396 396 if (demux[demux_id].ECMpidcount>=ECM_PIDS) 397 397 return; 398 398 399 int stream = demux[demux_id].STREAMpidcount-1;399 int32_t stream = demux[demux_id].STREAMpidcount-1; 400 400 for (n=0;n<demux[demux_id].ECMpidcount;n++) { 401 401 if (stream>-1 && demux[demux_id].ECMpids[n].CAID == caid && demux[demux_id].ECMpids[n].ECM_PID == ecmpid) { … … 424 424 } 425 425 426 void dvbapi_add_emmpid(int demux_id, ushort caid, ushort emmpid, ulong provid, uint8type) {426 void dvbapi_add_emmpid(int32_t demux_id, uint16_t caid, uint16_t emmpid, uint32_t provid, uint8_t type) { 427 427 demux[demux_id].EMMpids[demux[demux_id].EMMpidcount].PID = emmpid; 428 428 demux[demux_id].EMMpids[demux[demux_id].EMMpidcount].CAID = caid; … … 432 432 } 433 433 434 void dvbapi_parse_cat(int demux_id, uchar *buf, int len) {435 u nsigned short i, k;434 void dvbapi_parse_cat(int32_t demux_id, uchar *buf, int32_t len) { 435 uint16_t i, k; 436 436 437 437 cs_ddump_mask(D_DVBAPI, buf, len, "cat:"); … … 439 439 for (i = 8; i < (((buf[1] & 0x0F) << 8) | buf[2]) - 1; i += buf[i + 1] + 2) { 440 440 if (buf[i] != 0x09) continue; 441 u nsigned short caid=(((buf[i + 2] & 0x1F) << 8) | buf[i + 3]);442 u nsigned short emm_pid=(((buf[i + 4] & 0x1F) << 8) | buf[i + 5]);443 u longemm_provider = 0;441 uint16_t caid=(((buf[i + 2] & 0x1F) << 8) | buf[i + 3]); 442 uint16_t emm_pid=(((buf[i + 4] & 0x1F) << 8) | buf[i + 5]); 443 uint32_t emm_provider = 0; 444 444 445 445 switch (caid >> 8) { … … 477 477 } 478 478 479 int dvbapi_get_descindex() {480 int i,j,idx=1,fail=1;479 int32_t dvbapi_get_descindex() { 480 int32_t i,j,idx=1,fail=1; 481 481 while (fail) { 482 482 fail=0; … … 494 494 } 495 495 496 void dvbapi_set_pid(int demux_id, int num, int index) {497 int i;496 void dvbapi_set_pid(int32_t demux_id, int32_t num, int32_t index) { 497 int32_t i; 498 498 499 499 if (demux[demux_id].pidindex == -1) return; … … 527 527 } 528 528 529 void dvbapi_stop_descrambling(int demux_id) {530 int i;529 void dvbapi_stop_descrambling(int32_t demux_id) { 530 int32_t i; 531 531 532 532 if (demux[demux_id].program_number==0) return; … … 549 549 } 550 550 551 void dvbapi_start_descrambling(int demux_id) {552 int j,k;553 int streamcount=0;551 void dvbapi_start_descrambling(int32_t demux_id) { 552 int32_t j,k; 553 int32_t streamcount=0; 554 554 555 555 demux[demux_id].pidindex = demux[demux_id].curindex; … … 590 590 591 591 #ifdef READER_VIACCESS 592 extern int viaccess_reassemble_emm(uchar *buffer, uint *len);592 extern int32_t viaccess_reassemble_emm(uchar *buffer, uint32_t *len); 593 593 #endif 594 594 #ifdef READER_CRYPTOWORKS 595 extern int cryptoworks_reassemble_emm(uchar *buffer, uint *len);595 extern int32_t cryptoworks_reassemble_emm(uchar *buffer, uint32_t *len); 596 596 #endif 597 597 598 void dvbapi_process_emm (int demux_index, int filter_num, unsigned char *buffer, unsigned int len) {598 void dvbapi_process_emm (int32_t demux_index, int32_t filter_num, unsigned char *buffer, uint32_t len) { 599 599 EMM_PACKET epg; 600 600 601 601 if (demux[demux_index].pidindex==-1) return; 602 602 603 u longprovider = demux[demux_index].ECMpids[demux[demux_index].pidindex].PROVID;604 u short caid = demux[demux_index].ECMpids[demux[demux_index].pidindex].CAID;603 uint32_t provider = demux[demux_index].ECMpids[demux[demux_index].pidindex].PROVID; 604 uint16_t caid = demux[demux_index].ECMpids[demux[demux_index].pidindex].CAID; 605 605 606 606 switch (caid >> 8) { … … 644 644 char token[128], str1[128]; 645 645 char type; 646 int i, ret, count=0;646 int32_t i, ret, count=0; 647 647 648 648 const char *cs_prio="oscam.dvbapi"; … … 685 685 type = 0; 686 686 #ifdef WITH_STAPI 687 uint disablefilter=0;687 uint32_t disablefilter=0; 688 688 ret = sscanf(trim(token), "%c: %63s %63s %d", &type, str1, str1+64, &disablefilter); 689 689 #else … … 725 725 char c_srvid[34]; 726 726 c_srvid[0]='\0'; 727 uint caid=0, provid=0, srvid=0, ecmpid=0, chid=0;727 uint32_t caid=0, provid=0, srvid=0, ecmpid=0, chid=0; 728 728 sscanf(str1, "%4x:%6x:%33[^:s]:%4x:%4x", &caid, &provid, c_srvid, &ecmpid, &chid); 729 729 … … 733 733 entry->chid=chid; 734 734 735 uint delay=0, force=0, mapcaid=0, mapprovid=0;735 uint32_t delay=0, force=0, mapcaid=0, mapprovid=0; 736 736 switch (type) { 737 737 case 'd': … … 798 798 } 799 799 800 struct s_dvbapi_priority *dvbapi_check_prio_match(int demux_id, int pidindex, char type) {800 struct s_dvbapi_priority *dvbapi_check_prio_match(int32_t demux_id, int32_t pidindex, char type) { 801 801 struct s_dvbapi_priority *p; 802 802 struct s_ecmpids *ecmpid = &demux[demux_id].ECMpids[pidindex]; 803 int i;803 int32_t i; 804 804 805 805 for (p=dvbapi_priority, i=0; p != NULL; p=p->next, i++) { … … 817 817 } 818 818 819 void dvbapi_resort_ecmpids(int demux_index) {820 int n,i;819 void dvbapi_resort_ecmpids(int32_t demux_index) { 820 int32_t n,i; 821 821 822 822 for (n=0; n<demux[demux_index].ECMpidcount; n++) … … 824 824 825 825 demux[demux_index].max_status=0; 826 int new_status=1;826 int32_t new_status=1; 827 827 828 828 if (dvbapi_priority) { … … 849 849 850 850 for (n=0; n<demux[demux_index].ECMpidcount; n++) { 851 int nr;851 int32_t nr; 852 852 SIDTAB *sidtab; 853 853 ECM_REQUEST er; … … 875 875 876 876 877 void dvbapi_parse_descriptor(int demux_id, unsigned int info_length, unsigned char *buffer) {878 //int ca_pmt_cmd_id = buffer[i + 5];879 u nsigned int descriptor_length=0;880 u nsigned int j,u;877 void dvbapi_parse_descriptor(int32_t demux_id, uint32_t info_length, unsigned char *buffer) { 878 //int32_t ca_pmt_cmd_id = buffer[i + 5]; 879 uint32_t descriptor_length=0; 880 uint32_t j,u; 881 881 882 882 if (info_length<1) … … 890 890 for (j = 0; j < info_length; j += descriptor_length + 2) { 891 891 descriptor_length = buffer[j+1]; 892 int descriptor_ca_system_id = (buffer[j+2] << 8) | buffer[j+3];893 int descriptor_ca_pid = ((buffer[j+4] & 0x1F) << 8) | buffer[j+5];894 int descriptor_ca_provider = 0;892 int32_t descriptor_ca_system_id = (buffer[j+2] << 8) | buffer[j+3]; 893 int32_t descriptor_ca_pid = ((buffer[j+4] & 0x1F) << 8) | buffer[j+5]; 894 int32_t descriptor_ca_provider = 0; 895 895 896 896 if (demux[demux_id].ECMpidcount>=ECM_PIDS) … … 922 922 } 923 923 924 void dvbapi_try_next_caid(int demux_id) {925 int num=-1, n, j;924 void dvbapi_try_next_caid(int32_t demux_id) { 925 int32_t num=-1, n, j; 926 926 927 927 if (demux[demux_id].ECMpids[demux[demux_id].curindex].irdeto_curchid+1 < demux[demux_id].ECMpids[demux[demux_id].curindex].irdeto_numchids) { … … 939 939 940 940 //values for first run (status > 0) 941 int start=1;942 int end=demux[demux_id].max_status;941 int32_t start=1; 942 int32_t end=demux[demux_id].max_status; 943 943 944 944 while (num==-1) { … … 993 993 } 994 994 995 int dvbapi_parse_capmt(unsigned char *buffer, unsigned int length, int connfd, char *pmtfile) {996 u nsigned int i;997 int demux_id=-1;998 u nsigned short ca_mask=0x01, demux_index=0x00, adapter_index=0x00;999 1000 int ca_pmt_list_management = buffer[0];1001 u nsigned int program_number = (buffer[1] << 8) | buffer[2];1002 u nsigned int program_info_length = ((buffer[4] & 0x0F) << 8) | buffer[5];995 int32_t dvbapi_parse_capmt(unsigned char *buffer, uint32_t length, int32_t connfd, char *pmtfile) { 996 uint32_t i; 997 int32_t demux_id=-1; 998 uint16_t ca_mask=0x01, demux_index=0x00, adapter_index=0x00; 999 1000 int32_t ca_pmt_list_management = buffer[0]; 1001 uint32_t program_number = (buffer[1] << 8) | buffer[2]; 1002 uint32_t program_info_length = ((buffer[4] & 0x0F) << 8) | buffer[5]; 1003 1003 1004 1004 if (buffer[17]==0x82 && buffer[18]==0x02) { … … 1016 1016 demux_id = i; 1017 1017 unsigned char lastcw[16]; 1018 int n;1018 int32_t n; 1019 1019 for(n = 0; n < 2; n++) { 1020 1020 memcpy(&lastcw[n*8], demux[demux_id].lastcw[n], 8); … … 1081 1081 dvbapi_parse_descriptor(demux_id, program_info_length-1, buffer+7); 1082 1082 1083 u nsigned int es_info_length=0;1083 uint32_t es_info_length=0; 1084 1084 for (i = program_info_length + 6; i < length; i += es_info_length + 5) { 1085 int stream_type = buffer[i];1086 u nsigned short elementary_pid = ((buffer[i + 1] & 0x1F) << 8) | buffer[i + 2];1085 int32_t stream_type = buffer[i]; 1086 uint16_t elementary_pid = ((buffer[i + 1] & 0x1F) << 8) | buffer[i + 2]; 1087 1087 es_info_length = ((buffer[i + 3] & 0x0F) << 8) | buffer[i + 4]; 1088 1088 … … 1128 1128 1129 1129 1130 void dvbapi_handlesockmsg (unsigned char *buffer, u nsigned int len, int connfd) {1131 u nsigned int val=0, size=0, i, k;1130 void dvbapi_handlesockmsg (unsigned char *buffer, uint32_t len, int32_t connfd) { 1131 uint32_t val=0, size=0, i, k; 1132 1132 1133 1133 //cs_dump(buffer, len, "handlesockmsg:"); … … 1162 1162 // ipbox fix 1163 1163 if (cfg.dvbapi_boxtype==BOXTYPE_IPBOX) { 1164 int demux_index=buffer[7+k];1164 int32_t demux_index=buffer[7+k]; 1165 1165 for (i = 0; i < MAX_DEMUX; i++) { 1166 1166 if (demux[i].demux_index == demux_index) { … … 1170 1170 } 1171 1171 // check do we have any demux running on this fd 1172 short execlose = 1;1172 int16_t execlose = 1; 1173 1173 for (i = 0; i < MAX_DEMUX; i++) { 1174 1174 if (demux[i].socket_fd == connfd) { … … 1190 1190 } 1191 1191 1192 int dvbapi_init_listenfd() {1193 int clilen,listenfd;1192 int32_t dvbapi_init_listenfd() { 1193 int32_t clilen,listenfd; 1194 1194 struct sockaddr_un servaddr; 1195 1195 … … 1218 1218 void dvbapi_chk_caidtab(char *caidasc, char type) { 1219 1219 char *ptr1, *ptr3; 1220 int i;1220 int32_t i; 1221 1221 1222 1222 for (i=0, ptr1=strtok(caidasc, ","); (ptr1); ptr1=strtok(NULL, ",")) { 1223 u nsigned longcaid, prov;1223 uint32_t caid, prov; 1224 1224 if( (ptr3=strchr(trim(ptr1), ':')) ) 1225 1225 *ptr3++='\0'; … … 1235 1235 char tmp1[5]; 1236 1236 snprintf(tmp1, sizeof(tmp1), "%04X", (uint)prov); 1237 int cw_delay = strtol(tmp1, '\0', 10);1237 int32_t cw_delay = strtol(tmp1, '\0', 10); 1238 1238 entry->delay=cw_delay; 1239 1239 } else … … 1258 1258 pthread_mutex_t event_handler_lock; 1259 1259 1260 void event_handler(int signal) {1260 void event_handler(int32_t signal) { 1261 1261 struct stat pmt_info; 1262 1262 char dest[1024]; 1263 1263 DIR *dirp; 1264 1264 struct dirent *dp; 1265 int i, pmt_fd;1265 int32_t i, pmt_fd; 1266 1266 uchar mbuf[1024]; 1267 1267 … … 1271 1271 pthread_mutex_lock(&event_handler_lock); 1272 1272 1273 int standby_fd = open(STANDBY_FILE, O_RDONLY);1273 int32_t standby_fd = open(STANDBY_FILE, O_RDONLY); 1274 1274 pausecam = (standby_fd > 0) ? 1 : 0; 1275 1275 if (standby_fd) close(standby_fd); … … 1330 1330 { close(pmt_fd); continue; } 1331 1331 1332 int found=0;1332 int32_t found=0; 1333 1333 for (i=0;i<MAX_DEMUX;i++) { 1334 1334 if (strcmp(demux[i].pmt_file, dp->d_name)==0) { … … 1346 1346 cs_sleepms(100); 1347 1347 1348 u nsigned int len = read(pmt_fd,mbuf,sizeof(mbuf));1348 uint32_t len = read(pmt_fd,mbuf,sizeof(mbuf)); 1349 1349 close(pmt_fd); 1350 1350 … … 1354 1354 } 1355 1355 1356 int pmt_id;1356 int32_t pmt_id; 1357 1357 #ifdef QBOXHD 1358 uint j1,j2;1358 uint32_t j1,j2; 1359 1359 // QboxHD pmt.tmp is the full capmt written as a string of hex values 1360 1360 // pmt.tmp must be longer than 3 bytes (6 hex chars) and even length … … 1418 1418 } 1419 1419 1420 void dvbapi_process_input(int demux_id, int filter_num, uchar *buffer, int len) {1420 void dvbapi_process_input(int32_t demux_id, int32_t filter_num, uchar *buffer, int32_t len) { 1421 1421 struct s_ecmpids *curpid = &demux[demux_id].ECMpids[demux[demux_id].demux_fd[filter_num].pidindex]; 1422 1422 … … 1446 1446 return; 1447 1447 1448 u nsigned short caid = curpid->CAID;1449 u nsigned longprovid = curpid->PROVID;1448 uint16_t caid = curpid->CAID; 1449 uint32_t provid = curpid->PROVID; 1450 1450 1451 1451 if ((caid >> 8) == 0x06) { … … 1464 1464 1465 1465 if (demux[demux_id].pidindex==-1) { 1466 int chid = (buffer[6] << 8) | buffer[7];1466 int32_t chid = (buffer[6] << 8) | buffer[7]; 1467 1467 curpid->irdeto_chid = chid; 1468 1468 … … 1491 1491 curpid->table = buffer[0]; 1492 1492 #ifdef COOL 1493 int num = demux[demux_id].curindex;//FIXME or pidindex ?1493 int32_t num = demux[demux_id].curindex;//FIXME or pidindex ? 1494 1494 dvbapi_stop_filternum(demux_id, filter_num); 1495 1495 dvbapi_start_filter(demux_id, num, demux[demux_id].ECMpids[num].ECM_PID, buffer[0] ^ 1, 0xFF, 3000, TYPE_ECM, 0); … … 1556 1556 dvbapi_client=cli; 1557 1557 1558 int maxpfdsize=(MAX_DEMUX*MAX_FILTER)+MAX_DEMUX+2;1558 int32_t maxpfdsize=(MAX_DEMUX*MAX_FILTER)+MAX_DEMUX+2; 1559 1559 struct pollfd pfd2[maxpfdsize]; 1560 int i,rc,pfdcount,g,connfd,clilen,j;1561 int ids[maxpfdsize], fdn[maxpfdsize], type[maxpfdsize];1560 int32_t i,rc,pfdcount,g,connfd,clilen,j; 1561 int32_t ids[maxpfdsize], fdn[maxpfdsize], type[maxpfdsize]; 1562 1562 struct timeb tp; 1563 1563 struct sockaddr_un servaddr; … … 1566 1566 1567 1567 struct s_auth *account; 1568 int ok=0;1568 int32_t ok=0; 1569 1569 for (ok=0, account=cfg.account; (account) && (!ok); account=account->next) 1570 1570 if( (ok=!strcmp(cfg.dvbapi_usr, account->usr)) ) … … 1586 1586 disable_pmt_files=1; 1587 1587 1588 int listenfd = -1;1588 int32_t listenfd = -1; 1589 1589 if (cfg.dvbapi_boxtype != BOXTYPE_IPBOX_PMT && cfg.dvbapi_pmtmode != 2 && cfg.dvbapi_pmtmode != 5) { 1590 1590 listenfd = dvbapi_init_listenfd(); … … 1711 1711 1712 1712 if (len < 3) { 1713 cs_debug_mask(D_DVBAPI, "camd.socket: too short message received");1713 cs_debug_mask(D_DVBAPI, "camd.socket: too int16_t message received"); 1714 1714 continue; 1715 1715 } … … 1717 1717 dvbapi_handlesockmsg(mbuf, len, connfd); 1718 1718 } else { // type==0 1719 int demux_index=ids[i];1720 int n=fdn[i];1719 int32_t demux_index=ids[i]; 1720 int32_t n=fdn[i]; 1721 1721 1722 1722 if ((len=dvbapi_read_device(pfd2[i].fd, mbuf, sizeof(mbuf))) <= 0) { … … 1737 1737 } 1738 1738 1739 void dvbapi_write_cw(int demux_id, uchar *cw, int index) {1740 int n;1739 void dvbapi_write_cw(int32_t demux_id, uchar *cw, int32_t index) { 1740 int32_t n; 1741 1741 unsigned char nullcw[8]; 1742 1742 memset(nullcw, 0, 8); … … 1754 1754 coolapi_write_cw(demux[demux_id].ca_mask, demux[demux_id].STREAMpids, demux[demux_id].STREAMpidcount, &ca_descr); 1755 1755 #else 1756 int i;1756 int32_t i; 1757 1757 for (i=0;i<8;i++) { 1758 1758 if (demux[demux_id].ca_mask & (1 << i)) { … … 1779 1779 return; 1780 1780 #endif 1781 int i,j;1781 int32_t i,j; 1782 1782 1783 1783 for (i=0;i<MAX_DEMUX;i++) { … … 1792 1792 if (er->rc < E_NOTFOUND && demux[i].pidindex==-1 && er->caid!=0) { 1793 1793 if (cfg.dvbapi_requestmode == 1) { 1794 int o=0;1794 int32_t o=0; 1795 1795 for (o=0; o<MAX_FILTER; o++) { 1796 1796 if (demux[i].demux_fd[o].fd > 0) { … … 1852 1852 default: 1853 1853 if (cfg.dvbapi_boxtype == BOXTYPE_NEUMO) { 1854 int idx=0;1854 int32_t idx=0; 1855 1855 sscanf(demux[i].pmt_file, "pmt%d.tmp", &idx); 1856 1856 dvbapi_write_cw(i, er->cw, idx); … … 1885 1885 } 1886 1886 1887 static void * dvbapi_handler(int ctyp) {1887 static void * dvbapi_handler(int32_t ctyp) { 1888 1888 //cs_log("dvbapi loaded fd=%d", idx); 1889 1889 if (cfg.dvbapi_enabled == 1) { … … 1905 1905 #ifdef WITH_STAPI 1906 1906 static void stapi_off() { 1907 int i;1907 int32_t i; 1908 1908 1909 1909 pthread_mutex_lock(&filter_lock); … … 1929 1929 } 1930 1930 1931 static int stapi_open() {1932 uint ErrorCode;1931 static int32_t stapi_open() { 1932 uint32_t ErrorCode; 1933 1933 1934 1934 DIR *dirp; 1935 1935 struct dirent *dp; 1936 1936 struct stat buf; 1937 int i;1937 int32_t i; 1938 1938 char pfad[80]; 1939 1939 stapi_on=1; 1940 int stapi_priority=0;1940 int32_t stapi_priority=0; 1941 1941 1942 1942 dirp = opendir(PROCDIR); … … 1974 1974 continue; 1975 1975 1976 int do_open=0;1976 int32_t do_open=0; 1977 1977 struct s_dvbapi_priority *p; 1978 1978 … … 2033 2033 } 2034 2034 2035 static int stapi_set_filter(int demux_id, ushort pid, uchar *filter, uchar *mask, int num, char *pmtfile) {2036 int i;2037 u short pids[1] = { pid };2035 static int32_t stapi_set_filter(int32_t demux_id, uint16_t pid, uchar *filter, uchar *mask, int32_t num, char *pmtfile) { 2036 int32_t i; 2037 uint16_t pids[1] = { pid }; 2038 2038 struct s_dvbapi_priority *p; 2039 2039 … … 2059 2059 } 2060 2060 2061 static int stapi_remove_filter(int demux_id, int num, char *pmtfile) {2062 int i;2061 static int32_t stapi_remove_filter(int32_t demux_id, int32_t num, char *pmtfile) { 2062 int32_t i; 2063 2063 struct s_dvbapi_priority *p; 2064 2064 … … 2081 2081 } 2082 2082 2083 static uint check_slot(int dev_id, uint checkslot, FILTERTYPE *skipfilter) {2084 int d,f,l;2083 static uint32_t check_slot(int32_t dev_id, uint32_t checkslot, FILTERTYPE *skipfilter) { 2084 int32_t d,f,l; 2085 2085 for (d=0; d<MAX_DEMUX; d++) { 2086 2086 for (f=0; f<MAX_FILTER; f++) { … … 2098 2098 2099 2099 2100 static int stapi_do_set_filter(int demux_id, FILTERTYPE *filter, ushort *pids, int pidcount, uchar *filt, uchar *mask, int dev_id) {2101 uint FilterAssociateError=0;2102 int k, ErrorCode=0, ret=0;2100 static int32_t stapi_do_set_filter(int32_t demux_id, FILTERTYPE *filter, uint16_t *pids, int32_t pidcount, uchar *filt, uchar *mask, int32_t dev_id) { 2101 uint32_t FilterAssociateError=0; 2102 int32_t k, ErrorCode=0, ret=0; 2103 2103 2104 2104 filter->fd = 0; … … 2108 2108 if (dev_list[dev_id].SessionHandle==0) return FALSE; 2109 2109 2110 uint FilterAllocateError = oscam_stapi_FilterAllocate(dev_list[dev_id].SessionHandle, &filter->fd);2110 uint32_t FilterAllocateError = oscam_stapi_FilterAllocate(dev_list[dev_id].SessionHandle, &filter->fd); 2111 2111 2112 2112 if (FilterAllocateError != 0) { … … 2117 2117 2118 2118 for (k=0;k<pidcount;k++) { 2119 u short pid = pids[k];2120 2121 uint QuerySlot = oscam_stapi_PidQuery(dev_list[dev_id].name, pid);2122 int SlotInit=1;2119 uint16_t pid = pids[k]; 2120 2121 uint32_t QuerySlot = oscam_stapi_PidQuery(dev_list[dev_id].name, pid); 2122 int32_t SlotInit=1; 2123 2123 2124 2124 if (QuerySlot != 0) { 2125 uint checkslot = check_slot(dev_id, QuerySlot, NULL);2125 uint32_t checkslot = check_slot(dev_id, QuerySlot, NULL); 2126 2126 if (checkslot>0) { 2127 2127 filter->SlotHandle[k] = QuerySlot; … … 2142 2142 } 2143 2143 2144 uint FilterSetError = oscam_stapi_FilterSet(filter->fd, filt, mask);2144 uint32_t FilterSetError = oscam_stapi_FilterSet(filter->fd, filt, mask); 2145 2145 2146 2146 if (ret || FilterAllocateError || FilterAssociateError || FilterSetError) { … … 2154 2154 } 2155 2155 2156 static int stapi_do_remove_filter(int demux_id, FILTERTYPE *filter, int dev_id) {2156 static int32_t stapi_do_remove_filter(int32_t demux_id, FILTERTYPE *filter, int32_t dev_id) { 2157 2157 if (filter->fd==0) return FALSE; 2158 2158 2159 uint BufferDeallocateError=0, SlotDeallocateError=0;2159 uint32_t BufferDeallocateError=0, SlotDeallocateError=0; 2160 2160 2161 2161 if (dev_list[dev_id].SessionHandle==0) return FALSE; 2162 2162 2163 int k;2163 int32_t k; 2164 2164 for (k=0;k<filter->NumSlots;k++) { 2165 uint checkslot = check_slot(dev_id, filter->SlotHandle[k], filter);2165 uint32_t checkslot = check_slot(dev_id, filter->SlotHandle[k], filter); 2166 2166 2167 2167 if (checkslot==0) { … … 2170 2170 } 2171 2171 } 2172 uint FilterDeallocateError = oscam_stapi_FilterDeallocate(filter->fd);2172 uint32_t FilterDeallocateError = oscam_stapi_FilterDeallocate(filter->fd); 2173 2173 2174 2174 memset(filter, 0, sizeof(FILTERTYPE)); … … 2184 2184 2185 2185 static void stapi_cleanup_thread(void *dev){ 2186 int dev_index=(int)dev;2186 int32_t dev_index=(int)dev; 2187 2187 2188 int ErrorCode;2188 int32_t ErrorCode; 2189 2189 ErrorCode = oscam_stapi_Close(dev_list[dev_index].SessionHandle); 2190 2190 … … 2194 2194 2195 2195 static void *stapi_read_thread(void *sparam) { 2196 int dev_index, ErrorCode, i, j, CRCValid;2197 uint QueryBufferHandle = 0, DataSize = 0;2196 int32_t dev_index, ErrorCode, i, j, CRCValid; 2197 uint32_t QueryBufferHandle = 0, DataSize = 0; 2198 2198 uchar buf[BUFFLEN]; 2199 2199 … … 2205 2205 pthread_cleanup_push(stapi_cleanup_thread, (void*) dev_index); 2206 2206 2207 int error_count=0;2207 int32_t error_count=0; 2208 2208 2209 2209 while (1) { … … 2238 2238 } 2239 2239 2240 u nsigned int NumFilterMatches = 0;2241 int demux_id=0, filter_num=0;2240 uint32_t NumFilterMatches = 0; 2241 int32_t demux_id=0, filter_num=0; 2242 2242 DataSize = 0; 2243 int found=0, k;2244 2245 u nsigned int MatchedFilterList[10];2243 int32_t found=0, k; 2244 2245 uint32_t MatchedFilterList[10]; 2246 2246 ErrorCode = oscam_stapi_BufferReadSection(QueryBufferHandle, MatchedFilterList, 10, &NumFilterMatches, &CRCValid, buf, BUFFLEN, &DataSize); 2247 2247 … … 2279 2279 #define DE_STOP 1 2280 2280 2281 static void stapi_DescramblerAssociate(int demux_id, ushort pid, int mode, int n) {2282 uint Slot=0;2283 int ErrorCode=0;2281 static void stapi_DescramblerAssociate(int32_t demux_id, uint16_t pid, int32_t mode, int32_t n) { 2282 uint32_t Slot=0; 2283 int32_t ErrorCode=0; 2284 2284 2285 2285 if (dev_list[n].SessionHandle==0) return; … … 2291 2291 2292 2292 if (mode == ASSOCIATE) { 2293 int k;2293 int32_t k; 2294 2294 for (k=0;k<SLOTNUM;k++) { 2295 2295 if (demux[demux_id].slot_assc[n][k]==Slot) { … … 2317 2317 cs_debug_mask(D_DVBAPI, "unset pid %04x on %s", pid, dev_list[n].name); 2318 2318 2319 int k;2319 int32_t k; 2320 2320 for (k=0;k<SLOTNUM;k++) { 2321 2321 if (demux[demux_id].slot_assc[n][k]==Slot) { … … 2329 2329 } 2330 2330 2331 static void stapi_startdescrambler(int demux_id, int dev_index, int mode) {2332 int ErrorCode;2331 static void stapi_startdescrambler(int32_t demux_id, int32_t dev_index, int32_t mode) { 2332 int32_t ErrorCode; 2333 2333 2334 2334 if (mode == DE_START && demux[demux_id].DescramblerHandle[dev_index] == 0) { 2335 uint DescramblerHandle=0;2335 uint32_t DescramblerHandle=0; 2336 2336 ErrorCode = oscam_stapi_DescramblerAllocate(dev_list[dev_index].SessionHandle, &DescramblerHandle); 2337 2337 if (ErrorCode != 0) { … … 2355 2355 } 2356 2356 2357 static int stapi_set_pid(int demux_id, int num, int index, ushort pid, char *pmtfile) {2358 int n;2357 static int32_t stapi_set_pid(int32_t demux_id, int32_t num, int32_t index, uint16_t pid, char *pmtfile) { 2358 int32_t n; 2359 2359 2360 2360 if (index==-1) { … … 2371 2371 } 2372 2372 2373 static int stapi_write_cw(int demux_id, uchar *cw, ushort *STREAMpids, int STREAMpidcount, char *pmtfile) {2374 int ErrorCode, l, n, k;2373 static int32_t stapi_write_cw(int32_t demux_id, uchar *cw, uint16_t *STREAMpids, int32_t STREAMpidcount, char *pmtfile) { 2374 int32_t ErrorCode, l, n, k; 2375 2375 unsigned char nullcw[8]; 2376 2376 memset(nullcw, 0, 8); … … 2423 2423 2424 2424 #ifdef AZBOX 2425 void azbox_openxcas_ecm_callback(int stream_id, unsigned int seq, int cipher_index, unsigned int caid, unsigned char *ecm_data, int l, unsigned short pid) {2425 void azbox_openxcas_ecm_callback(int32_t stream_id, uint32_t seq, int32_t cipher_index, uint32_t caid, unsigned char *ecm_data, int32_t l, uint16_t pid) { 2426 2426 cs_debug_mask(D_DVBAPI, "openxcas: ecm callback received"); 2427 2427 … … 2479 2479 2480 2480 2481 void azbox_openxcas_ex_callback(int stream_id, unsigned int seq, int idx, unsigned int pid, unsigned char *ecm_data, int l) {2481 void azbox_openxcas_ex_callback(int32_t stream_id, uint32_t seq, int32_t idx, uint32_t pid, unsigned char *ecm_data, int32_t l) { 2482 2482 cs_debug_mask(D_DVBAPI, "openxcas: ex callback received"); 2483 2483 … … 2538 2538 2539 2539 struct s_auth *account; 2540 int ok=0;2540 int32_t ok=0; 2541 2541 for (ok=0, account=cfg.account; (account) && (!ok); account=account->next) 2542 2542 if( (ok=!strcmp(cfg.dvbapi_usr, account->usr)) ) … … 2547 2547 2548 2548 openxcas_msg_t msg; 2549 int ret;2549 int32_t ret; 2550 2550 while ((ret = openxcas_get_message(&msg, 0)) >= 0) { 2551 2551 cs_sleepms(10); … … 2675 2675 openxcas_busy = 0; 2676 2676 2677 int i;2677 int32_t i; 2678 2678 for (i=0; i < MAX_DEMUX; i++) { 2679 2679 if (er->rc >= E_NOTFOUND) { … … 2715 2715 memset(nullcw, 0, 8); 2716 2716 2717 int n;2717 int32_t n; 2718 2718 for (n=0;n<2;n++) { 2719 2719 if (memcmp(er->cw + (n * 8), demux[0].lastcw[n], 8) && memcmp(er->cw + (n * 8), nullcw, 8)) {
Note:
See TracChangeset
for help on using the changeset viewer.