-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UDP #30
Comments
* make handle_keepalive_timer, handle_response, and handle_data proper methods. (pin-project is still confusing for me, but I think I'm starting to get the hang of it.) * swap a couple fields between Session and RtspConnection to improve clarity for #30
This is a work in progress. I'll likely force-push over it as I continue to rework it, it's gotten very little testing, and it has several obvious problems: * several unwrap()s and unimplemented!()s in error paths * other TODOs indicating things to improve * doesn't do TEARDOWN yet * doesn't send RTCP RRs yet (so even well-implemented servers won't be able to properly pace packets to a slower connection)
@jlpoolen if you're very brave, you can try out the I won't prepare a Moonfire NVR version with this until it's more solid. |
This is a work in progress. I'll likely force-push over it as I continue to rework it, it's gotten very little testing, and it has several obvious problems: * several unwrap()s and unimplemented!()s in error paths * other TODOs indicating things to improve * doesn't do TEARDOWN yet * doesn't send RTCP RRs yet (so even well-implemented servers won't be able to properly pace packets to a slower connection)
Brave as in a dog to a steak? Can you provide me an example of a URL for the UDP connection? I've not ventured in Reolink's UDP capability and would need an example to construct ones for my cameras. |
The URL doesn't change. With the additional |
Do you want me to leave tails of log files? I've tried three times, 10-20 seconds, then 2 almost 1 minute until a failure. Here my most recent:
For posterity, here's what I did to switch to this branch after I clone into a new area, e.g. /usr/local/src/retina_branch,
I'm a Subversion fan, so git is a foreign language for me. I had to fumble around until I came upon the "git checkout ..." command. |
Here's my first try (precedes my posting above):
|
Was trying for a 10 minute run (--duration 600), just after a minute same kind of error. Note: when the Fatal error occurs, the output file is not usable by vlc.
You can let me know either through this thread, or by other means, if you would like further testing or a testing that might generate unique logs with different error messages What I could do is accumulate log files and then hash the errors to identify different ones. |
Don't go to any trouble to gather logs and things; I haven't really done my due diligence on my own yet. But I should have mentioned: it probably should be used with |
I believe this is working well now. |
I have not updated since my initial pull. But I did do further testing and had several last until the specified duration of 10 minutes was reached. Do you want me to activate some tests? I've been working on a Perl script which automates testing and logging. |
Sure; I am curious how it will do in your high-loss environment. It's merged to the |
* out-of-order packets should be ignored (except for logging). * after ignored RTP or RTCP packet, don't incorrectly return Pending without both underlying sockets actually returning Pending. This could lead to not rechecking the sockets until prompted for another reason, like an RTSP keepalive.
It'd be nice to support RTP/UDP in addition to RTP/TCP (interleaved channels) for at least a couple reasons:
Work for receiving data over UDP:
TEARDOWN
, it gets handed off to some background task that retries the teardown periodically until success or timeout, then closes the socket(s). Note this is more IO library-specific logic. (It's possible to share UDP sockets between sessions, but I'm not seeing any real advantage right now, and it adds complexity.)TEARDOWN
or other request.When sending data (a client using the ONVIF audio back channel, or a server, neither of which is implemented yet anyway), we'd also need to implement pacing.
The text was updated successfully, but these errors were encountered: