Add instant start for WebRTC consumer

This commit is contained in:
Alex X
2024-05-14 17:34:47 +03:00
parent 32e0ee4a10
commit a51156cf18
3 changed files with 41 additions and 15 deletions
+4
View File
@@ -120,6 +120,10 @@ func NewConn(pc *webrtc.PeerConnection) *Conn {
c.Fire(state)
switch state {
case webrtc.PeerConnectionStateConnected:
for _, sender := range c.senders {
sender.Start()
}
case webrtc.PeerConnectionStateDisconnected, webrtc.PeerConnectionStateFailed, webrtc.PeerConnectionStateClosed:
// disconnect event comes earlier, than failed
// but it comes only for success connections
+2 -2
View File
@@ -20,7 +20,7 @@ func (c *Conn) AddTrack(media *core.Media, codec *core.Codec, track *core.Receiv
for _, sender := range c.senders {
if sender.Codec == codec {
sender.HandleRTP(track)
sender.Bind(track)
return nil
}
}
@@ -77,7 +77,7 @@ func (c *Conn) AddTrack(media *core.Media, codec *core.Codec, track *core.Receiv
sender.Handler = pcm.RepackG711(false, sender.Handler)
}
sender.HandleRTP(track)
sender.Bind(track)
c.senders = append(c.senders, sender)
return nil