GithubHelp home page GithubHelp logo

Use url > 2.1.0 about srt-rs HOT 11 CLOSED

nipierre avatar nipierre commented on June 12, 2024
Use url > 2.1.0

from srt-rs.

Comments (11)

nipierre avatar nipierre commented on June 12, 2024 1

I tried to cover most cases I could think of, I didn't think of any new tests though.

from srt-rs.

robertream avatar robertream commented on June 12, 2024

from srt-rs.

nipierre avatar nipierre commented on June 12, 2024

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.

russelltg avatar russelltg commented on June 12, 2024

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.

nipierre avatar nipierre commented on June 12, 2024

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.

robertream avatar robertream commented on June 12, 2024

from srt-rs.

robertream avatar robertream commented on June 12, 2024

from srt-rs.

nipierre avatar nipierre commented on June 12, 2024

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.

russelltg avatar russelltg commented on June 12, 2024

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.

robertream avatar robertream commented on June 12, 2024

from srt-rs.

nipierre avatar nipierre commented on June 12, 2024

Closed by #178.

from srt-rs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.