upipe icon indicating copy to clipboard operation
upipe copied to clipboard

SRT

Open funman opened this issue 2 years ago • 21 comments

SRT protocol

funman avatar Oct 06 '23 14:10 funman

I hacked rist_ts and rist_rx changes to test quickly

Not sure if I should remove the changes completely or add new programs

funman avatar Oct 06 '23 14:10 funman

This depends on https://github.com/funman/bitstream/tree/srt

funman avatar Oct 06 '23 14:10 funman

I hacked rist_ts and rist_rx changes to test quickly

Not sure if I should remove the changes completely or add new programs

You should probably add srt_tx and srt_rx.

nto avatar Mar 26 '24 17:03 nto

@funman srth: no need to update flow def immediately breaks data transmission

This seems to break rist_tx caller

funman avatar Mar 28 '24 08:03 funman

There are still some indentation changes left in rist_rx and rist_tx.

nto avatar Mar 28 '24 14:03 nto

There are still some indentation changes left in rist_rx and rist_tx.

Sorry I think I used git diff -w

funman avatar Mar 28 '24 15:03 funman

What about adding upipe_srt_source and upipe_srt_sink pipes which could be used as replacement of upipe_udp_source/upipe_rtp_source and upipe_udp_sink? These would make srt_tx/srt_rx much simpler, and srt usage in client applications as well.

nto avatar Mar 29 '24 16:03 nto

What about adding upipe_srt_source and upipe_srt_sink pipes which could be used as replacement of upipe_udp_source/upipe_rtp_source and upipe_udp_sink? These would make srt_tx/srt_rx much simpler, and srt usage in client applications as well.

I don't understand what they would replace exactly, why does udpsink need to be replaced?

funman avatar Apr 04 '24 12:04 funman

I don't understand what they would replace exactly, why does udpsink need to be replaced?

The same way you could replace upipe_udp_source with upipe_rtp_source to use RTP instead of UDP, you should be able to use upipe_srt_source (with parameters passed in the URI) to use SRT instead.

nto avatar Apr 05 '24 13:04 nto

I don't understand what they would replace exactly, why does udpsink need to be replaced?

The same way you could replace upipe_udp_source with upipe_rtp_source to use RTP instead of UDP, you should be able to use upipe_srt_source (with parameters passed in the URI) to use SRT instead.

I guess it would have to handle the creation of udpsink and srt handshake as well then?

funman avatar Apr 05 '24 13:04 funman

Yes, it encapsulates everything, which is why srt_tx and srt_rx will be much simpler afterwards.

nto avatar Apr 05 '24 13:04 nto

It's not simpler for me since they are done already :)

funman avatar Apr 05 '24 13:04 funman

Yes, it encapsulates everything, which is why srt_tx and srt_rx will be much simpler afterwards.

Also wouldn't we be missing events between internal pipes that could be useful?

funman avatar Apr 05 '24 13:04 funman

@kierank any insight here?

funman avatar Apr 05 '24 14:04 funman

Maybe once we have fixed the bugs we could have a wrapper pipe?

kierank avatar Apr 07 '24 20:04 kierank

Maybe once we have fixed the bugs we could have a wrapper pipe?

Agreed. It does not have to be in this pull request.

nto avatar Apr 09 '24 15:04 nto

@cmassiot @nto @quarium I think this is "done"

kierank avatar Sep 06 '24 12:09 kierank

No, I think it should be on its own

Le lun. 9 sept. 2024, 13:13, JDarnley @.***> a écrit :

@.**** commented on this pull request.

In examples/rist_rx.c https://github.com/Upipe/upipe/pull/947#discussion_r1750062444:

@@ -331,7 +331,7 @@ int main(int argc, char *argv[])

 udp_sink_mgr = upipe_udpsink_mgr_alloc();
  • uclock = uclock_std_alloc(UCLOCK_FLAG_REALTIME);
  • uclock = uclock_std_alloc(0);

Did you intend this change and the similar one in rist_tx to remain in the PR?

— Reply to this email directly, view it on GitHub https://github.com/Upipe/upipe/pull/947#pullrequestreview-2289599154, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAVVXK2KSORXARENRULQDLZVV7FXAVCNFSM6AAAAAA5V4S66GVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDEOBZGU4TSMJVGQ . You are receiving this because you were mentioned.Message ID: @.***>

funman avatar Sep 09 '24 11:09 funman

What is the status of this SRT implementation? Intended to be mainlined at some point? Experimental?

kylophone avatar Jan 22 '25 21:01 kylophone

Hi Kyle,

I have been using this implementation in production for nearly a year now without major issues and interoperating with various libsrt library versions.

Most of the recent work has been around a few edge cases for rogue callers. The intention is to mainline it after some review. It's worth saying it's hard to unit test and also fuzz a complex protocol like SRT so that's a missing piece of work.

Regards, Kieran Kunhya

On Wed, 22 Jan 2025, 21:42 Kyle Swanson, @.***> wrote:

What is the status of this SRT implementation? Intended to be mainlined at some point? Experimental?

— Reply to this email directly, view it on GitHub https://github.com/Upipe/upipe/pull/947#issuecomment-2608329871, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABDEEGZWL4UELAIPJYU5KD2MAGFHAVCNFSM6AAAAAA5V4S66GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMMBYGMZDSOBXGE . You are receiving this because you were mentioned.Message ID: @.***>

kierank avatar Jan 22 '25 22:01 kierank

Sounds good. Thanks for the info, Kieran.

kylophone avatar Jan 22 '25 22:01 kylophone