-
Notifications
You must be signed in to change notification settings - Fork 84
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
deps.ffmpeg: Add libdatachannel #170
Conversation
51d7f9e
to
fe09a69
Compare
@DDRBoxman
|
56bcc50
to
9695940
Compare
9695940
to
85c5e9e
Compare
01247ed
to
e829f9b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Squash the second commit since it's just reverting changes in the first one. Separate the prefix from the rest of the commit message subject with a colon.
@PatTheMav do we want to split this into individual commits to update+patch mbedTLS, add libdatachannel (or update mbedTLS, add mbedTLS patch and libdatachannel)? I usually prefer component updates are at least their own commits. Mostly unsure how to treat the added patch.
9dd779d
to
7c3e63a
Compare
@RytoEX mind reviewing again? I split the PR into three commits and addressed all other comments.
|
@RytoEX mind reviewing again? I enabled POSIX with mingw since libdatachannel depends on it for c++11 threading. |
I've asked @PatTheMav to assist in review. From what I recall of previous conversations, there should have been a successful build without |
A bit of background on the whole thing:
There are some complications around this:
Given that libdatachannel will not be used by FFmpeg (and is just compiled as part of it as a workaround for the time being), it should be ok to use the |
You also need to upstream a patch to The |
@PatTheMav Opened a PR against libdatachannel paullouisageneau/libdatachannel#889 |
2fbf795
to
cbde754
Compare
@PatTheMav the patch has been upstreamed and merged. Could I get another review please and the workflow approved. Will debug if anything fails! |
6fa8cb0
to
78eb61f
Compare
Regarding the libdatachannel commit that is checked out:
|
If there are specific commits in libdatachannel that are causing a regression, we can forcefully patch them out or revert them if needed in the patch step of the dependency script. It would be ideal if the issue could be fixed upstream though. If I understand the conversation correctly, it is these changes to libjuice that are seemingly causing this issue of 2 seconds of blocking at the start of streams: The regression is being tracked at paullouisageneau/libdatachannel#892. Is that about the sum of things? Has someone tried bisecting the libjuice changes to confirm which commit there causes the issue, or are we working off of a best guess? |
@RytoEX Can we for now not take those future commits, since we don't need them? I will work with upstream and get them resolved. I don't have access to a Windows PC for ~2 weeks (when I return to work) Talking with @pkviet I believe this PR is ready to be merged. If we can land the deps then we can work concurrently again. I will go work on upstream issue, while other devs address the obs-studio PR itself. thank you |
Adds support for SRTP Protection profiles to be negotiated during DTLS handshake. Needed for libdatachannel/WebRTC support.
Allows POSIX toolchain to be selectively used by some targets
Co-authored-by: pkv <pkv@obsproject.com>
@RytoEX yes you understand correctly. For now, leaving out the commits related to thread naming, doesn't pose any issues. Some things to explore in the future:
For now, the dlls generated in this pr work fine along with the whip pr. Although i'd rather prefer the issue with 'thread names' fixed eventually, this PR is imo in a mergeable state. |
@PatTheMav do my changes look good? Anything else I should be doing? |
I don't think my question regarding shared/static has been fully answered. |
@PatTheMav |
Sounds good to me then. |
The libdatachannel situation would be the same as librist and SRT, which have the same mbedtls dependence and are shared builds. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Feedback addressed. This seems good to go.
Description
Adds libdatachannel to the ffmpeg deps allowing us to use webrtc in OBS.
Libdatachannel requires srtp to be enabled in mbedtls so we enable that here.
libdatachannel is compiled in the ffmpeg deps to cut down on complexity and due to the fact that there are some lingering issues with mbedtls combined with libdatachannel with the msvc compiler.
Motivation and Context
This will allow us to add WHIP, WHEP, and eventually maybe even build out webrtc apis for plugins.
Prerequisite for this PR:
obsproject/obs-studio#7926
How Has This Been Tested?
Types of changes
Checklist: