@@ -26,15 +26,12 @@ type API struct {
26
26
27
27
// NewAPI Creates a new API object for keeping semi-global settings to WebRTC objects
28
28
//
29
- // WARNING: No Codecs or Interceptors are enabled by default. Unless configured properly a
30
- // PeerConnection will not be able to transmit media. For an example of how to do that,
31
- // see the body of the webrtc.NewPeerConnection() function.
29
+ // It uses the default Codecs and Interceptors unless you customize them
30
+ // using WithMediaEngine and WithInterceptorRegistry respectively.
32
31
func NewAPI (options ... func (* API )) * API {
33
32
a := & API {
34
- interceptor : & interceptor.NoOp {},
35
- settingEngine : & SettingEngine {},
36
- mediaEngine : & MediaEngine {},
37
- interceptorRegistry : & interceptor.Registry {},
33
+ interceptor : & interceptor.NoOp {},
34
+ settingEngine : & SettingEngine {},
38
35
}
39
36
40
37
for _ , o := range options {
@@ -45,6 +42,24 @@ func NewAPI(options ...func(*API)) *API {
45
42
a .settingEngine .LoggerFactory = logging .NewDefaultLoggerFactory ()
46
43
}
47
44
45
+ logger := a .settingEngine .LoggerFactory .NewLogger ("api" )
46
+
47
+ if a .mediaEngine == nil {
48
+ a .mediaEngine = & MediaEngine {}
49
+ err := a .mediaEngine .RegisterDefaultCodecs ()
50
+ if err != nil {
51
+ logger .Errorf ("Failed to register default codecs %s" , err )
52
+ }
53
+ }
54
+
55
+ if a .interceptorRegistry == nil {
56
+ a .interceptorRegistry = & interceptor.Registry {}
57
+ err := RegisterDefaultInterceptors (a .mediaEngine , a .interceptorRegistry )
58
+ if err != nil {
59
+ logger .Errorf ("Failed to register default interceptors %s" , err )
60
+ }
61
+ }
62
+
48
63
return a
49
64
}
50
65
0 commit comments