Changeset 9448 in ntrip
- Timestamp:
- May 28, 2021, 12:23:36 PM (3 years ago)
- Location:
- trunk/ntripserver
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ntripserver/README
r9404 r9448 3 3 ---------------------------------------------------------------------- 4 4 5 (c) German Federal Agency for Cartography and Geodesy (BKG), 2002-20 195 (c) German Federal Agency for Cartography and Geodesy (BKG), 2002-2021 6 6 7 7 … … 51 51 from a single NTRIP source running under a POSIX operating system. 52 52 53 Basically the ntripserver grabs a GNSS bytestream (Input, Source)53 The purpose of this program is to pick up a GNSS data stream (Input, Source) 54 54 from either 55 55 56 1. a Serial port, or 57 2. an IP server, or 58 3. a File, or 59 4. a SISNeT Data Server, or 60 5. a UDP server, or 61 6. an NTRIP Version 1.0 Caster 62 63 and forwards that incoming stream to either 64 65 1. an NTRIP Version 2.0 Caster via TCP/IP (Output, Destination), or 66 2. an NTRIP Version 2.0 Caster via RTSP/RTP (Output, Destination), or 67 3. an NTRIP Version 2.0 Caster via plain UDP (Output, Destination), or 68 4. an NTRIP Version 1.0 Caster. 69 70 Please note, the options to support NTRIP Version 2.0 are currently still 71 under development and should be used with care. Keep in mind that details 72 of the NTRIP Version 2.0 transport protocol are still under discussion 73 and may be changed. 74 56 1. a Serial port, or 57 2. an IP server, or 58 3. a File, or 59 4. a SISNeT Data Server, or 60 5. a UDP server, or 61 6. an NTRIP Version 1.0 Caster 62 7. an NTRIP Version 2.0 Caster in HTTP mode 63 64 and forward that incoming stream (Output, Destination) to either 65 66 1. an NTRIP Version 2.0 Caster via TCP/IP (Output, Destination), or 67 2. an NTRIP Version 2.0 Caster via RTSP/RTP (Output, Destination), or 68 3. an NTRIP Version 2.0 Caster via plain UDP (Output, Destination), or 69 4. an NTRIP Version 1.0 Caster, or 70 5. an IP server via TCP/IP 75 71 76 72 Installation … … 98 94 The user may call the program with the following options: 99 95 100 -h|? print this help screen 101 102 -E <ProxyHost> Proxy server host name or address, required i.e. when 103 running the program in a proxy server protected LAN, 104 optional 105 -F <ProxyPort> Proxy server IP port, required i.e. when running 106 the program in a proxy server protected LAN, optional 107 -R <maxDelay> Reconnect mechanism with maximum delay between reconnect 108 attemts in seconds, default: no reconnect activated, 109 optional 110 111 -M <InputMode> Sets the input mode (1 = Serial Port, 2 = IP server, 112 3 = File, 4 = SISNeT Data Server, 5 = UDP server, 6 = NTRIP Caster), 113 mandatory 114 115 <InputMode> = 1 (Serial Port): (using 8-N-1 = data bits-parity-stop bits) 116 -i <Device> Serial input device, default: /dev/gps, mandatory if 117 <InputMode>=1 118 -b <BaudRate> Serial input baud rate, default: 19200 bps, mandatory 119 if <InputMode>=1 120 -f <InitFile> Name of initialization file to be send to input device, 121 optional 122 123 <InputMode> = 2|5 (IP port | UDP port): 124 -H <ServerHost> Input host name or address, default: 127.0.0.1, 125 mandatory if <InputMode> = 2|5 126 -P <ServerPort> Input port, default: 1025, mandatory if <InputMode>= 2|5 127 -f <ServerFile> Name of initialization file to be send to server, 128 optional 129 -x <ServerUser> User ID to access incoming stream, optional 130 -y <ServerPass> Password, to access incoming stream, optional 131 -B Bind to incoming UDP stream, optional for <InputMode> = 5 132 133 <InputMode> = 3 (File): 134 -s <File> File name to simulate stream by reading data from (log) 135 file, default is /dev/stdin, mandatory for <InputMode> = 3 136 137 <InputMode> = 4 (SISNeT Data Server): 138 -H <SisnetHost> SISNeT Data Server name or address, 139 default: 131.176.49.142, mandatory if <InputMode> = 4 140 -P <SisnetPort> SISNeT Data Server port, default: 7777, mandatory if 141 <InputMode> = 4 142 -u <SisnetUser> SISNeT Data Server user ID, mandatory if <InputMode> = 4 143 -l <SisnetPass> SISNeT Data Server password, mandatory if <InputMode> = 4 144 -V <SisnetVers> SISNeT Data Server Version number, options are 2.1, 3.0 145 or 3.1, default: 3.1, mandatory if <InputMode> = 4 146 147 <InputMode> = 6 (NTRIP Version 1.0 Caster): 148 -H <SourceHost> Source caster name or address, default: 127.0.0.1, 149 mandatory if <InputMode> = 6 150 -P <SourcePort> Source caster port, default: 2101, mandatory if 151 <InputMode> = 6 152 -D <SourceMount> Source caster mountpoint for stream input, mandatory if 153 <InputMode> = 6 154 -U <SourceUser> Source caster user Id for input stream access, mandatory 155 for protected streams if <InputMode> = 6 156 -W <SourcePass> Source caster password for input stream access, mandatory 157 for protected streams if <InputMode> = 6 158 159 -O <OutputMode> Sets output mode for communatation with destination caster 160 1 = http: NTRIP Version 2.0 Caster in TCP/IP mode 161 2 = rtsp: NTRIP Version 2.0 Caster in RTSP/RTP mode 162 3 = ntrip1: NTRIP Version 1.0 Caster 163 4 = udp: NTRIP Version 2.0 Caster in Plain UDP mode 164 optional 165 166 Defaults to NTRIP1.0, but will change to 2.0 in future versions 167 Note that the program automatically falls back from mode rtsp to mode http and 168 further to mode ntrip1 if necessary. 169 170 -a <DestHost> Destination caster name or address, default: 127.0.0.1, 171 mandatory 172 -p <DestPort> Destination caster port, default: 2101, mandatory 173 -m <DestMount> Destination caster mountpoint for stream upload, 174 mandatory 175 -n <DestUser> Destination caster user ID for stream upload to 176 mountpoint, only for NTRIP Version 2.0 destination 177 casters, mandatory 178 -c <DestPass> Destination caster password for stream upload to 179 mountpoint, mandatory 180 -N <STR-record> Sourcetable STR-record 181 optional for NTRIP Version 2.0 in RTSP/RTP and TCP/IP mode 96 ./ntripserver [OPTIONS] 97 98 -h|? print this help screen 99 100 -E <ProxyHost> Proxy server host name or address, required i.e. when 101 running the program in a proxy server protected LAN, 102 optional 103 -F <ProxyPort> Proxy server IP port, required i.e. when running 104 the program in a proxy server protected LAN, optional 105 -R <maxDelay> Reconnect mechanism with maximum delay between reconnect 106 attemts in seconds, default: no reconnect activated, 107 optional 108 -M <InputMode> Sets the input mode (1 = Serial Port, 2 = IP server, 109 3 = File, 4 = SISNeT Data Server, 5 = UDP server, 6 = NTRIP1 Caster, 110 7 = NTRIP2 Caster in HTTP mode), 111 mandatory 112 <InputMode> = 1 (Serial Port): 113 -i <Device> Serial input device, default: /dev/gps, mandatory if 114 <InputMode>=1 115 -b <BaudRate> Serial input baud rate, default: 19200 bps, mandatory 116 if <InputMode>=1 117 -f <InitFile> Name of initialization file to be send to input device, 118 optional 119 <InputMode> = 2|5 (IP port | UDP port): 120 -H <ServerHost> Input host name or address, default: 127.0.0.1, 121 mandatory if <InputMode> = 2|5 122 -P <ServerPort> Input port, default: 1025, mandatory if <InputMode>= 2|5 123 -f <ServerFile> Name of initialization file to be send to server, 124 optional 125 -x <ServerUser> User ID to access incoming stream, optional 126 -y <ServerPass> Password, to access incoming stream, optional 127 -B Bind to incoming UDP stream, optional for <InputMode> = 5 128 <InputMode> = 3 (File): 129 -s <File> File name to simulate stream by reading data from (log) 130 file, default is /dev/stdin, mandatory for <InputMode> = 3 131 <InputMode> = 4 (SISNeT Data Server): 132 -H <SisnetHost> SISNeT Data Server name or address, 133 default: 131.176.49.142, mandatory if <InputMode> = 4 134 -P <SisnetPort> SISNeT Data Server port, default: 7777, mandatory if 135 <InputMode> = 4 136 -u <SisnetUser> SISNeT Data Server user ID, mandatory if <InputMode> = 4 137 -l <SisnetPass> SISNeT Data Server password, mandatory if <InputMode> = 4 138 -V <SisnetVers> SISNeT Data Server Version number, options are 2.1, 3.0 139 or 3.1, default: 3.1, mandatory if <InputMode> = 4 140 <InputMode> = 6|7 (NTRIP Version 1.0|2.0 Caster): 141 -H <SourceHost> Source caster name or address, default: 127.0.0.1, 142 mandatory if <InputMode> = 6|7 143 -P <SourcePort> Source caster port, default: 2101, mandatory if 144 <InputMode> = 6|7 145 -D <SourceMount> Source caster mountpoint for stream input, mandatory if 146 <InputMode> = 6|7 147 -U <SourceUser> Source caster user Id for input stream access, mandatory 148 for protected streams if <InputMode> = 6|7 149 -W <SourcePass> Source caster password for input stream access, mandatory 150 for protected streams if <InputMode> = 6|7 151 -O <OutputMode> Sets output mode for communication with destination caster / server 152 1 = http : NTRIP Version 2.0 Caster in TCP/IP mode 153 2 = rtsp : NTRIP Version 2.0 Caster in RTSP/RTP mode 154 3 = ntrip1: NTRIP Version 1.0 Caster 155 4 = udp : NTRIP Version 2.0 Caster in Plain UDP mode 156 5 = tcpip : IP server in TCP/IP mode 157 Defaults to NTRIP1.0, but will change to 2.0 in future versions 158 Note that the program automatically falls back from mode rtsp to mode http and 159 further to mode ntrip1 if necessary. 160 -a <DestHost> Destination caster/server name or address, default: 127.0.0.1, 161 mandatory 162 -p <DestPort> Destination caster/server port, default: 2101, 163 mandatory 164 -m <DestMount> Destination caster mountpoint for stream upload, 165 only for NTRIP destination casters, mandatory 166 -n <DestUser> Destination caster user ID for stream upload to mountpoint, 167 only for NTRIP Version 2.0 destination casters, mandatory 168 -c <DestPass> Destination caster password for stream upload to mountpoint, 169 only for NTRIP destination casters, mandatory 170 -N <STR-record> Sourcetable STR-record 171 optional for NTRIP Version 2.0 in RTSP/RTP and TCP/IP mode 182 172 183 173 … … 198 188 program needs a password (and a user ID for NTRIP Version 2.0) 199 189 and one mountpoint per stream. 200 For the NTRIP Broadcasters EUREF-IP or IGS-IP this is currently 201 available from https://igs.bkg.bund.de/ntrip/registerprovider 202 190 For the NTRIP Broadcasters EUREF-IP or IGS-IP please contact 191 euref-ip@bkg.bund.de or igs-ip@bkg.bund.de 203 192 204 193 Disclaimer -
trunk/ntripserver/ntripserver.c
r9404 r9448 104 104 NTRIP1 = 3, 105 105 UDP = 4, 106 T DC= 5,106 TCPIP = 5, 107 107 END 108 108 }; … … 230 230 const char *ntrip_str = ""; 231 231 232 const char *dabplus_provider = 0;233 char dabplus_provider_str[17] = "";234 235 232 const char *user = ""; 236 233 const char *password = ""; … … 296 293 } 297 294 while ((c = getopt(argc, argv, 298 "M:i:h:b:p:s:a:m:c:H:P:f:x:y:l:u:V:D:U:W:O:E:F:R:N: T:n:B")) != EOF) {295 "M:i:h:b:p:s:a:m:c:H:P:f:x:y:l:u:V:D:U:W:O:E:F:R:N:n:B")) != EOF) { 299 296 switch (c) { 300 297 case 'M': /*** InputMode ***/ … … 422 419 else if (!strcmp(optarg, "u") || !strcmp(optarg, "udp")) 423 420 outputmode = UDP; 424 else if (!strcmp(optarg, "t") || !strcmp(optarg, "t dc"))425 outputmode = T DC;421 else if (!strcmp(optarg, "t") || !strcmp(optarg, "tcpip")) 422 outputmode = TCPIP; 426 423 else 427 424 outputmode = atoi(optarg); … … 438 435 ntrip_str = optarg; 439 436 break; 440 case 'T':441 dabplus_provider = optarg;442 break;443 437 case 'h': /* print help screen */ 444 438 case '?': … … 471 465 } 472 466 473 if (!mountpoint && outputmode != T DC) {467 if (!mountpoint && outputmode != TCPIP) { 474 468 fprintf(stderr, "ERROR: Missing mountpoint argument for stream upload\n"); 475 469 exit(1); 476 470 } 477 478 if (outputmode == TDC) { 479 fprintf(stderr, "ERROR: DABPLUS server upload implementation is so far not completed\n\n"); 480 exit(0); 481 471 if (outputmode == TCPIP) { 482 472 mountpoint = NULL; 483 if (dabplus_provider) {484 i = snprintf(dabplus_provider_str, 17, "%16s", dabplus_provider);485 if ((i > 16) || (i < 0)) {486 fprintf(stderr, "ERROR: DABPLUS provider name to long - length = %d (max: %d)\n", i, 16);487 exit(0);488 }489 }490 else {491 fprintf(stderr, "ERROR: DABPLUS provider name required\n");492 exit(0);493 }494 473 } 495 474 496 475 if (!password[0]) { 497 if (outputmode != T DC)476 if (outputmode != TCPIP) 498 477 fprintf(stderr, 499 478 "WARNING: Missing password argument for stream upload - are you really sure?\n"); … … 515 494 /*** proxy server handling ***/ 516 495 if (*proxyhost) { 517 if (outputmode == TDC) { 518 fprintf(stderr, "\nWARNING: TDC is not able to support proxy servers, try direct connection\n\n"); 519 inhost = proxyhost; 520 inport = proxyport; 521 outhost = casterouthost; 522 outport = casteroutport; 523 } else { 524 outhost = inhost = proxyhost; 525 outport = inport = proxyport; 526 } 527 i = snprintf(szSendBuffer, sizeof(szSendBuffer), "http://%s:%d", casterouthost, casteroutport); 528 if ((i > SZ) || (i < 0)) { 529 fprintf(stderr, 530 "ERROR: Destination caster name/port to long - length = %d (max: %d)\n", 531 i, SZ); 532 exit(0); 533 } else { 534 strncpy(post_extension, szSendBuffer, (size_t) i); 535 strcpy(szSendBuffer, ""); 536 i = snprintf(szSendBuffer, sizeof(szSendBuffer), ":%d", casteroutport); 537 strncpy(rtsp_extension, szSendBuffer, SZ); 538 strcpy(szSendBuffer, ""); i = 0; 539 } 496 inhost = proxyhost; 497 inport = proxyport; 540 498 i = snprintf(szSendBuffer, sizeof(szSendBuffer), "http://%s:%d", casterinhost, casterinport); 541 499 if ((i > SZ) || (i < 0)) { … … 549 507 i = 0; 550 508 } 509 if (strstr(casterouthost, "127.0.0.1") || 510 strstr(casterouthost, "localhost")) { 511 outhost = casterouthost; 512 outport = casteroutport; 513 } 514 else { 515 outhost = proxyhost; 516 outport = proxyport; 517 i = snprintf(szSendBuffer, sizeof(szSendBuffer), "http://%s:%d", casterouthost, casteroutport); 518 if ((i > SZ) || (i < 0)) { 519 fprintf(stderr, 520 "ERROR: Destination caster name/port to long - length = %d (max: %d)\n", 521 i, SZ); 522 exit(0); 523 } else { 524 strncpy(post_extension, szSendBuffer, (size_t) i); 525 strcpy(szSendBuffer, ""); 526 i = snprintf(szSendBuffer, sizeof(szSendBuffer), ":%d", casteroutport); 527 strncpy(rtsp_extension, szSendBuffer, SZ); 528 strcpy(szSendBuffer, ""); i = 0; 529 } 530 } 531 551 532 } else { 552 533 outhost = casterouthost; … … 682 663 } 683 664 } /* connect to input-caster or proxy server*/ 684 else if (connect(gps_socket, (struct sockaddr*) &caster, sizeof(caster)) 685 < 0) { 665 else if (connect(gps_socket, (struct sockaddr*) &caster, sizeof(caster)) < 0) { 686 666 fprintf(stderr, "WARNING: can't connect input to %s at port %d\n", 687 667 inet_ntoa(caster.sin_addr), inport); … … 728 708 szSendBuffer[nBufferBytes++] = '\r'; 729 709 szSendBuffer[nBufferBytes++] = '\n'; 730 //fprintf(stdout, "%s\n", szSendBuffer);710 fprintf(stdout, "%s\n", szSendBuffer); 731 711 if ((send(gps_socket, szSendBuffer, (size_t) nBufferBytes, 0)) != nBufferBytes) { 732 712 fprintf(stderr, "WARNING: could not send Source caster request\n"); … … 917 897 break; 918 898 } 919 920 899 memset((char*) &caster, 0x00, sizeof(caster)); 921 900 memcpy(&caster.sin_addr, he->h_addr, (size_t)he->h_length); … … 929 908 outputmode == HTTP ? "http" : 930 909 outputmode == UDP ? "udp" : 931 outputmode == RTSP ? "rtsp" : "t dc");910 outputmode == RTSP ? "rtsp" : "tcpip"); 932 911 933 912 if (connect(socket_tcp, (struct sockaddr*) &caster, sizeof(caster)) < 0) { … … 1190 1169 break; 1191 1170 } 1192 if ((getsockname(socket_udp, (struct sockaddr*) &local, &len)) 1193 != -1) { 1171 if ((getsockname(socket_udp, (struct sockaddr*) &local, &len)) != -1) { 1194 1172 client_port = (unsigned int) ntohs(local.sin_port); 1195 1173 } else { … … 1327 1305 input_init = output_init = 0; 1328 1306 break; 1329 case T DC:1307 case TCPIP: 1330 1308 fallback = 0; 1331 szSendBuffer[0] = 0x28;1332 szSendBuffer[1] = 0x11;1333 szSendBuffer[2] = 0x19;1334 szSendBuffer[3] = 0x69;1335 strncpy(szSendBuffer + 4, dabplus_provider_str, 16);1336 szSendBuffer[20] = 0; // mot1337 nBufferBytes = strlen(szSendBuffer);1338 if ((nBufferBytes > 20) || (nBufferBytes < 0)) {1339 fprintf(stderr, "ERROR: Destination server request to long\n");1340 reconnect_sec_max = 0;1341 output_init = 0;1342 break;1343 }1344 if (!send_to_caster(szSendBuffer, socket_tcp, nBufferBytes)) {1345 output_init = 0;1346 break;1347 }1348 /* check Destination server's response1349 in case of a unidirectional connection muxd will close the connection1350 if an error occurs without transmitting any status information1351 */1352 1309 send_receive_loop(socket_tcp, outputmode, NULL, 0, 0, chunkymode); 1353 1310 input_init = output_init = 0; … … 1580 1537 /* send data */ 1581 1538 /*****************/ 1582 if ((nBufferBytes) && (outmode == NTRIP1 )) {1539 if ((nBufferBytes) && (outmode == NTRIP1 || outmode == TCPIP)) { 1583 1540 int i; 1584 1541 if ((i = send(sock, buffer, (size_t) nBufferBytes, MSG_DONTWAIT)) != nBufferBytes) { … … 1750 1707 } 1751 1708 } 1752 else if ((nBufferBytes) && (outmode == TDC)) { 1753 1709 else if ((nBufferBytes) && (outmode == TCPIP)) { 1710 int i; 1711 if ((i = send(sock, buffer, (size_t) nBufferBytes, MSG_DONTWAIT)) != nBufferBytes) { 1712 if (i < 0) { 1713 if (errno != EAGAIN) { 1714 perror("WARNING: could not send data to IP server and port"); 1715 return; 1716 } 1717 } else if (i) { 1718 memmove(buffer, buffer + i, (size_t) (nBufferBytes - i)); 1719 nBufferBytes -= i; 1720 } 1721 } else { 1722 nBufferBytes = 0; 1723 } 1754 1724 } 1755 1725 if (send_recv_success == 3) … … 1939 1909 fprintf(stderr, 1940 1910 " and forward that incoming stream (Output, Destination) to either\n\n"); 1941 fprintf(stderr, " - an NTRIP Version 1.0 Caster, or\n"); 1942 fprintf(stderr, " - an NTRIP Version 2.0 Caster via TCP/IP or RTSP/RTP, or \n"); 1943 fprintf(stderr, " - an DABPLUS Content Server via TCP/IP and TDC \n\n\n"); 1911 fprintf(stderr, " 1. an NTRIP Version 2.0 Caster via TCP/IP (Output, Destination), or\n"); 1912 fprintf(stderr, " 2. an NTRIP Version 2.0 Caster via RTSP/RTP (Output, Destination), or\n"); 1913 fprintf(stderr, " 3. an NTRIP Version 2.0 Caster via plain UDP (Output, Destination), or\n"); 1914 fprintf(stderr, " 4. an NTRIP Version 1.0 Caster, or\n"); 1915 fprintf(stderr, " 5. an IP server via TCP/IP\n\n\n"); 1944 1916 fprintf(stderr, "OPTIONS\n"); 1945 1917 fprintf(stderr, " -h|? print this help screen\n\n"); … … 1953 1925 fprintf(stderr, " optional\n\n"); 1954 1926 fprintf(stderr, " -M <InputMode> Sets the input mode (1 = Serial Port, 2 = IP server,\n"); 1955 fprintf(stderr, " 3 = File, 4 = SISNeT Data Server, 5 = UDP server, 6 = NTRIP1 Caster, 7 = NTRIP2 Caster in HTTP mode),\n"); 1927 fprintf(stderr, " 3 = File, 4 = SISNeT Data Server, 5 = UDP server, 6 = NTRIP1 Caster,\n"); 1928 fprintf(stderr, " 7 = NTRIP2 Caster in HTTP mode),\n"); 1956 1929 fprintf(stderr, " mandatory\n\n"); 1957 1930 fprintf(stderr, " <InputMode> = 1 (Serial Port):\n"); … … 1995 1968 fprintf(stderr, " for protected streams if <InputMode> = 6|7\n\n"); 1996 1969 fprintf(stderr, " -O <OutputMode> Sets output mode for communication with destination caster / server\n"); 1997 fprintf(stderr, " 1 = http :NTRIP Version 2.0 Caster in TCP/IP mode\n");1998 fprintf(stderr, " 2 = rtsp :NTRIP Version 2.0 Caster in RTSP/RTP mode\n");1970 fprintf(stderr, " 1 = http : NTRIP Version 2.0 Caster in TCP/IP mode\n"); 1971 fprintf(stderr, " 2 = rtsp : NTRIP Version 2.0 Caster in RTSP/RTP mode\n"); 1999 1972 fprintf(stderr, " 3 = ntrip1: NTRIP Version 1.0 Caster\n"); 2000 fprintf(stderr, " 4 = udp :NTRIP Version 2.0 Caster in Plain UDP mode\n");2001 fprintf(stderr, " 5 = t dc: DABPLUS Content Server in TDCmode\n\n\n");1973 fprintf(stderr, " 4 = udp : NTRIP Version 2.0 Caster in Plain UDP mode\n"); 1974 fprintf(stderr, " 5 = tcpip : IP server in TCP/IP mode\n\n\n"); 2002 1975 fprintf(stderr, " Defaults to NTRIP1.0, but will change to 2.0 in future versions\n"); 2003 1976 fprintf(stderr, " Note that the program automatically falls back from mode rtsp to mode http and\n"); 2004 1977 fprintf(stderr, " further to mode ntrip1 if necessary.\n\n"); 2005 fprintf(stderr, " -a <DestHost> Destination caster name or address, default: 127.0.0.1,\n");1978 fprintf(stderr, " -a <DestHost> Destination caster/server name or address, default: 127.0.0.1,\n"); 2006 1979 fprintf(stderr, " mandatory\n"); 2007 fprintf(stderr, " -p <DestPort> Destination caster port, default: 2101,\n");1980 fprintf(stderr, " -p <DestPort> Destination caster/server port, default: 2101,\n"); 2008 1981 fprintf(stderr, " mandatory\n"); 2009 1982 fprintf(stderr, " -m <DestMount> Destination caster mountpoint for stream upload,\n"); … … 2015 1988 fprintf(stderr, " -N <STR-record> Sourcetable STR-record\n"); 2016 1989 fprintf(stderr, " optional for NTRIP Version 2.0 in RTSP/RTP and TCP/IP mode\n\n"); 2017 fprintf(stderr, " -T <DAB+provider> DAB+ provider name, not longer than 16 char, mandatory for \n");2018 fprintf(stderr, " upload to DABPLUS Content Server in TDC mode\n");2019 1990 exit(rc); 2020 1991 } /* usage */
Note:
See TracChangeset
for help on using the changeset viewer.