Skip to content
Snippets Groups Projects
Commit 7c314292 authored by Sergio Ammirata's avatar Sergio Ammirata
Browse files

Merge branch 'librist-issue_181' into 'master'

Issue_181 and Issue_179

Closes #179 and #181

See merge request !252
parents a713708d 7ef284ad
No related branches found
No related tags found
1 merge request!252Issue_181 and Issue_179
Pipeline #526880 passed with stages
in 1 minute and 17 seconds
......@@ -312,23 +312,15 @@ int udpsocket_open_bind(const char *host, uint16_t port, const char *mciface)
/* Non-critical error */
rist_log_priv3( RIST_LOG_ERROR, "Cannot set SO_REUSEADDR: %s\n", strerror(errno));
}
if (is_multicast) {
struct sockaddr_in6 sa = { .sin6_family = raw.sin6_family, .sin6_port = raw.sin6_port };
if (bind(sd, (struct sockaddr *)&sa, addrlen) < 0) {
rist_log_priv3(RIST_LOG_ERROR, "Could not bind to interface: %s\n", strerror(errno));
udpsocket_close(sd);
return -1;
}
if (udpsocket_join_mcast_group(sd, mciface, (struct sockaddr *)&raw, raw.sin6_family) != 0) {
rist_log_priv3( RIST_LOG_ERROR, "Could not join multicast group: %s on %s\n", host, mciface);
return -1;
}
} else if (bind(sd, (struct sockaddr *)&raw, addrlen) < 0) {
if (bind(sd, (struct sockaddr *)&raw, addrlen) < 0) {
rist_log_priv3( RIST_LOG_ERROR, "Could not bind to interface: %s\n", strerror(errno));
udpsocket_close(sd);
return -1;
}
if (is_multicast && udpsocket_join_mcast_group(sd, mciface, (struct sockaddr *)&raw, raw.sin6_family) != 0) {
rist_log_priv3( RIST_LOG_ERROR, "Could not join multicast group: %s on %s\n", host, mciface);
return -1;
}
return sd;
}
......
......@@ -18,7 +18,7 @@ const char help_urlstr[] = "\nUsage: append to end of individual rist:// url(s)
" param cname=abcde arbitrary name for stream for display in logging\n"
" param rtt-min=### minimum expected rtt\n"
" param rtt-max=### maximum expected rtt\n"
" param verbose-level=# Disable -1; Error 3, Warning 4, Notice 5, Info 6, Debug 7, simulation/dry-run 100\n"
//" param verbose-level=# Disable -1; Error 3, Warning 4, Notice 5, Info 6, Debug 7, simulation/dry-run 100\n"
" param timing-mode=# 0 = RTP Timestamp (default); 1 = Arrival Time, 2 = RTP/RTCP Timestamp+NTP\n"
" Main and Advanced Profiles\n"
" param aes-type=# 128 = AES-128, 256 = AES-256 must have passphrase too\n"
......@@ -33,16 +33,16 @@ const char help_urlstr[] = "\nUsage: append to end of individual rist:// url(s)
" param weight=# default weight for multi-path load balancing. Use 0 for duplicate paths.\n"
" param username=abcde Username to identify this peer during authentication\n"
" param password=abcde Password corresponding to this peer's Username\n"
" param multiplex-mode=# Controls how rist payload is muxed/demuxed (-1=auto-detect, 0=rist/raw, \n"
" 1=vrt_src_port, 2=ipv4)\n"
//" param multiplex-filter=# When using mux-mode=ipv4, this is the string to be used for data filter.\n"
//" It should be written as destination IP:PORT\n"
" Advanced Profile\n"
" param compression=1|0 enable lz4 levels\n"
"\n"
"Usage: append to end of individual udp:// or rtp:// url(s) as ?param1=value1&param2=value2...\n"
" param miface=(device) device name (e.g. eth0) for multicast\n"
" param stream-id=# ID number (arbitrary) for multiplex/demultiplexing steam in peer connector\n"
" param multiplex-mode=# Controls how rist payload is muxed/demuxed\n"
" (-1=auto-detect, 0=rist/raw, 1=vrt_src_port, 2=ipv4)\n"
//" param multiplex-filter=# When using mux-mode=ipv4, this is the string to be used for data filter.\n"
//" It should be written as destination IP:PORT\n"
//" param rtp-timestamp=# carry over the timestamp to/from the rtp header into/from rist (0 or 1)\n"
//" param rtp-sequence=# carry over the sequence number to/from the rtp header into/from rist (0 or 1)\n"
//" param rtp-ptype=# override the default RTP PTYPE to this value\n"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment