Comments (6)
(referring partially)
The timeout
parameter is definitely in seconds. It's passed to the POSIX alarm()
function (that's why this thing doesn't work on Windows) that makes it in result fire the SIGALRM signal in order to interrupt the sending. This timeout is just to make stransmit automatically exit when nothing is being sent.
I think the "connection timeout" is kinda mistake, or definitely unclear. It is not the time to wait for being connected to the other party, it is the time that it waits before it breaks connection AFTER it is successfully connected (if no data are being transmitted). Bears a better description, I admit.
If you are looking for a connection timeout, use the conntimeo
option passed in SRT URI.
from srt.
The frequency of status report and bandwidth report is actually not even in any time units. It's in "times", that is, after how many packets transmitted the report should be printed. Effective frequency expressed in time will depend on the amount of sent data.
The Bandwidth (-b) is used the following way:
double expdur_ms = double(transfer_size)/conf_bw*1000;
auto expdur = milliseconds(size_t(expdur_ms));
So it looks for me as this Bandwidth is in B/s
unit. It's the maximum sending speed that is allowed for stransmit - if it's exceeded (sending used less time than expected), stransmit will use the remaining time for sleeping.
from srt.
ethouris thanks for your answers.
May be timeouts can be separate issue.
Because if I plug out cable, admitted on the scheme with red cross for period longer then for 3-4 seconds, stransmit falls.
I set conntimeo to 8 or 8000
source
./stransmit -t:60 -b:7500000 -v udp://@239.10.10.3:1234?adapter=10.10.70.50 srt://10.85.10.22:5000?latency=8000&conntimeo=8
<< 1316 -> FAILURE
srt_sendmsg: [2001] Connection was broken.
SrtCommon: DESTROYING CONNECTION, closing sockets
destination
./stransmit -t:60 -s:1000 -r:1000 -v srt://:5000?conntimeo=8 udp://239.10.10.10:1234?conntimeo=8
<< 1316 -> FAILURE
recvmsg: [2001] Connection was broken.
SrtCommon: DESTROYING CONNECTION, closing sockets
I think when the buffer of destinations is empty on a half, stransmit needs reconnect .
As I read in Deployment Guide the maximum bandwith overhead is 50%, so if we have complete drop of channel, we can retransmit through overhead only 4 sec
May be I'm wrong.
from srt.
I'd have to verify a little bit more how this conntimeo actually works, however AFAIR this is only to hold the connecting process for that time in case that the other party doesn't respond. If your connection is broken, you'll get the connection broken report immediately, basing on the premise that there's no mutual communication (timeout for receiving ACK or KEEPALIVE). When the socket is closed, it goes even faster due to receiving the SHUTDOWN message from the closing party.
There's a possibility to introduce a new socket option, which will control the connection persistence timeout. Currently it's hardcoded for 5 seconds, although the checkTimers() function would have to be called at least 16 times since the last received packet from the opposite party.
from srt.
Can I just ask, in the first example given by mrbloom, he uses parameter ?latency=8000 in is SRT URI. Is this the correct syntax for specifying latency, and what units is it in?
from srt.
The unit is, AFAIR, milliseconds. And yes, this is the correct syntax - the paramters in the URI are translated into socket options that are set using srt_setsockopt
(or srt_setsockflag
). For example, latency
parameter translates into SRTO_LATENCY
option.
from srt.
Related Issues (20)
- GStreamer CI reporting memory leak while using srt HOT 7
- [BUG] Order of set options. HOT 2
- [BUG] packets are not being delivered to the application using default SRT_LIVE with a broadcast bonded connection in localhost network HOT 4
- How do I get the Target/ Client IP address once connected HOT 3
- [BUG] Sequence number in the ACK packet isnβt correct HOT 3
- [BUG] AES-GCM with FEC crash
- Revise the TSBPD mode negotiation
- Statistics: pktRcvDrop for a broadcast group member
- RCV Loss List and concurrency in groups HOT 5
- [BUG] Group socket without members always return default value of options
- Building srt for android on Apple Silicon
- [MAINT] Make the SRT header file and all interface features independent on compile options
- `srt_recv()` always blocking. HOT 3
- Compatibility with CMake < 3.5 will be removed from a future version of CMake.
- [FR]: Support for merging MPEGTS multiple PMTs into one PMT. HOT 2
- [MAINT] Create CI builds involving building a shared library and an application trying to use it
- Possible explanation for difference in regularity of packets received from a small latency vs large latency buffer? HOT 38
- [FR] CMake: add prefix "SRT" to all srt cmake options
- [FR] CMake: make output directory configurable HOT 7
- Having massive grey artefacts with SRT livestreams / any tuning possible? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from srt.