gavv / webrtc-cli

WebRTC command-line peer.
MIT License
221 stars 24 forks source link

Support for macOS? #11

Open prologic opened 2 years ago

prologic commented 2 years ago

This doesn't seem to build on macOS 😢

$ go install github.com/gavv/webrtc-cli@latest
go: downloading github.com/gavv/webrtc-cli v0.0.1
go: downloading github.com/pion/rtp v1.1.4
go: downloading github.com/pion/sdp/v2 v2.3.1
go: downloading github.com/pion/webrtc/v2 v2.1.12
go: downloading gopkg.in/gavv/opus.v2 v2.0.0-20191117073952-d4c14983ee1d
go: downloading github.com/mesilliac/pulse-simple v0.0.0-20170506101341-75ac54e19fdf
go: downloading github.com/youpy/go-wav v0.0.0-20160223082350-b63a9887d320
go: downloading github.com/pion/dtls v1.5.3
go: downloading github.com/pion/datachannel v1.4.12
go: downloading github.com/pion/ice v0.7.1
go: downloading github.com/pion/rtcp v1.2.1
go: downloading github.com/pion/sctp v1.7.2
go: downloading github.com/pion/srtp v1.2.6
go: downloading github.com/pion/transport v0.8.10
go: downloading github.com/youpy/go-riff v0.0.0-20131220112943-557d78c11efb
go: downloading github.com/pion/stun v0.3.3
go: downloading github.com/pion/mdns v0.0.3
go: downloading github.com/pion/turn v1.4.0
go: downloading golang.org/x/net v0.0.0-20191021144547-ec77196f6094
go: downloading golang.org/x/crypto v0.0.0-20191001170739-f9e2070545dc
go: downloading golang.org/x/sys v0.0.0-20191023151326-f89234f9a2c2
# golang.org/x/sys/unix
go/pkg/mod/golang.org/x/sys@v0.0.0-20191023151326-f89234f9a2c2/unix/syscall_darwin.1_13.go:25:3: //go:linkname must refer to declared function or variable
go/pkg/mod/golang.org/x/sys@v0.0.0-20191023151326-f89234f9a2c2/unix/zsyscall_darwin_amd64.1_13.go:27:3: //go:linkname must refer to declared function or variable
go/pkg/mod/golang.org/x/sys@v0.0.0-20191023151326-f89234f9a2c2/unix/zsyscall_darwin_amd64.1_13.go:40:3: //go:linkname must refer to declared function or variable
go/pkg/mod/golang.org/x/sys@v0.0.0-20191023151326-f89234f9a2c2/unix/zsyscall_darwin_amd64.go:28:3: //go:linkname must refer to declared function or variable
go/pkg/mod/golang.org/x/sys@v0.0.0-20191023151326-f89234f9a2c2/unix/zsyscall_darwin_amd64.go:43:3: //go:linkname must refer to declared function or variable
go/pkg/mod/golang.org/x/sys@v0.0.0-20191023151326-f89234f9a2c2/unix/zsyscall_darwin_amd64.go:59:3: //go:linkname must refer to declared function or variable
go/pkg/mod/golang.org/x/sys@v0.0.0-20191023151326-f89234f9a2c2/unix/zsyscall_darwin_amd64.go:75:3: //go:linkname must refer to declared function or variable
go/pkg/mod/golang.org/x/sys@v0.0.0-20191023151326-f89234f9a2c2/unix/zsyscall_darwin_amd64.go:90:3: //go:linkname must refer to declared function or variable
go/pkg/mod/golang.org/x/sys@v0.0.0-20191023151326-f89234f9a2c2/unix/zsyscall_darwin_amd64.go:105:3: //go:linkname must refer to declared function or variable
go/pkg/mod/golang.org/x/sys@v0.0.0-20191023151326-f89234f9a2c2/unix/zsyscall_darwin_amd64.go:121:3: //go:linkname must refer to declared function or variable
go/pkg/mod/golang.org/x/sys@v0.0.0-20191023151326-f89234f9a2c2/unix/zsyscall_darwin_amd64.go:121:3: too many errors
# pkg-config --cflags  -- libpulse-simple libpulse-simple libpulse-simple libpulse-simple libpulse-simple
Package libpulse-simple was not found in the pkg-config search path.
Perhaps you should add the directory containing `libpulse-simple.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libpulse-simple' found
Package libpulse-simple was not found in the pkg-config search path.
Perhaps you should add the directory containing `libpulse-simple.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libpulse-simple' found
Package libpulse-simple was not found in the pkg-config search path.
Perhaps you should add the directory containing `libpulse-simple.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libpulse-simple' found
Package libpulse-simple was not found in the pkg-config search path.
Perhaps you should add the directory containing `libpulse-simple.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libpulse-simple' found
Package libpulse-simple was not found in the pkg-config search path.
Perhaps you should add the directory containing `libpulse-simple.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libpulse-simple' found
pkg-config: exit status 1
# pkg-config --cflags  -- opus opus opus opusfile opus opusfile
Package opusfile was not found in the pkg-config search path.
Perhaps you should add the directory containing `opusfile.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opusfile' found
Package opusfile was not found in the pkg-config search path.
Perhaps you should add the directory containing `opusfile.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opusfile' found
pkg-config: exit status 1
gavv commented 2 years ago

Hi. Yes, it currently unconditionally uses pulseaudio for sound I/O, which is not what you want to use on macOS.

To make it working on macOS, one would need to add support for I/O using coreaudio or some cross-platform audio I/O wrapper like portaudio. PRs are welcome :)

gavv commented 2 years ago

See also #7.

prologic commented 2 years ago

Thanks! I've played around with some coreaudio libraries (for Go) and didn't have much luck there (yet)