MCPcopy
hub / github.com/livekit/livekit / NewWrappedReceiver

Function NewWrappedReceiver

pkg/rtc/wrappedreceiver.go:58–83  ·  view source on GitHub ↗
(params WrappedReceiverParams)

Source from the content-addressed store, hash-verified

56}
57
58func NewWrappedReceiver(params WrappedReceiverParams) *WrappedReceiver {
59 sfuReceivers := make([]sfu.TrackReceiver, 0, len(params.Receivers))
60 for _, r := range params.Receivers {
61 sfuReceivers = append(sfuReceivers, r)
62 }
63
64 codecs := params.UpstreamCodecs
65 if len(codecs) == 1 {
66 normalizedMimeType := mime.NormalizeMimeType(codecs[0].MimeType)
67 if normalizedMimeType == mime.MimeTypeRED {
68 // if upstream is opus/red, then add opus to match clients that don't support red
69 codecs = append(codecs, protoCodecs.OpusCodecParameters)
70 } else if !params.DisableRed && normalizedMimeType == mime.MimeTypeOpus {
71 // if upstream is opus only and red enabled, add red to match clients that support red
72 codecs = append(codecs, protoCodecs.RedCodecParameters)
73 // prefer red codec
74 codecs[0], codecs[1] = codecs[1], codecs[0]
75 }
76 }
77
78 return &WrappedReceiver{
79 params: params,
80 receivers: sfuReceivers,
81 codecs: codecs,
82 }
83}
84
85func (r *WrappedReceiver) TrackID() livekit.TrackID {
86 return r.params.TrackID

Callers 1

AddSubscriberMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected