Update stale Go dependencies

This commit is contained in:
Storm Dragon
2026-05-14 12:21:15 -04:00
parent 2bd43989a7
commit 81a928e122
36 changed files with 3064 additions and 4291 deletions
+54 -47
View File
@@ -1,21 +1,21 @@
package opus
import (
"git.stormux.org/storm/barnard/gumble/gumble"
"git.stormux.org/storm/barnard/gumble/go-opus"
)
"github.com/hraban/opus"
"git.stormux.org/storm/barnard/gumble/gumble"
)
var Codec gumble.AudioCodec
const (
ID = 4
VoiceChannels = 1 // Force mono for voice transmission
ID = 4
VoiceChannels = 1 // Force mono for voice transmission
)
func init() {
Codec = &generator{}
gumble.RegisterAudioCodec(4, Codec)
Codec = &generator{}
gumble.RegisterAudioCodec(4, Codec)
}
// generator
@@ -23,81 +23,88 @@ type generator struct {
}
func (*generator) ID() int {
return ID
return ID
}
func (*generator) NewEncoder() gumble.AudioEncoder {
// Force mono for voice transmission
e, _ := opus.NewEncoder(gumble.AudioSampleRate, VoiceChannels, opus.AppVoIP)
e.SetBitrateToMax()
return &Encoder{
e,
}
// Force mono for voice transmission
e, _ := opus.NewEncoder(gumble.AudioSampleRate, VoiceChannels, opus.AppVoIP)
_ = e.SetBitrateToMax()
return &Encoder{
e,
}
}
// NewStereoEncoder creates a stereo encoder for file playback
func NewStereoEncoder() gumble.AudioEncoder {
// Create stereo encoder for file playback
e, _ := opus.NewEncoder(gumble.AudioSampleRate, gumble.AudioChannels, opus.AppAudio)
e.SetBitrateToMax()
return &Encoder{
e,
}
// Create stereo encoder for file playback
e, _ := opus.NewEncoder(gumble.AudioSampleRate, gumble.AudioChannels, opus.AppAudio)
_ = e.SetBitrateToMax()
return &Encoder{
e,
}
}
func (*generator) NewDecoder() gumble.AudioDecoder {
// Create decoder with stereo support
d, _ := opus.NewDecoder(gumble.AudioSampleRate, gumble.AudioChannels)
return &Decoder{
d,
}
// Create decoder with stereo support
d, _ := opus.NewDecoder(gumble.AudioSampleRate, gumble.AudioChannels)
return &Decoder{
Decoder: d,
sampleRate: gumble.AudioSampleRate,
channels: gumble.AudioChannels,
}
}
// encoder
type Encoder struct {
*opus.Encoder
*opus.Encoder
}
func (*Encoder) ID() int {
return ID
return ID
}
func (e *Encoder) Encode(pcm []int16, _, maxDataBytes int) ([]byte, error) {
buf := make([]byte, maxDataBytes)
n, err := e.Encoder.Encode(pcm, buf)
if err != nil {
return []byte{}, err
}
return buf[:n], nil
buf := make([]byte, maxDataBytes)
n, err := e.Encoder.Encode(pcm, buf)
if err != nil {
return []byte{}, err
}
return buf[:n], nil
}
func (e *Encoder) Reset() {
e.Encoder.Reset()
_ = e.Encoder.Reset()
}
// decoder
type Decoder struct {
*opus.Decoder
*opus.Decoder
sampleRate int
channels int
}
func (*Decoder) ID() int {
return ID
return ID
}
func (d *Decoder) Decode(data []byte, frameSize int) ([]int16, error) {
// Allocate buffer for stereo - frameSize is per channel
pcm := make([]int16, frameSize * gumble.AudioChannels)
// Decode the data
n, err := d.Decoder.Decode(data, pcm)
if err != nil {
return []int16{}, err
}
// Allocate buffer for stereo - frameSize is per channel
pcm := make([]int16, frameSize*gumble.AudioChannels)
// Return the exact number of samples decoded
return pcm[:n * gumble.AudioChannels], nil
// Decode the data
n, err := d.Decoder.Decode(data, pcm)
if err != nil {
return []int16{}, err
}
// Return the exact number of samples decoded
return pcm[:n*gumble.AudioChannels], nil
}
func (d *Decoder) Reset() {
d.Decoder.Reset()
decoder, err := opus.NewDecoder(d.sampleRate, d.channels)
if err == nil {
d.Decoder = decoder
}
}