-
-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
gstreamer: enable webrtc plugin by default #183884
Conversation
Since 2021 webrtc is recommended by W3C for web real-time communication, assigning multiple IETF standards for the same purpose. This plugin is a part of the GStreamer project since early 2018, when webrtcbin was merged and become part of the GStreamer 1.14 release. Since then, the team at Centricular has been working on improving the plugin and adding new features. This plugin is now considered stable and is used by many projects, including popular open-source WebRTC servers.
Thanks for contributing to Homebrew! 🎉 It looks like you're having trouble with a CI failure. See our contribution guide for help. You may be most interested in the section on dealing with CI failures. You can find the CI logs in the Checks tab of your pull request. |
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.
Thanks, but this approach doesn't work either.
I think you'll need to make the approach at #171902 work instead.
Thank you for the quick review! Unfortunately my limited knowledge in meson builds probably makes me the wrong guy for the task, but looking forward for the gstreamer to hop-in hopefully. @nirbheek maybe? Cheers, |
Unfortunately I know next-to-nothing about Brew, but I am happy to answer any questions you might have, and help with patches to meson build files in libnice or gstreamer. |
Ok, great, then let's do this. We need a way to compile gstreamer either:
Here it is the build command ussed by brew (with homebrew-core/Formula/g/gstreamer.rb Line 235 in 84eb14a
|
That's what https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6871 is for. Here's what you need to do:
That's it, this breaks the circular dependency. |
fdbfdd3
to
a5cb47f
Compare
There is a conflict on I did the required changes. To be honest, I hope for a cleaner solution on the gstreamer build side. I think this should be the default, check first if there is a libnice installed already via |
a5cb47f
to
549839a
Compare
549839a
to
18f09f2
Compare
The gstnice plugin is not a part of the gstreamer source code. It's part of the libnice source code. GStreamer already does what you describe when pulling in libnice for the webrtc library. |
You need to fix the Also, please split your commits so that each commit only modifies one formula at a time.
This will break when we start blocking formulae from downloading things at build-time, so it would be good to avoid downloading |
If formulae can specify a fetch step manually, you can just run |
This is done in #171902. You'll need to
to pick up the changes. (You might need to wait 20 minutes or so for the formulae.brew.sh to pick up the update.) |
HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>
, where<formula>
is the name of the formula you're submitting?brew test <formula>
, where<formula>
is the name of the formula you're submitting?brew audit --strict <formula>
(after doingHOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>
)? If this is a new formula, does it passbrew audit --new <formula>
?This PR enables gstreamer webrtc plugin by default.
Motivation
Since 2021 webrtc is recommended by W3C for web real-time communication, assigning multiple IETF standards for the same purpose. This plugin is a part of the GStreamer project since early 2018, when webrtcbin was merged and become part of the GStreamer 1.14 release. Since then, the team at Centricular has been working on improving the plugin and adding new features. This plugin is now considered stable and is used by many projects, including popular open-source WebRTC servers.
Issues
I've read this comment from another attempt, but I think I solved it easier, since
libnice
compiles withoutgstreamer
dependancy.Tests
I've compiled both gstreamer and libnice locally and tested with brew test & a local app I have developed in python, all is working well and gstreamer finds the necessary plugins (webrtcbin, libnice) on it's own from the brew plugins folder, using the latest version of
libnice
(which is good).References
CC @aconchillo @carlocab @ystreet