MCPcopy
hub / github.com/livekit/livekit / createTransport

Method createTransport

test/client/client.go:284–469  ·  view source on GitHub ↗
(rtcconf webrtc.Configuration)

Source from the content-addressed store, hash-verified

282}
283
284func (c *RTCClient) createTransport(rtcconf webrtc.Configuration) error {
285 var err error
286
287 conf := rtc.WebRTCConfig{
288 WebRTCConfig: rtcconfig.WebRTCConfig{
289 Configuration: rtcconf,
290 },
291 }
292 conf.SettingEngine.SetLite(false)
293 conf.SettingEngine.SetAnsweringDTLSRole(webrtc.DTLSRoleClient)
294 ff := buffer.NewFactoryOfBufferFactory(500, 200)
295 conf.SetBufferFactory(ff.CreateBufferFactory())
296
297 //
298 // The signal targets are from point of view of server.
299 // From client side, they are flipped,
300 // i. e. the publisher transport on client side has SUBSCRIBER signal target (i. e. publisher is offerer).
301 // Same applies for subscriber transport also
302 //
303 publisherHandler := &transportfakes.FakeHandler{}
304 c.publisher, err = rtc.NewPCTransport(rtc.TransportParams{
305 Config: &conf,
306 DirectionConfig: conf.Subscriber,
307 EnabledPublishCodecs: c.enabledCodecs,
308 EnabledSubscribeCodecs: c.enabledCodecs,
309 IsOfferer: true,
310 IsSendSide: true,
311 Handler: publisherHandler,
312 DatachannelMaxReceiverBufferSize: 1500,
313 DatachannelSlowThreshold: 1024 * 1024 * 1024,
314 FireOnTrackBySdp: true,
315 EnableDataTracks: true,
316 })
317 if err != nil {
318 return err
319 }
320
321 publisherHandler.OnICECandidateCalls(func(ic *webrtc.ICECandidate, t livekit.SignalTarget) error {
322 return c.SendIceCandidate(ic, livekit.SignalTarget_PUBLISHER)
323 })
324 publisherHandler.OnTrackCalls(func(track *webrtc.TrackRemote, rtpReceiver *webrtc.RTPReceiver) {
325 go c.processRemoteTrack(track)
326 })
327 publisherHandler.OnDataMessageCalls(c.handleDataMessage)
328 publisherHandler.OnDataMessageUnlabeledCalls(c.handleDataMessageUnlabeled)
329 publisherHandler.OnDataTrackMessageCalls(c.handleDataTrackMessage)
330 publisherHandler.OnInitialConnectedCalls(func() {
331 logger.Debugw("publisher initial connected", "participant", c.localParticipant.Identity)
332
333 c.lock.Lock()
334 defer c.lock.Unlock()
335 for _, tw := range c.pendingTrackWriters {
336 if err := tw.Start(); err != nil {
337 logger.Errorw("track writer error", err)
338 }
339 }
340 c.pendingTrackWriters = nil
341

Callers 1

handleSignalResponseMethod · 0.95

Calls 15

SetBufferFactoryMethod · 0.95
CreateBufferFactoryMethod · 0.95
OnICECandidateCallsMethod · 0.95
SendIceCandidateMethod · 0.95
OnTrackCallsMethod · 0.95
processRemoteTrackMethod · 0.95
OnDataMessageCallsMethod · 0.95
OnOfferCallsMethod · 0.95

Tested by

no test coverage detected