Skip to content
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

[API] Drop EXPERIMENTAL from ENABLE_EXPERIMENTAL_BONDING #2316

Conversation

maxsharabayko
Copy link
Collaborator

@maxsharabayko maxsharabayko commented Apr 28, 2022

The bonding functionality has been integrated into a number of projects already. Backward compatibility of the SRT behavior on the wire, and SRT API has to be preserved.
Thus, the feature and the API can no longer be treated as "experimental".

The ENABLE_EXPERIMENTAL_BONDING CMake build option has been renamed to ENABLE_BONDING.
It is still disabled by default, as not all the projects would use it. Integrating SRT socket groups would also mean the group API has to be used in addition to the regular API.

It is also important to note that SRT built with ENABLE_BONDING would export more functions, and can't be treated fully ABI-compatible with SRT built without bonding. Probably this aspect should be depicted in having different SONAMEs for the two configurations.

TODO

@maxsharabayko maxsharabayko added Type: Enhancement Indicates new feature requests [API] Area: Changes in SRT library API labels Apr 28, 2022
@maxsharabayko maxsharabayko added this to the v1.4.5 milestone Apr 28, 2022
@maxsharabayko maxsharabayko force-pushed the develop/bonding-drop-experimental branch from d3ecc69 to 9aa3156 Compare April 29, 2022 14:04
@maxsharabayko maxsharabayko force-pushed the develop/bonding-drop-experimental branch 3 times, most recently from 5b2d379 to d9e4558 Compare May 3, 2022 11:01
@maxsharabayko maxsharabayko force-pushed the develop/bonding-drop-experimental branch from d9e4558 to 6b8d320 Compare May 4, 2022 12:53
@maxsharabayko maxsharabayko merged commit 64d7f69 into Haivision:master May 4, 2022
@maxsharabayko maxsharabayko deleted the develop/bonding-drop-experimental branch May 4, 2022 13:39
@yaneti
Copy link
Contributor

yaneti commented Jun 15, 2022

Could somebody elaborate on the default OFF for bonding ? Does ON make the API or the on the wire protocol incompatible with the old versions? i.e would a program using the library with built-in bonding be unable to talk to old srt senders or receivers or vice-versa ?
I can see why it was off while experimental , but now that its declared stable...

@maxsharabayko
Copy link
Collaborator Author

Enabling bonding features would increase the size of the binary. Being shipped in a number of other open-source projects it makes sense to use the bonding API only once the 3rd party project actually integrates this feature of SRT. Not much sense to enable the feature if it is not used.

@yaneti
Copy link
Contributor

yaneti commented Jun 15, 2022

Thanks.
Sounds like the size argument is more applicable to projects vendoring-in the library, while for a shared lib used by potentially more than one program it should definitely be ON. The size difference on Fedora x86_64 build for the library somewhat small, from 723K to 886K

@maxsharabayko
Copy link
Collaborator Author

Just remember SRT is used almost everywhere, including mobile and embedded platforms. I would not be surprised if your fridge would use SRT to do some smart things. Size does matter there. 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[API] Area: Changes in SRT library API Type: Enhancement Indicates new feature requests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants