Skip to content

Add groupconnect sockopt to SRT connection#13082

Open
kevmo314 wants to merge 2 commits intoobsproject:masterfrom
kevmo314:add-srt-groupconnect
Open

Add groupconnect sockopt to SRT connection#13082
kevmo314 wants to merge 2 commits intoobsproject:masterfrom
kevmo314:add-srt-groupconnect

Conversation

@kevmo314
Copy link
Copy Markdown
Contributor

@kevmo314 kevmo314 commented Feb 2, 2026

Description

Adds a parameter to set SRTO_GROUPCONNECT on the SRT socket.

Motivation and Context

This enables connection bonding on an SRT listener socket. https://github.com/Haivision/srt/blob/master/docs/features/socket-groups.md

How Has This Been Tested?

Tested manually with an OBS build.

Types of changes

  • New feature (non-breaking change which adds functionality)

Checklist:

  • My code has been run through clang-format.
  • I have read the contributing document.
  • My code is not on the master branch.
  • The code has been tested.
  • All commit messages are properly formatted and commits squashed where appropriate.
  • I have included updates to all appropriate documentation.

@kevmo314 kevmo314 force-pushed the add-srt-groupconnect branch from 2160ea3 to 90881d8 Compare February 2, 2026 01:30
@PatTheMav
Copy link
Copy Markdown
Member

The provided context is insufficient, as it effectively boils down to "enabling connection bonding enables connection bonding" (the "numquam per se" fallacy).

It would be helpful to understand which end-user scenarios and use-cases are fixed or enabled by this change.

Also looking at just the source code, it guards the functionality behind a preprocessor conditional but there is no way to actually enable this feature, which leads to further questions:

  • Why aren't these changes activated by default?
  • Would activating these changes by default have any side-effects on existing users/use-cases of SRT?
  • What would be the decisioning logic behind activating or deactivating the implementation?

In general we'd like to move away from bifurcating the codebase (and thus which variants of translation units the compilers "see") any further and also keep the possible compilation options to a minimum (every option creates a new permutation for stuff to go wrong).

@kevmo314
Copy link
Copy Markdown
Contributor Author

kevmo314 commented Feb 2, 2026

I did a little more digging, turns out this flag was present regardless of build in srt v1.5.0. I've updated the feature accordingly to avoid needing build configuration.

As far as the why... it really boils down to if the user wants it? This doesn't turn on any feature in SRT it only wires through a configuration option that OBS did not wire through before.

@PatTheMav
Copy link
Copy Markdown
Member

I did a little more digging, turns out this flag was present regardless of build in srt v1.5.0. I've updated the feature accordingly to avoid needing build configuration.

As far as the why... it really boils down to if the user wants it? This doesn't turn on any feature in SRT it only wires through a configuration option that OBS did not wire through before.

So it's more about ensuring that OBS supports the full feature set of a corresponding SRT connection partner?

@pkviet pkviet self-assigned this Feb 2, 2026
@pkviet pkviet added the Enhancement Improvement to existing functionality label Feb 2, 2026
@pkviet
Copy link
Copy Markdown
Member

pkviet commented Feb 2, 2026

Hello,
How can that feature be tested ?
The implementation follows closely that from FFmpeg which indeed does not have that option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Enhancement Improvement to existing functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants