layeh / gumble

gumble is a Mumble client implementation in Go (golang)
https://pkg.go.dev/mod/layeh.com/gumble
Mozilla Public License 2.0
172 stars 55 forks source link

Add client config flag to explicitly signal Opus support #61

Open s3lph opened 2 years ago

s3lph commented 2 years ago

Add client config flag to explicitly signal Opus support even when the Opus audio codec is not loaded.

This is useful if a client based on gumble doesn't actually process audio at all. By signalling Opus support anyway, this doesn't force everyone back to CELT if a gumble client is the only client not claiming Opus support. We can't be sure that the server admin has actually set opusthreshold = 0, so this is a pure-client way to prevent a CELT fallback.

ghost commented 2 years ago

how about a dummy opus codec that registers itself but doesn't process the audio?

s3lph commented 2 years ago

That is actually what I proposed initially as a solution for matterbridge (the project we want this for, see https://github.com/42wim/matterbridge/issues/1750 for the discussion), but @42wim (matterbridge maintainer) and I agree that we find the dummy codec solution to be a rather ugly workaround for something that's a simple boolean flag. We do have a working dummy codec implementation (https://github.com/42wim/matterbridge/pull/1764), but would like to avoid using it.