Updated protocol from protocol/proto -> protocol/livekit (#242)

* Updated protocol from protocol/proto -> protocol/livekit

* separate MediaTrack from PublishedTrack
This commit is contained in:
David Zhao authored and GitHub committed 2021-12-08 13:58:38 -08:00
1 parent 7948fabce0
commit 2d93ccd668
67 files changed
+759 -114

No files matched your search

+1 -1
View File
@@ -15,7 +15,7 @@ require (
github.com/gorilla/websocket v1.4.2
github.com/hashicorp/golang-lru v0.5.4
github.com/jxskiss/base62 v0.0.0-20191017122030-4f11678b909b
github.com/livekit/protocol v0.10.5
github.com/livekit/protocol v0.10.6-0.20211208200546-ef32549a05d8
github.com/magefile/mage v1.11.0
github.com/maxbrunsfeld/counterfeiter/v6 v6.3.0
github.com/mitchellh/go-homedir v1.1.0
+2 -2
View File
@@ -132,8 +132,8 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/lithammer/shortuuid/v3 v3.0.6 h1:pr15YQyvhiSX/qPxncFtqk+v4xLEpOZObbsY/mKrcvA=
github.com/lithammer/shortuuid/v3 v3.0.6/go.mod h1:vMk8ke37EmiewwolSO1NLW8vP4ZaKlRuDIi8tWWmAts=
github.com/livekit/protocol v0.10.5 h1:cFGhMH9dPckX7zBfmZNtHq2B+gocYs7PV9BkQU1Wi1I=
github.com/livekit/protocol v0.10.5/go.mod h1:YoHW9YbWbPnuVsgwBB4hAINKT+V68jmfh9zXBSSn6Wg=
github.com/livekit/protocol v0.10.6-0.20211208200546-ef32549a05d8 h1:nIeeGnAkPDG6ESFpYNv7BVokmQ7HQvl9OK9Jpl0dKII=
github.com/livekit/protocol v0.10.6-0.20211208200546-ef32549a05d8/go.mod h1:YoHW9YbWbPnuVsgwBB4hAINKT+V68jmfh9zXBSSn6Wg=
github.com/magefile/mage v1.11.0 h1:C/55Ywp9BpgVVclD3lRnSYCwXTYxmSppIgLeDYlNuls=
github.com/magefile/mage v1.11.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"github.com/go-redis/redis/v8"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"google.golang.org/protobuf/proto"
"github.com/livekit/livekit-server/pkg/config"
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"time"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"google.golang.org/protobuf/proto"
)
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"sync"
"testing"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/livekit-server/pkg/routing"
)
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"time"
"github.com/jxskiss/base62"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"github.com/livekit/livekit-server/pkg/config"
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"context"
"github.com/go-redis/redis/v8"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"google.golang.org/protobuf/proto"
)
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"github.com/go-redis/redis/v8"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"github.com/pkg/errors"
"google.golang.org/protobuf/proto"
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"sync"
"github.com/livekit/livekit-server/pkg/routing"
livekit "github.com/livekit/protocol/proto"
"github.com/livekit/protocol/livekit"
)
type FakeRouter struct {
+1 -1
View File
@@ -3,7 +3,7 @@ package selector
import (
"errors"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/livekit-server/pkg/config"
)
+1 -1
View File
@@ -1,7 +1,7 @@
package selector
import (
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/thoas/go-funk"
)
+1 -1
View File
@@ -3,7 +3,7 @@ package selector
import (
"math"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/thoas/go-funk"
"github.com/livekit/livekit-server/pkg/config"
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"testing"
"time"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"github.com/stretchr/testify/require"
+1 -1
View File
@@ -1,7 +1,7 @@
package selector
import (
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/thoas/go-funk"
)
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"testing"
"time"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/stretchr/testify/require"
"github.com/livekit/livekit-server/pkg/routing/selector"
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"time"
"github.com/livekit/livekit-server/pkg/config"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/thoas/go-funk"
)
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"time"
"github.com/livekit/livekit-server/pkg/routing/selector"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/stretchr/testify/require"
)
+1 -1
View File
@@ -1,7 +1,7 @@
package rtc_test
import (
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"github.com/livekit/livekit-server/pkg/rtc/types"
+1 -1
View File
@@ -3,7 +3,7 @@ package rtc
import (
"strings"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/pion/sdp/v3"
"github.com/pion/webrtc/v3"
)
+1 -1
View File
@@ -3,7 +3,7 @@ package rtc
import (
"testing"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/pion/webrtc/v3"
"github.com/stretchr/testify/require"
)
+1 -4
View File
@@ -8,8 +8,8 @@ import (
"sync/atomic"
"time"
"github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
"github.com/livekit/protocol/utils"
"github.com/pion/rtcp"
"github.com/pion/webrtc/v3"
@@ -100,9 +100,6 @@ func NewMediaTrack(track *webrtc.TrackRemote, params MediaTrackParams) *MediaTra
return t
}
func (t *MediaTrack) Start() {
}
func (t *MediaTrack) ID() string {
return t.params.TrackInfo.Sid
}
+1 -1
View File
@@ -3,7 +3,7 @@ package rtc
import (
"testing"
livekit "github.com/livekit/protocol/proto"
"github.com/livekit/protocol/livekit"
"github.com/pion/webrtc/v3"
"github.com/stretchr/testify/require"
)
+1 -3
View File
@@ -9,8 +9,8 @@ import (
"time"
lru "github.com/hashicorp/golang-lru"
"github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
"github.com/livekit/protocol/utils"
"github.com/pion/rtcp"
"github.com/pion/webrtc/v3"
@@ -1075,8 +1075,6 @@ func (p *ParticipantImpl) handleTrackPublished(track types.PublishedTrack) {
}
p.lock.Unlock()
track.Start()
track.AddOnClose(func() {
// cleanup
p.lock.Lock()
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"testing"
"time"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/pion/webrtc/v3"
"github.com/stretchr/testify/require"
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"github.com/go-logr/logr"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"google.golang.org/protobuf/proto"
"github.com/livekit/livekit-server/pkg/config"
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"testing"
"time"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/stretchr/testify/require"
"github.com/livekit/livekit-server/pkg/config"
+4 -4
View File
@@ -7,7 +7,7 @@ import (
"github.com/bep/debounce"
"github.com/livekit/livekit-server/pkg/rtc/types"
"github.com/livekit/livekit-server/pkg/sfu"
livekit "github.com/livekit/protocol/proto"
"github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"github.com/pion/webrtc/v3"
)
@@ -17,7 +17,7 @@ const (
)
type SubscribedTrack struct {
publishedTrack types.PublishedTrack
publishedTrack types.MediaTrack
dt *sfu.DownTrack
publisherIdentity string
subMuted utils.AtomicFlag
@@ -27,9 +27,9 @@ type SubscribedTrack struct {
debouncer func(func())
}
func NewSubscribedTrack(publishedTrack types.PublishedTrack, publisherIdentity string, dt *sfu.DownTrack) *SubscribedTrack {
func NewSubscribedTrack(mediaTrack types.MediaTrack, publisherIdentity string, dt *sfu.DownTrack) *SubscribedTrack {
return &SubscribedTrack{
publishedTrack: publishedTrack,
publishedTrack: mediaTrack,
publisherIdentity: publisherIdentity,
dt: dt,
debouncer: debounce.New(subscriptionDebounceInterval),
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"github.com/bep/debounce"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/pion/interceptor"
"github.com/pion/webrtc/v3"
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"testing"
"time"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/pion/webrtc/v3"
"github.com/stretchr/testify/require"
+16 -10
View File
@@ -3,7 +3,7 @@ package types
import (
"time"
livekit "github.com/livekit/protocol/proto"
"github.com/livekit/protocol/livekit"
"github.com/pion/rtcp"
"github.com/pion/webrtc/v3"
@@ -61,7 +61,6 @@ type Participant interface {
GetSubscribedParticipants() []string
// permissions
CanPublish() bool
CanSubscribe() bool
CanPublishData() bool
@@ -91,14 +90,10 @@ type Participant interface {
DebugInfo() map[string]interface{}
}
// PublishedTrack is the main interface representing a track published to the room
// it's responsible for managing subscribers and forwarding data from the input track to all subscribers
//counterfeiter:generate . PublishedTrack
type PublishedTrack interface {
Start()
// MediaTrack represents a media track
//counterfeiter:generate . MediaTrack
type MediaTrack interface {
ID() string
SignalCid() string
SdpCid() string
Kind() livekit.TrackType
Name() string
IsMuted() bool
@@ -112,10 +107,21 @@ type PublishedTrack interface {
RemoveAllSubscribers()
// returns quality information that's appropriate for width & height
GetQualityForDimension(width, height uint32) livekit.VideoQuality
}
// PublishedTrack is the main interface representing a track published to the room
// it's responsible for managing subscribers and forwarding data from the input track to all subscribers
//counterfeiter:generate . PublishedTrack
type PublishedTrack interface {
MediaTrack
SignalCid() string
SdpCid() string
ToProto() *livekit.TrackInfo
// returns number of uptracks that are publishing, registered
NumUpTracks() (uint32, uint32)
PublishLossPercentage() uint32
ToProto() *livekit.TrackInfo
Receiver() sfu.TrackReceiver
// callbacks
@@ -0,0 +1,674 @@
// Code generated by counterfeiter. DO NOT EDIT.
package typesfakes
import (
"sync"
"github.com/livekit/livekit-server/pkg/rtc/types"
"github.com/livekit/protocol/livekit"
)
type FakeMediaTrack struct {
AddSubscriberStub func(types.Participant) error
addSubscriberMutex sync.RWMutex
addSubscriberArgsForCall []struct {
arg1 types.Participant
}
addSubscriberReturns struct {
result1 error
}
addSubscriberReturnsOnCall map[int]struct {
result1 error
}
GetQualityForDimensionStub func(uint32, uint32) livekit.VideoQuality
getQualityForDimensionMutex sync.RWMutex
getQualityForDimensionArgsForCall []struct {
arg1 uint32
arg2 uint32
}
getQualityForDimensionReturns struct {
result1 livekit.VideoQuality
}
getQualityForDimensionReturnsOnCall map[int]struct {
result1 livekit.VideoQuality
}
IDStub func() string
iDMutex sync.RWMutex
iDArgsForCall []struct {
}
iDReturns struct {
result1 string
}
iDReturnsOnCall map[int]struct {
result1 string
}
IsMutedStub func() bool
isMutedMutex sync.RWMutex
isMutedArgsForCall []struct {
}
isMutedReturns struct {
result1 bool
}
isMutedReturnsOnCall map[int]struct {
result1 bool
}
IsSubscriberStub func(string) bool
isSubscriberMutex sync.RWMutex
isSubscriberArgsForCall []struct {
arg1 string
}
isSubscriberReturns struct {
result1 bool
}
isSubscriberReturnsOnCall map[int]struct {
result1 bool
}
KindStub func() livekit.TrackType
kindMutex sync.RWMutex
kindArgsForCall []struct {
}
kindReturns struct {
result1 livekit.TrackType
}
kindReturnsOnCall map[int]struct {
result1 livekit.TrackType
}
NameStub func() string
nameMutex sync.RWMutex
nameArgsForCall []struct {
}
nameReturns struct {
result1 string
}
nameReturnsOnCall map[int]struct {
result1 string
}
RemoveAllSubscribersStub func()
removeAllSubscribersMutex sync.RWMutex
removeAllSubscribersArgsForCall []struct {
}
RemoveSubscriberStub func(string)
removeSubscriberMutex sync.RWMutex
removeSubscriberArgsForCall []struct {
arg1 string
}
SetMutedStub func(bool)
setMutedMutex sync.RWMutex
setMutedArgsForCall []struct {
arg1 bool
}
UpdateVideoLayersStub func([]*livekit.VideoLayer)
updateVideoLayersMutex sync.RWMutex
updateVideoLayersArgsForCall []struct {
arg1 []*livekit.VideoLayer
}
invocations map[string][][]interface{}
invocationsMutex sync.RWMutex
}
func (fake *FakeMediaTrack) AddSubscriber(arg1 types.Participant) error {
fake.addSubscriberMutex.Lock()
ret, specificReturn := fake.addSubscriberReturnsOnCall[len(fake.addSubscriberArgsForCall)]
fake.addSubscriberArgsForCall = append(fake.addSubscriberArgsForCall, struct {
arg1 types.Participant
}{arg1})
stub := fake.AddSubscriberStub
fakeReturns := fake.addSubscriberReturns
fake.recordInvocation("AddSubscriber", []interface{}{arg1})
fake.addSubscriberMutex.Unlock()
if stub != nil {
return stub(arg1)
}
if specificReturn {
return ret.result1
}
return fakeReturns.result1
}
func (fake *FakeMediaTrack) AddSubscriberCallCount() int {
fake.addSubscriberMutex.RLock()
defer fake.addSubscriberMutex.RUnlock()
return len(fake.addSubscriberArgsForCall)
}
func (fake *FakeMediaTrack) AddSubscriberCalls(stub func(types.Participant) error) {
fake.addSubscriberMutex.Lock()
defer fake.addSubscriberMutex.Unlock()
fake.AddSubscriberStub = stub
}
func (fake *FakeMediaTrack) AddSubscriberArgsForCall(i int) types.Participant {
fake.addSubscriberMutex.RLock()
defer fake.addSubscriberMutex.RUnlock()
argsForCall := fake.addSubscriberArgsForCall[i]
return argsForCall.arg1
}
func (fake *FakeMediaTrack) AddSubscriberReturns(result1 error) {
fake.addSubscriberMutex.Lock()
defer fake.addSubscriberMutex.Unlock()
fake.AddSubscriberStub = nil
fake.addSubscriberReturns = struct {
result1 error
}{result1}
}
func (fake *FakeMediaTrack) AddSubscriberReturnsOnCall(i int, result1 error) {
fake.addSubscriberMutex.Lock()
defer fake.addSubscriberMutex.Unlock()
fake.AddSubscriberStub = nil
if fake.addSubscriberReturnsOnCall == nil {
fake.addSubscriberReturnsOnCall = make(map[int]struct {
result1 error
})
}
fake.addSubscriberReturnsOnCall[i] = struct {
result1 error
}{result1}
}
func (fake *FakeMediaTrack) GetQualityForDimension(arg1 uint32, arg2 uint32) livekit.VideoQuality {
fake.getQualityForDimensionMutex.Lock()
ret, specificReturn := fake.getQualityForDimensionReturnsOnCall[len(fake.getQualityForDimensionArgsForCall)]
fake.getQualityForDimensionArgsForCall = append(fake.getQualityForDimensionArgsForCall, struct {
arg1 uint32
arg2 uint32
}{arg1, arg2})
stub := fake.GetQualityForDimensionStub
fakeReturns := fake.getQualityForDimensionReturns
fake.recordInvocation("GetQualityForDimension", []interface{}{arg1, arg2})
fake.getQualityForDimensionMutex.Unlock()
if stub != nil {
return stub(arg1, arg2)
}
if specificReturn {
return ret.result1
}
return fakeReturns.result1
}
func (fake *FakeMediaTrack) GetQualityForDimensionCallCount() int {
fake.getQualityForDimensionMutex.RLock()
defer fake.getQualityForDimensionMutex.RUnlock()
return len(fake.getQualityForDimensionArgsForCall)
}
func (fake *FakeMediaTrack) GetQualityForDimensionCalls(stub func(uint32, uint32) livekit.VideoQuality) {
fake.getQualityForDimensionMutex.Lock()
defer fake.getQualityForDimensionMutex.Unlock()
fake.GetQualityForDimensionStub = stub
}
func (fake *FakeMediaTrack) GetQualityForDimensionArgsForCall(i int) (uint32, uint32) {
fake.getQualityForDimensionMutex.RLock()
defer fake.getQualityForDimensionMutex.RUnlock()
argsForCall := fake.getQualityForDimensionArgsForCall[i]
return argsForCall.arg1, argsForCall.arg2
}
func (fake *FakeMediaTrack) GetQualityForDimensionReturns(result1 livekit.VideoQuality) {
fake.getQualityForDimensionMutex.Lock()
defer fake.getQualityForDimensionMutex.Unlock()
fake.GetQualityForDimensionStub = nil
fake.getQualityForDimensionReturns = struct {
result1 livekit.VideoQuality
}{result1}
}
func (fake *FakeMediaTrack) GetQualityForDimensionReturnsOnCall(i int, result1 livekit.VideoQuality) {
fake.getQualityForDimensionMutex.Lock()
defer fake.getQualityForDimensionMutex.Unlock()
fake.GetQualityForDimensionStub = nil
if fake.getQualityForDimensionReturnsOnCall == nil {
fake.getQualityForDimensionReturnsOnCall = make(map[int]struct {
result1 livekit.VideoQuality
})
}
fake.getQualityForDimensionReturnsOnCall[i] = struct {
result1 livekit.VideoQuality
}{result1}
}
func (fake *FakeMediaTrack) ID() string {
fake.iDMutex.Lock()
ret, specificReturn := fake.iDReturnsOnCall[len(fake.iDArgsForCall)]
fake.iDArgsForCall = append(fake.iDArgsForCall, struct {
}{})
stub := fake.IDStub
fakeReturns := fake.iDReturns
fake.recordInvocation("ID", []interface{}{})
fake.iDMutex.Unlock()
if stub != nil {
return stub()
}
if specificReturn {
return ret.result1
}
return fakeReturns.result1
}
func (fake *FakeMediaTrack) IDCallCount() int {
fake.iDMutex.RLock()
defer fake.iDMutex.RUnlock()
return len(fake.iDArgsForCall)
}
func (fake *FakeMediaTrack) IDCalls(stub func() string) {
fake.iDMutex.Lock()
defer fake.iDMutex.Unlock()
fake.IDStub = stub
}
func (fake *FakeMediaTrack) IDReturns(result1 string) {
fake.iDMutex.Lock()
defer fake.iDMutex.Unlock()
fake.IDStub = nil
fake.iDReturns = struct {
result1 string
}{result1}
}
func (fake *FakeMediaTrack) IDReturnsOnCall(i int, result1 string) {
fake.iDMutex.Lock()
defer fake.iDMutex.Unlock()
fake.IDStub = nil
if fake.iDReturnsOnCall == nil {
fake.iDReturnsOnCall = make(map[int]struct {
result1 string
})
}
fake.iDReturnsOnCall[i] = struct {
result1 string
}{result1}
}
func (fake *FakeMediaTrack) IsMuted() bool {
fake.isMutedMutex.Lock()
ret, specificReturn := fake.isMutedReturnsOnCall[len(fake.isMutedArgsForCall)]
fake.isMutedArgsForCall = append(fake.isMutedArgsForCall, struct {
}{})
stub := fake.IsMutedStub
fakeReturns := fake.isMutedReturns
fake.recordInvocation("IsMuted", []interface{}{})
fake.isMutedMutex.Unlock()
if stub != nil {
return stub()
}
if specificReturn {
return ret.result1
}
return fakeReturns.result1
}
func (fake *FakeMediaTrack) IsMutedCallCount() int {
fake.isMutedMutex.RLock()
defer fake.isMutedMutex.RUnlock()
return len(fake.isMutedArgsForCall)
}
func (fake *FakeMediaTrack) IsMutedCalls(stub func() bool) {
fake.isMutedMutex.Lock()
defer fake.isMutedMutex.Unlock()
fake.IsMutedStub = stub
}
func (fake *FakeMediaTrack) IsMutedReturns(result1 bool) {
fake.isMutedMutex.Lock()
defer fake.isMutedMutex.Unlock()
fake.IsMutedStub = nil
fake.isMutedReturns = struct {
result1 bool
}{result1}
}
func (fake *FakeMediaTrack) IsMutedReturnsOnCall(i int, result1 bool) {
fake.isMutedMutex.Lock()
defer fake.isMutedMutex.Unlock()
fake.IsMutedStub = nil
if fake.isMutedReturnsOnCall == nil {
fake.isMutedReturnsOnCall = make(map[int]struct {
result1 bool
})
}
fake.isMutedReturnsOnCall[i] = struct {
result1 bool
}{result1}
}
func (fake *FakeMediaTrack) IsSubscriber(arg1 string) bool {
fake.isSubscriberMutex.Lock()
ret, specificReturn := fake.isSubscriberReturnsOnCall[len(fake.isSubscriberArgsForCall)]
fake.isSubscriberArgsForCall = append(fake.isSubscriberArgsForCall, struct {
arg1 string
}{arg1})
stub := fake.IsSubscriberStub
fakeReturns := fake.isSubscriberReturns
fake.recordInvocation("IsSubscriber", []interface{}{arg1})
fake.isSubscriberMutex.Unlock()
if stub != nil {
return stub(arg1)
}
if specificReturn {
return ret.result1
}
return fakeReturns.result1
}
func (fake *FakeMediaTrack) IsSubscriberCallCount() int {
fake.isSubscriberMutex.RLock()
defer fake.isSubscriberMutex.RUnlock()
return len(fake.isSubscriberArgsForCall)
}
func (fake *FakeMediaTrack) IsSubscriberCalls(stub func(string) bool) {
fake.isSubscriberMutex.Lock()
defer fake.isSubscriberMutex.Unlock()
fake.IsSubscriberStub = stub
}
func (fake *FakeMediaTrack) IsSubscriberArgsForCall(i int) string {
fake.isSubscriberMutex.RLock()
defer fake.isSubscriberMutex.RUnlock()
argsForCall := fake.isSubscriberArgsForCall[i]
return argsForCall.arg1
}
func (fake *FakeMediaTrack) IsSubscriberReturns(result1 bool) {
fake.isSubscriberMutex.Lock()
defer fake.isSubscriberMutex.Unlock()
fake.IsSubscriberStub = nil
fake.isSubscriberReturns = struct {
result1 bool
}{result1}
}
func (fake *FakeMediaTrack) IsSubscriberReturnsOnCall(i int, result1 bool) {
fake.isSubscriberMutex.Lock()
defer fake.isSubscriberMutex.Unlock()
fake.IsSubscriberStub = nil
if fake.isSubscriberReturnsOnCall == nil {
fake.isSubscriberReturnsOnCall = make(map[int]struct {
result1 bool
})
}
fake.isSubscriberReturnsOnCall[i] = struct {
result1 bool
}{result1}
}
func (fake *FakeMediaTrack) Kind() livekit.TrackType {
fake.kindMutex.Lock()
ret, specificReturn := fake.kindReturnsOnCall[len(fake.kindArgsForCall)]
fake.kindArgsForCall = append(fake.kindArgsForCall, struct {
}{})
stub := fake.KindStub
fakeReturns := fake.kindReturns
fake.recordInvocation("Kind", []interface{}{})
fake.kindMutex.Unlock()
if stub != nil {
return stub()
}
if specificReturn {
return ret.result1
}
return fakeReturns.result1
}
func (fake *FakeMediaTrack) KindCallCount() int {
fake.kindMutex.RLock()
defer fake.kindMutex.RUnlock()
return len(fake.kindArgsForCall)
}
func (fake *FakeMediaTrack) KindCalls(stub func() livekit.TrackType) {
fake.kindMutex.Lock()
defer fake.kindMutex.Unlock()
fake.KindStub = stub
}
func (fake *FakeMediaTrack) KindReturns(result1 livekit.TrackType) {
fake.kindMutex.Lock()
defer fake.kindMutex.Unlock()
fake.KindStub = nil
fake.kindReturns = struct {
result1 livekit.TrackType
}{result1}
}
func (fake *FakeMediaTrack) KindReturnsOnCall(i int, result1 livekit.TrackType) {
fake.kindMutex.Lock()
defer fake.kindMutex.Unlock()
fake.KindStub = nil
if fake.kindReturnsOnCall == nil {
fake.kindReturnsOnCall = make(map[int]struct {
result1 livekit.TrackType
})
}
fake.kindReturnsOnCall[i] = struct {
result1 livekit.TrackType
}{result1}
}
func (fake *FakeMediaTrack) Name() string {
fake.nameMutex.Lock()
ret, specificReturn := fake.nameReturnsOnCall[len(fake.nameArgsForCall)]
fake.nameArgsForCall = append(fake.nameArgsForCall, struct {
}{})
stub := fake.NameStub
fakeReturns := fake.nameReturns
fake.recordInvocation("Name", []interface{}{})
fake.nameMutex.Unlock()
if stub != nil {
return stub()
}
if specificReturn {
return ret.result1
}
return fakeReturns.result1
}
func (fake *FakeMediaTrack) NameCallCount() int {
fake.nameMutex.RLock()
defer fake.nameMutex.RUnlock()
return len(fake.nameArgsForCall)
}
func (fake *FakeMediaTrack) NameCalls(stub func() string) {
fake.nameMutex.Lock()
defer fake.nameMutex.Unlock()
fake.NameStub = stub
}
func (fake *FakeMediaTrack) NameReturns(result1 string) {
fake.nameMutex.Lock()
defer fake.nameMutex.Unlock()
fake.NameStub = nil
fake.nameReturns = struct {
result1 string
}{result1}
}
func (fake *FakeMediaTrack) NameReturnsOnCall(i int, result1 string) {
fake.nameMutex.Lock()
defer fake.nameMutex.Unlock()
fake.NameStub = nil
if fake.nameReturnsOnCall == nil {
fake.nameReturnsOnCall = make(map[int]struct {
result1 string
})
}
fake.nameReturnsOnCall[i] = struct {
result1 string
}{result1}
}
func (fake *FakeMediaTrack) RemoveAllSubscribers() {
fake.removeAllSubscribersMutex.Lock()
fake.removeAllSubscribersArgsForCall = append(fake.removeAllSubscribersArgsForCall, struct {
}{})
stub := fake.RemoveAllSubscribersStub
fake.recordInvocation("RemoveAllSubscribers", []interface{}{})
fake.removeAllSubscribersMutex.Unlock()
if stub != nil {
fake.RemoveAllSubscribersStub()
}
}
func (fake *FakeMediaTrack) RemoveAllSubscribersCallCount() int {
fake.removeAllSubscribersMutex.RLock()
defer fake.removeAllSubscribersMutex.RUnlock()
return len(fake.removeAllSubscribersArgsForCall)
}
func (fake *FakeMediaTrack) RemoveAllSubscribersCalls(stub func()) {
fake.removeAllSubscribersMutex.Lock()
defer fake.removeAllSubscribersMutex.Unlock()
fake.RemoveAllSubscribersStub = stub
}
func (fake *FakeMediaTrack) RemoveSubscriber(arg1 string) {
fake.removeSubscriberMutex.Lock()
fake.removeSubscriberArgsForCall = append(fake.removeSubscriberArgsForCall, struct {
arg1 string
}{arg1})
stub := fake.RemoveSubscriberStub
fake.recordInvocation("RemoveSubscriber", []interface{}{arg1})
fake.removeSubscriberMutex.Unlock()
if stub != nil {
fake.RemoveSubscriberStub(arg1)
}
}
func (fake *FakeMediaTrack) RemoveSubscriberCallCount() int {
fake.removeSubscriberMutex.RLock()
defer fake.removeSubscriberMutex.RUnlock()
return len(fake.removeSubscriberArgsForCall)
}
func (fake *FakeMediaTrack) RemoveSubscriberCalls(stub func(string)) {
fake.removeSubscriberMutex.Lock()
defer fake.removeSubscriberMutex.Unlock()
fake.RemoveSubscriberStub = stub
}
func (fake *FakeMediaTrack) RemoveSubscriberArgsForCall(i int) string {
fake.removeSubscriberMutex.RLock()
defer fake.removeSubscriberMutex.RUnlock()
argsForCall := fake.removeSubscriberArgsForCall[i]
return argsForCall.arg1
}
func (fake *FakeMediaTrack) SetMuted(arg1 bool) {
fake.setMutedMutex.Lock()
fake.setMutedArgsForCall = append(fake.setMutedArgsForCall, struct {
arg1 bool
}{arg1})
stub := fake.SetMutedStub
fake.recordInvocation("SetMuted", []interface{}{arg1})
fake.setMutedMutex.Unlock()
if stub != nil {
fake.SetMutedStub(arg1)
}
}
func (fake *FakeMediaTrack) SetMutedCallCount() int {
fake.setMutedMutex.RLock()
defer fake.setMutedMutex.RUnlock()
return len(fake.setMutedArgsForCall)
}
func (fake *FakeMediaTrack) SetMutedCalls(stub func(bool)) {
fake.setMutedMutex.Lock()
defer fake.setMutedMutex.Unlock()
fake.SetMutedStub = stub
}
func (fake *FakeMediaTrack) SetMutedArgsForCall(i int) bool {
fake.setMutedMutex.RLock()
defer fake.setMutedMutex.RUnlock()
argsForCall := fake.setMutedArgsForCall[i]
return argsForCall.arg1
}
func (fake *FakeMediaTrack) UpdateVideoLayers(arg1 []*livekit.VideoLayer) {
var arg1Copy []*livekit.VideoLayer
if arg1 != nil {
arg1Copy = make([]*livekit.VideoLayer, len(arg1))
copy(arg1Copy, arg1)
}
fake.updateVideoLayersMutex.Lock()
fake.updateVideoLayersArgsForCall = append(fake.updateVideoLayersArgsForCall, struct {
arg1 []*livekit.VideoLayer
}{arg1Copy})
stub := fake.UpdateVideoLayersStub
fake.recordInvocation("UpdateVideoLayers", []interface{}{arg1Copy})
fake.updateVideoLayersMutex.Unlock()
if stub != nil {
fake.UpdateVideoLayersStub(arg1)
}
}
func (fake *FakeMediaTrack) UpdateVideoLayersCallCount() int {
fake.updateVideoLayersMutex.RLock()
defer fake.updateVideoLayersMutex.RUnlock()
return len(fake.updateVideoLayersArgsForCall)
}
func (fake *FakeMediaTrack) UpdateVideoLayersCalls(stub func([]*livekit.VideoLayer)) {
fake.updateVideoLayersMutex.Lock()
defer fake.updateVideoLayersMutex.Unlock()
fake.UpdateVideoLayersStub = stub
}
func (fake *FakeMediaTrack) UpdateVideoLayersArgsForCall(i int) []*livekit.VideoLayer {
fake.updateVideoLayersMutex.RLock()
defer fake.updateVideoLayersMutex.RUnlock()
argsForCall := fake.updateVideoLayersArgsForCall[i]
return argsForCall.arg1
}
func (fake *FakeMediaTrack) Invocations() map[string][][]interface{} {
fake.invocationsMutex.RLock()
defer fake.invocationsMutex.RUnlock()
fake.addSubscriberMutex.RLock()
defer fake.addSubscriberMutex.RUnlock()
fake.getQualityForDimensionMutex.RLock()
defer fake.getQualityForDimensionMutex.RUnlock()
fake.iDMutex.RLock()
defer fake.iDMutex.RUnlock()
fake.isMutedMutex.RLock()
defer fake.isMutedMutex.RUnlock()
fake.isSubscriberMutex.RLock()
defer fake.isSubscriberMutex.RUnlock()
fake.kindMutex.RLock()
defer fake.kindMutex.RUnlock()
fake.nameMutex.RLock()
defer fake.nameMutex.RUnlock()
fake.removeAllSubscribersMutex.RLock()
defer fake.removeAllSubscribersMutex.RUnlock()
fake.removeSubscriberMutex.RLock()
defer fake.removeSubscriberMutex.RUnlock()
fake.setMutedMutex.RLock()
defer fake.setMutedMutex.RUnlock()
fake.updateVideoLayersMutex.RLock()
defer fake.updateVideoLayersMutex.RUnlock()
copiedInvocations := map[string][][]interface{}{}
for key, value := range fake.invocations {
copiedInvocations[key] = value
}
return copiedInvocations
}
func (fake *FakeMediaTrack) recordInvocation(key string, args []interface{}) {
fake.invocationsMutex.Lock()
defer fake.invocationsMutex.Unlock()
if fake.invocations == nil {
fake.invocations = map[string][][]interface{}{}
}
if fake.invocations[key] == nil {
fake.invocations[key] = [][]interface{}{}
}
fake.invocations[key] = append(fake.invocations[key], args)
}
var _ types.MediaTrack = new(FakeMediaTrack)
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"github.com/livekit/livekit-server/pkg/routing"
"github.com/livekit/livekit-server/pkg/rtc/types"
livekit "github.com/livekit/protocol/proto"
"github.com/livekit/protocol/livekit"
"github.com/pion/rtcp"
webrtc "github.com/pion/webrtc/v3"
)
@@ -6,7 +6,7 @@ import (
"github.com/livekit/livekit-server/pkg/rtc/types"
"github.com/livekit/livekit-server/pkg/sfu"
livekit "github.com/livekit/protocol/proto"
"github.com/livekit/protocol/livekit"
)
type FakePublishedTrack struct {
@@ -155,10 +155,6 @@ type FakePublishedTrack struct {
signalCidReturnsOnCall map[int]struct {
result1 string
}
StartStub func()
startMutex sync.RWMutex
startArgsForCall []struct {
}
ToProtoStub func() *livekit.TrackInfo
toProtoMutex sync.RWMutex
toProtoArgsForCall []struct {
@@ -962,30 +958,6 @@ func (fake *FakePublishedTrack) SignalCidReturnsOnCall(i int, result1 string) {
}{result1}
}
func (fake *FakePublishedTrack) Start() {
fake.startMutex.Lock()
fake.startArgsForCall = append(fake.startArgsForCall, struct {
}{})
stub := fake.StartStub
fake.recordInvocation("Start", []interface{}{})
fake.startMutex.Unlock()
if stub != nil {
fake.StartStub()
}
}
func (fake *FakePublishedTrack) StartCallCount() int {
fake.startMutex.RLock()
defer fake.startMutex.RUnlock()
return len(fake.startArgsForCall)
}
func (fake *FakePublishedTrack) StartCalls(stub func()) {
fake.startMutex.Lock()
defer fake.startMutex.Unlock()
fake.StartStub = stub
}
func (fake *FakePublishedTrack) ToProto() *livekit.TrackInfo {
fake.toProtoMutex.Lock()
ret, specificReturn := fake.toProtoReturnsOnCall[len(fake.toProtoArgsForCall)]
@@ -1111,8 +1083,6 @@ func (fake *FakePublishedTrack) Invocations() map[string][][]interface{} {
defer fake.setMutedMutex.RUnlock()
fake.signalCidMutex.RLock()
defer fake.signalCidMutex.RUnlock()
fake.startMutex.RLock()
defer fake.startMutex.RUnlock()
fake.toProtoMutex.RLock()
defer fake.toProtoMutex.RUnlock()
fake.updateVideoLayersMutex.RLock()
@@ -6,7 +6,7 @@ import (
"github.com/livekit/livekit-server/pkg/rtc/types"
"github.com/livekit/livekit-server/pkg/sfu"
livekit "github.com/livekit/protocol/proto"
"github.com/livekit/protocol/livekit"
)
type FakeSubscribedTrack struct {
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"strings"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/pion/webrtc/v3"
"github.com/livekit/livekit-server/pkg/rtc/types"
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"context"
"time"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
)
//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"sync"
"time"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
)
// encapsulates CRUD operations for room settings
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"errors"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/recording"
"github.com/livekit/protocol/utils"
"google.golang.org/protobuf/proto"
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"time"
"github.com/go-redis/redis/v8"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"github.com/pkg/errors"
"google.golang.org/protobuf/proto"
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"testing"
"time"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/stretchr/testify/require"
"github.com/livekit/livekit-server/pkg/service"
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"time"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"github.com/livekit/livekit-server/pkg/config"
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"context"
"testing"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/stretchr/testify/require"
"github.com/livekit/livekit-server/pkg/config"
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"time"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/livekit-server/pkg/config"
"github.com/livekit/livekit-server/pkg/routing"
+1 -1
View File
@@ -3,7 +3,7 @@ package service
import (
"context"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/pkg/errors"
"github.com/thoas/go-funk"
"github.com/twitchtv/twirp"
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"github.com/livekit/livekit-server/pkg/service"
"github.com/livekit/livekit-server/pkg/service/servicefakes"
"github.com/livekit/protocol/auth"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/stretchr/testify/require"
)
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"github.com/gorilla/websocket"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/livekit-server/pkg/config"
"github.com/livekit/livekit-server/pkg/routing"
+1 -1
View File
@@ -12,7 +12,7 @@ import (
"github.com/livekit/protocol/auth"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"github.com/pion/turn/v2"
"github.com/prometheus/client_golang/prometheus/promhttp"
@@ -6,7 +6,7 @@ import (
"sync"
"github.com/livekit/livekit-server/pkg/service"
livekit "github.com/livekit/protocol/proto"
"github.com/livekit/protocol/livekit"
)
type FakeRoomAllocator struct {
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"time"
"github.com/livekit/livekit-server/pkg/service"
livekit "github.com/livekit/protocol/proto"
"github.com/livekit/protocol/livekit"
)
type FakeRoomStore struct {
@@ -6,7 +6,7 @@ import (
"sync"
"github.com/livekit/livekit-server/pkg/service"
livekit "github.com/livekit/protocol/proto"
"github.com/livekit/protocol/livekit"
)
type FakeRORoomStore struct {
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"github.com/livekit/protocol/auth"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
)
func handleError(w http.ResponseWriter, status int, msg string) {
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"github.com/go-redis/redis/v8"
"github.com/google/wire"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/pkg/errors"
"github.com/livekit/protocol/auth"
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"github.com/gorilla/websocket"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"google.golang.org/protobuf/encoding/protojson"
"google.golang.org/protobuf/proto"
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"context"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/livekit-server/pkg/config"
"github.com/livekit/livekit-server/pkg/routing"
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"time"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/webhook"
"google.golang.org/protobuf/types/known/timestamppb"
+1 -1
View File
@@ -1,7 +1,7 @@
package telemetry
import (
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/pion/interceptor"
"github.com/pion/rtcp"
)
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"sync/atomic"
"time"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/prometheus/client_golang/prometheus"
)
+1 -1
View File
@@ -5,7 +5,7 @@ package prometheus
import (
linuxproc "github.com/c9s/goprocinfo/linux"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
)
func updateCurrentNodeSystemStats(nodeStats *livekit.NodeStats) error {
+1 -1
View File
@@ -3,7 +3,7 @@
package prometheus
import livekit "github.com/livekit/protocol/proto"
import livekit "github.com/livekit/protocol/livekit"
func updateCurrentNodeSystemStats(nodeStats *livekit.NodeStats) error {
return nil
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"sync"
"github.com/gammazero/workerpool"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/webhook"
"github.com/pion/rtcp"
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"sync"
"time"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"google.golang.org/protobuf/types/known/timestamppb"
"github.com/livekit/livekit-server/pkg/sfu/buffer"
+1 -1
View File
@@ -12,7 +12,7 @@ import (
"time"
"github.com/gorilla/websocket"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"github.com/pion/rtcp"
"github.com/pion/rtp"
+1 -1
View File
@@ -11,7 +11,7 @@ import (
"github.com/go-redis/redis/v8"
"github.com/livekit/protocol/auth"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"github.com/twitchtv/twirp"
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"time"
"github.com/livekit/livekit-server/pkg/rtc"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/stretchr/testify/require"
"github.com/livekit/livekit-server/pkg/testutils"
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"time"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"github.com/stretchr/testify/require"
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"testing"
"time"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"github.com/pion/turn/v2"
"github.com/stretchr/testify/require"
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"github.com/livekit/protocol/auth"
"github.com/livekit/protocol/logger"
livekit "github.com/livekit/protocol/proto"
livekit "github.com/livekit/protocol/livekit"
"github.com/livekit/protocol/utils"
"github.com/livekit/protocol/webhook"
"github.com/stretchr/testify/require"