Homebrew-core: gst-plugins-bad missing webrtcbin plugin

Created on 23 Mar 2018  路  11Comments  路  Source: Homebrew/homebrew-core

Please note we will close your issue without comment if you delete, do not read or do not fill out the issue checklist below and provide ALL the requested information. If you repeatedly fail to use the issue template, we will block you from ever submitting issues to Homebrew again.

  • [X] are reporting a bug others will be able to reproduce and not asking a question. If you're not sure or want to ask a question do so on our Discourse: https://discourse.brew.sh
  • [X] have a problem with brew install (or upgrade, reinstall) a single, official formula (not cask)? If it's a general brew problem please file this issue at Homebrew/brew: https://github.com/Homebrew/brew/issues/new. If it's a brew cask problem please file this issue at https://github.com/caskroom/homebrew-cask/issues/new. If it's a tap (e.g. Homebrew/homebrew-php) problem please file this issue at the tap.
  • [X] ran brew update and can still reproduce the problem?
  • [X] ran brew doctor, fixed all issues and can still reproduce the problem?
  • [X] ran brew gist-logs <formula> (where <formula> is the name of the formula that failed) and included the output link?
  • [X] if brew gist-logs didn't work: ran brew config and brew doctor and included their output with your issue?

To help us debug your issue please explain:

  • What you were trying to do (and why)
  • What happened (include command output)
  • What you expected to happen
  • Step-by-step reproduction instructions (by running brew install commands)

Problem

The recent 1.14.0 release of gstreamer included support for WebRTC via the webrtcbin element in the gst-plugins-bad package. brew install gst-plugins-bad completes OK, and (for example) gst-inspect-1.0 hlssink shows that hlssink is found in gst-plugins-bad as expected. brew info gst-plugins-bad confirms that v. 1.14.0 is installed. But gst-inspect-1.0 webrtcbin returns "No such element or plugin 'webrtcbin'", so Homebrew is failing to install that particular element properly.

The gst release notes say "GStreamer's new WebRTC implementation uses libnice for Interactive Connectivity Establishment (ICE)...", so I thought that perhaps a missing dependency on libnice could be the culprit. But brew install libnice and re-installing gst-plugins-bad made no difference.

Outputs

brew config:
HOMEBREW_VERSION: 1.5.12
ORIGIN: https://github.com/Homebrew/brew
HEAD: 85ebe88094f9095871b6ad752077ee1100b20328
Last commit: 34 hours ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 1d71e124ad62ca18815549782531fde7ecba9b5b
Core tap last commit: 64 minutes ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_RUBY_WARNINGS: -W0
CPU: octa-core 64-bit kabylake
Homebrew Ruby: 2.3.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Clang: 9.0 build 900
Git: 2.14.3 => /Library/Developer/CommandLineTools/usr/bin/git
Curl: 7.54.0 => /usr/bin/curl
Perl: /usr/bin/perl
Python: /usr/local/opt/python/libexec/bin/python => /usr/local/Cellar/python/3.6.4_4/Frameworks/Python.framework/Versions/3.6/bin/python3.6
Ruby: /usr/bin/ruby => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Java: N/A
macOS: 10.13.3-x86_64
Xcode: N/A
CLT: 9.2.0.0.1.1510905681
X11: N/A

brew gist-logs gst-plugins-bad:
Error: No logs.

brew doctor : attached
brew_doctor.txt

outdated

Most helpful comment

@rakkesh It worked for webrtcbin! Now I guess I need to figure out what srtsink and srtsrc depend on.

All 11 comments

Same issue with missing srtsink and srtsrc. Just for good measure, I checked all the other new elements released with 1.14 and they all appear to be there. Only elements linked to WebRTC and SRT appear to be missing.

The gst release notes say "GStreamer's new WebRTC implementation uses libnice for Interactive Connectivity Establishment (ICE)...", so I thought that perhaps a missing dependency on libnice could be the culprit. But brew install libnice and re-installing gst-plugins-bad made no difference.

@jon-courtney AFAIK, dependent libraries are not linked opportunistically as homebrew builds are sandboxed. You need to include the dependent library, libnice in gst-plugins-bad formula and rebuild it from source.

$ brew edit gst-plugins-bad

Add the following line,

depends_on "libnice" => :recommended ## or make it default or optional dependency

also, enable a switch, if needed. Save your changes and then,

$ brew reinstall --build-from-source gst-plugins-bad ## you may use --verbose and --debug optionally.

@rakkesh It worked for webrtcbin! Now I guess I need to figure out what srtsink and srtsrc depend on.

@rakkesh feel free to open a PR with this, though it is probably best to make this :optional assuming this is a rather rarely used option...

@sjmgarnier try adding depends_on "srt", and rebuild.

@tschoonj : I opened a PR for the webrtcbin fix, per the instructions from @rakkesh, after confirming that it built properly on my system. I made it a default dependency, however, since WebRTC support is a major new area of development in gst-plugins-bad, and I suspect others will be expecting this the webrtcbin element to show up by default through Homebrew.

@tschoonj Yes, I did this. It works. Also srtsink and srtsrc don't exist actually (error on Gstreamer release notes), it's actually srtclientsrc, srtserversrc, srtclientsink, srtserversink.

@jon-courtney Would you mind including srt as well in your PR?

@sjmgarnier : Thewebrtcbin PR is already submitted, but I can see about tacking on the srt dependency as well.

@jon-courtney Cool, thanks!

PR 25680 submitted.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

oli-laban picture oli-laban  路  3Comments

tejasmanohar picture tejasmanohar  路  3Comments

faraazkhan picture faraazkhan  路  3Comments

kiendang picture kiendang  路  3Comments

bantl23 picture bantl23  路  3Comments