Skip to content

Commit 21c5a71

Browse files
andreinSean-Der
authored andcommitted
NewAPI: register default codecs and interceptors
1 parent 2fcd8a1 commit 21c5a71

File tree

3 files changed

+28
-14
lines changed

3 files changed

+28
-14
lines changed

api.go

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,12 @@ type API struct {
2626

2727
// NewAPI Creates a new API object for keeping semi-global settings to WebRTC objects
2828
//
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.
3231
func NewAPI(options ...func(*API)) *API {
3332
a := &API{
34-
interceptor: &interceptor.NoOp{},
35-
settingEngine: &SettingEngine{},
36-
mediaEngine: &MediaEngine{},
37-
interceptorRegistry: &interceptor.Registry{},
33+
interceptor: &interceptor.NoOp{},
34+
settingEngine: &SettingEngine{},
3835
}
3936

4037
for _, o := range options {
@@ -45,6 +42,24 @@ func NewAPI(options ...func(*API)) *API {
4542
a.settingEngine.LoggerFactory = logging.NewDefaultLoggerFactory()
4643
}
4744

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+
4863
return a
4964
}
5065

track_local_static_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func Test_TrackLocalStatic_NoCodecIntersection(t *testing.T) {
3333
pc, err := NewPeerConnection(Configuration{})
3434
assert.NoError(t, err)
3535

36-
noCodecPC, err := NewAPI().NewPeerConnection(Configuration{})
36+
noCodecPC, err := NewAPI(WithMediaEngine(&MediaEngine{})).NewPeerConnection(Configuration{})
3737
assert.NoError(t, err)
3838

3939
_, err = pc.AddTrack(track)

vnet_test.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"testing"
1111
"time"
1212

13+
"github.com/pion/interceptor"
1314
"github.com/pion/logging"
1415
"github.com/pion/transport/v3/vnet"
1516
"github.com/stretchr/testify/assert"
@@ -52,14 +53,12 @@ func createVNetPair(t *testing.T) (*PeerConnection, *PeerConnection, *vnet.Route
5253
// Start the virtual network by calling Start() on the root router
5354
assert.NoError(t, wan.Start())
5455

55-
offerMediaEngine := &MediaEngine{}
56-
assert.NoError(t, offerMediaEngine.RegisterDefaultCodecs())
57-
offerPeerConnection, err := NewAPI(WithSettingEngine(offerSettingEngine), WithMediaEngine(offerMediaEngine)).NewPeerConnection(Configuration{})
56+
offerInterceptorRegistry := &interceptor.Registry{}
57+
offerPeerConnection, err := NewAPI(WithSettingEngine(offerSettingEngine), WithInterceptorRegistry(offerInterceptorRegistry)).NewPeerConnection(Configuration{})
5858
assert.NoError(t, err)
5959

60-
answerMediaEngine := &MediaEngine{}
61-
assert.NoError(t, answerMediaEngine.RegisterDefaultCodecs())
62-
answerPeerConnection, err := NewAPI(WithSettingEngine(answerSettingEngine), WithMediaEngine(answerMediaEngine)).NewPeerConnection(Configuration{})
60+
answerInterceptorRegistry := &interceptor.Registry{}
61+
answerPeerConnection, err := NewAPI(WithSettingEngine(answerSettingEngine), WithInterceptorRegistry(answerInterceptorRegistry)).NewPeerConnection(Configuration{})
6362
assert.NoError(t, err)
6463

6564
return offerPeerConnection, answerPeerConnection, wan

0 commit comments

Comments
 (0)