MCPcopy
hub / github.com/mudler/LocalAI / getOrCreateDecoder

Method getOrCreateDecoder

backend/go/opus/opus.go:61–77  ·  view source on GitHub ↗

getOrCreateDecoder returns a cached decoder for the given session ID, creating one if it doesn't exist yet.

(sessionID string)

Source from the content-addressed store, hash-verified

59// getOrCreateDecoder returns a cached decoder for the given session ID,
60// creating one if it doesn't exist yet.
61func (o *Opus) getOrCreateDecoder(sessionID string) (*cachedDecoder, error) {
62 o.decodersMu.Lock()
63 defer o.decodersMu.Unlock()
64
65 if cd, ok := o.decoders[sessionID]; ok {
66 cd.lastUsed = time.Now()
67 return cd, nil
68 }
69
70 dec, err := NewDecoder(opusSampleRate, opusChannels)
71 if err != nil {
72 return nil, err
73 }
74 cd := &cachedDecoder{dec: dec, lastUsed: time.Now()}
75 o.decoders[sessionID] = cd
76 return cd, nil
77}
78
79func (o *Opus) AudioEncode(req *pb.AudioEncodeRequest) (*pb.AudioEncodeResult, error) {
80 enc, err := NewEncoder(opusSampleRate, opusChannels, ApplicationAudio)

Callers 1

AudioDecodeMethod · 0.95

Calls 3

NewDecoderFunction · 0.85
LockMethod · 0.65
UnlockMethod · 0.65

Tested by

no test coverage detected