-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathencoder_application.go
More file actions
32 lines (29 loc) · 1011 Bytes
/
encoder_application.go
File metadata and controls
32 lines (29 loc) · 1011 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package gopus
// SetApplication updates the encoder application hint.
//
// Valid values are ApplicationVoIP, ApplicationAudio, and ApplicationLowDelay.
func (e *Encoder) SetApplication(application Application) error {
if err := validateMutableApplication(e.application, e.encodedOnce, application); err != nil {
return err
}
return e.applyApplication(application)
}
// Application returns the current encoder application hint.
func (e *Encoder) Application() Application {
return e.application
}
// applyApplication configures the encoder based on the application hint.
func (e *Encoder) applyApplication(app Application) error {
settings, err := settingsForApplication(app)
if err != nil {
return err
}
e.application = app
e.enc.SetLowDelay(settings.lowDelay)
e.enc.SetVoIPApplication(settings.voip)
e.enc.SetRestrictedSilkApplication(app == ApplicationRestrictedSilk)
e.enc.SetMode(settings.mode)
e.enc.SetBandwidth(settings.bandwidth)
e.enc.SetSignalType(settings.signal)
return nil
}