Comments (11)
I tried to cover most cases I could think of, I didn't think of any new tests though.
from srt-rs.
from srt-rs.
I've made a fork adding a parsing function to circumvent the incriminated case, we're testing it in our workers atm, I'll make a PR if it is conclusive.
About the performance of the crate, we were using an older version up until now (cf. https://crates.io/crates/srt-protocol) which was not implementing several nice improvements like the connection not dropping after 80 minutes. Other than this nasty bug, the crate was working well. We principally used it in our worker SDK to allow real time communication between workers for use cases like real-time subtitling or real-time video analysis. We used it for both audio/video and data streaming. We might, in the future, use it only for data streaming as we're considering relying directly on ffmpeg to open the SRT socket (and not opening the socket with this crate and then sending data to ffmpeg buffer).
This crate is something that we will definitely use in production in 2023 for the aforementioned use-cases, thus the interest we have to keep it updated :-).
from srt-rs.
Yeah, there's been some nice improvements since the crates.io release.
We will probably need to handle the empty hostname case explicitly. I wanted to keep that case to match the reference implementation, even though there's no interfaces that we implement that are truly compatible, so it's possible we could remove it entirely.
Another potential solution is to only have that strict version requirement on srt-transmit (the commandline app) and relax the requirement for srt-tokio and srt-protocol, as I think only the commandline relies on that old behavior.
from srt-rs.
Since we took in charge (with @MarcAntoine-Arnaud) the publishing of the crate, we could probably also include a release mechanism in the repo to ease release cycle, what do you think about it ? (which would make 3 PRs from our side, counting url and dependabot)
For the moment we tried the handling of the empty hostname case with regex, leaving the rest of the crate untouched.
from srt-rs.
from srt-rs.
from srt-rs.
Your first approach is actually what I went with, you can have a look on my fork (nipierre@94817a2). I will refine it a bit and add tests if necessary after our tests are conclusive.
from srt-rs.
Unfortunately the URL parsing is a bit more complex than that, and srt://:1234
does mean something different than srt://0.0.0.0:1234
, the former is a listener that binds to 0.0.0.0:1234
, and the latter is a caller that binds to 0 (ephemeral) and connects to 0.0.0.0:1234 (which is a nonsense operation)
This logic also applies for UDP sockets supplied on the srt-transmit commandline
see srt-transmit/tests/stransmit_cmdline.rs
for examples
from srt-rs.
from srt-rs.
Closed by #178.
from srt-rs.
Related Issues (20)
- Buffer size is constantly growing while receiving packets (memory leak or... ?). HOT 2
- Implement Packet Pacing and Live Congestion Control (LiveCC) according to the latest spec. HOT 1
- Sender does not timeout HOT 2
- Demux srt mpegts stream through ffmpeg HOT 4
- The receiver stops receiving data unexpectedly.
- Limit send buffer size HOT 4
- duplicate the srt-live-transmit srt url syntax HOT 1
- Not compatiable with SRT < 1.3.0 (Support HSv4) HOT 17
- Multiplex server drops a client after a couple of seconds.
- Too late packets. HOT 28
- Multithread connections HOT 3
- Gathering statistics on SrtListener is blocked unless all clients are dropped HOT 2
- Possibility to variate the latency HOT 2
- Release new version on crates.io HOT 6
- Use dependabot to track and automate dependencies update
- Implement key size mismatch HOT 7
- Handle server rejection properly
- tokio::net::lookup_host does not resolve
- Unclear debugging when buffers are too small HOT 2
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-rs.