Changeset 9756
- Timestamp:
- 06/03/14 23:17:07 (10 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
-
module-dvbapi.c (modified) (17 diffs)
-
module-dvbapi.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-dvbapi.c
r9755 r9756 88 88 struct s_client *dvbapi_client; 89 89 90 const char *boxdesc[] = { "none", "dreambox", "duckbox", "ufs910", "dbox2", "ipbox", "ipbox-pmt", "dm7000", "qboxhd", "coolstream", "neumo", "pc" };90 const char *boxdesc[] = { "none", "dreambox", "duckbox", "ufs910", "dbox2", "ipbox", "ipbox-pmt", "dm7000", "qboxhd", "coolstream", "neumo", "pc", "pc-nodmx" }; 91 91 92 92 static const struct box_devices devices[BOX_COUNT] = … … 449 449 { 450 450 case DVBAPI_3: 451 if (cfg.dvbapi_listenport )451 if (cfg.dvbapi_listenport || cfg.dvbapi_boxtype == BOXTYPE_PC_NODMX) 452 452 ret = demux[demux_id].demux_fd[n].fd = DUMMY_FD; 453 453 else … … 487 487 memcpy(sFP2.filter.filter, filt, 16); 488 488 memcpy(sFP2.filter.mask, mask, 16); 489 if (cfg.dvbapi_listenport )489 if (cfg.dvbapi_listenport || cfg.dvbapi_boxtype == BOXTYPE_PC_NODMX) 490 490 ret = dvbapi_net_filter_request(demux_id, n, &sFP2); 491 491 else … … 566 566 return 1; 567 567 } 568 if (cfg.dvbapi_boxtype == BOXTYPE_PC_NODMX) { 569 selected_api = DVBAPI_3; 570 selected_box = 1; 571 cs_log("[DVBAPI] Using %s listen socket, API forced to DVBAPIv3 (%d), userconfig boxtype: %d", devices[selected_box].cam_socket_path, selected_api, cfg.dvbapi_boxtype); 572 return 1; 573 } 568 574 int32_t i = 0, n = 0, devnum = -1, dmx_fd = 0, boxnum = sizeof(devices) / sizeof(struct box_devices); 569 575 char device_path[128], device_path2[128]; … … 635 641 char device_path[128], device_path2[128]; 636 642 643 if(cfg.dvbapi_boxtype == BOXTYPE_PC_NODMX) 644 return DUMMY_FD; 645 637 646 if(type == 0) 638 647 { … … 772 781 { 773 782 case DVBAPI_3: 774 if (cfg.dvbapi_listenport )783 if (cfg.dvbapi_listenport || cfg.dvbapi_boxtype == BOXTYPE_PC_NODMX) 775 784 retfilter = dvbapi_net_filter_request(demux_index, num, NULL); 776 785 else … … 810 819 } 811 820 #ifndef WITH_COOLAPI // no fd close for coolapi and stapi, all others do close fd! 812 if (!cfg.dvbapi_listenport )821 if (!cfg.dvbapi_listenport && cfg.dvbapi_boxtype != BOXTYPE_PC_NODMX) 813 822 { 814 823 retfd = close(fd); … … 1360 1369 ca_pid2.index = idx; 1361 1370 1362 if(cfg.dvbapi_boxtype == BOXTYPE_PC )1371 if(cfg.dvbapi_boxtype == BOXTYPE_PC || cfg.dvbapi_boxtype == BOXTYPE_PC_NODMX) 1363 1372 { 1364 1373 // preparing packet … … 1370 1379 1371 1380 // sending data to UDP (deprecated, will be removed in the future) 1372 send(currentfd, &packet[1], sizeof(packet)-1, 0); 1381 if (cfg.dvbapi_boxtype != BOXTYPE_PC_NODMX) 1382 send(currentfd, &packet[1], sizeof(packet)-1, 0); 1373 1383 cs_debug_mask(D_DVBAPI, "[DVBAPI] Demuxer #%d %s stream #%d pid=0x%04x index=%d on ca%d", demux_id, 1374 1384 (enable ? "enable" : "disable"), num + 1, ca_pid2.pid, ca_pid2.index, i); … … 2372 2382 } 2373 2383 #endif 2384 cs_debug_mask(D_DVBAPI, "[DVBAPI] GET_CW"); 2374 2385 get_cw(client, er); 2375 2386 #if defined WITH_AZBOX || defined WITH_MCA … … 2452 2463 } 2453 2464 2454 if( cfg.dvbapi_boxtype == BOXTYPE_PC&& buffer[7] == 0x82 && buffer[8] == 0x02)2465 if((cfg.dvbapi_boxtype == BOXTYPE_PC || cfg.dvbapi_boxtype == BOXTYPE_PC_NODMX) && buffer[7] == 0x82 && buffer[8] == 0x02) 2455 2466 { 2456 2467 *demux_index = buffer[9]; // it is always 0 but you never know … … 2952 2963 pthread_mutex_lock(&event_handler_lock); 2953 2964 2954 if(cfg.dvbapi_boxtype == BOXTYPE_PC )2965 if(cfg.dvbapi_boxtype == BOXTYPE_PC || cfg.dvbapi_boxtype == BOXTYPE_PC_NODMX) 2955 2966 { pausecam = 0; } 2956 2967 else … … 3624 3635 for(g = 0; g < MAX_FILTER; g++) 3625 3636 { 3626 if(!cfg.dvbapi_listenport && demux[i].demux_fd[g].fd > 0 && selected_api != STAPI && selected_api != COOLAPI)3637 if(!cfg.dvbapi_listenport && cfg.dvbapi_boxtype != BOXTYPE_PC_NODMX && demux[i].demux_fd[g].fd > 0 && selected_api != STAPI && selected_api != COOLAPI) 3627 3638 { 3628 3639 pfd2[pfdcount].fd = demux[i].demux_fd[g].fd; … … 3848 3859 if (len > 0) 3849 3860 pmtlen += len; 3850 if ( cfg.dvbapi_listenport&& len == 0) {3861 if ((cfg.dvbapi_listenport || cfg.dvbapi_boxtype == BOXTYPE_PC_NODMX) && len == 0) { 3851 3862 //client disconnects, stop all assigned decoding 3852 3863 for (j = 0; j < MAX_DEMUX; j++) … … 3870 3881 if (pmtlen > chunksize) 3871 3882 memmove(mbuf, mbuf + chunksize, pmtlen - chunksize); 3883 3872 3884 pmtlen -= chunksize; 3873 3885 continue; … … 4029 4041 } 4030 4042 4031 if(cfg.dvbapi_boxtype == BOXTYPE_PC )4043 if(cfg.dvbapi_boxtype == BOXTYPE_PC || cfg.dvbapi_boxtype == BOXTYPE_PC_NODMX) 4032 4044 { 4033 4045 // preparing packet … … 4579 4591 memcpy(sFP2.filter.filter, filter, 16); 4580 4592 memcpy(sFP2.filter.mask, mask, 16); 4581 if (cfg.dvbapi_listenport )4593 if (cfg.dvbapi_listenport || cfg.dvbapi_boxtype == BOXTYPE_PC_NODMX) 4582 4594 ret = dvbapi_net_filter_request(demux_index, num, &sFP2); 4583 4595 else -
trunk/module-dvbapi.h
r9574 r9756 38 38 #define BOXTYPE_NEUMO 10 39 39 #define BOXTYPE_PC 11 40 #define BOXTYPES 11 40 #define BOXTYPE_PC_NODMX 12 41 #define BOXTYPES 12 41 42 #define DMXMD5HASHSIZE 16 // use MD5() 42 43 #define REMOVED_STREAMPID_LASTINDEX 2
Note:
See TracChangeset
for help on using the changeset viewer.
