Skip to content

Commit 2457319

Browse files
authored
update egress intefaces (#442)
1 parent 536a3e8 commit 2457319

File tree

1 file changed

+33
-16
lines changed

1 file changed

+33
-16
lines changed

egress/types.go

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,28 @@ const (
3030
Unknown = "unknown"
3131
)
3232

33-
func GetTypes(info *livekit.EgressInfo) (string, string) {
34-
switch req := info.Request.(type) {
33+
type EncodedOutput interface {
34+
GetFileOutputs() []*livekit.EncodedFileOutput
35+
GetStreamOutputs() []*livekit.StreamOutput
36+
GetSegmentOutputs() []*livekit.SegmentedFileOutput
37+
}
38+
39+
type EncodedOutputDeprecated interface {
40+
GetFile() *livekit.EncodedFileOutput
41+
GetStream() *livekit.StreamOutput
42+
GetSegments() *livekit.SegmentedFileOutput
43+
}
44+
45+
func GetTypes(request interface{}) (string, string) {
46+
switch req := request.(type) {
3547
case *livekit.EgressInfo_RoomComposite:
36-
return EgressTypeRoomComposite, getOutputType(req.RoomComposite)
48+
return EgressTypeRoomComposite, GetOutputType(req.RoomComposite)
3749

3850
case *livekit.EgressInfo_Web:
39-
return EgressTypeWeb, getOutputType(req.Web)
51+
return EgressTypeWeb, GetOutputType(req.Web)
4052

4153
case *livekit.EgressInfo_TrackComposite:
42-
return EgressTypeTrackComposite, getOutputType(req.TrackComposite)
54+
return EgressTypeTrackComposite, GetOutputType(req.TrackComposite)
4355

4456
case *livekit.EgressInfo_Track:
4557
switch req.Track.Output.(type) {
@@ -53,27 +65,32 @@ func GetTypes(info *livekit.EgressInfo) (string, string) {
5365
return Unknown, Unknown
5466
}
5567

56-
func getOutputType(req interface {
57-
GetFile() *livekit.EncodedFileOutput
58-
GetStream() *livekit.StreamOutput
59-
GetSegments() *livekit.SegmentedFileOutput
60-
GetFileOutputs() []*livekit.EncodedFileOutput
61-
GetStreamOutputs() []*livekit.StreamOutput
62-
GetSegmentOutputs() []*livekit.SegmentedFileOutput
63-
}) string {
68+
func GetOutputType(req EncodedOutput) string {
6469
hasFile := len(req.GetFileOutputs()) > 0
6570
hasStream := len(req.GetStreamOutputs()) > 0
6671
hasSegments := len(req.GetSegmentOutputs()) > 0
6772

6873
switch {
6974
case (hasFile && (hasStream || hasSegments)) || (hasStream && hasSegments):
7075
return OutputTypeMultiple
71-
case hasFile || req.GetFile() != nil:
76+
case hasFile:
7277
return OutputTypeFile
73-
case hasStream || req.GetStream() != nil:
78+
case hasStream:
7479
return OutputTypeStream
75-
case hasSegments || req.GetSegments() != nil:
80+
case hasSegments:
7681
return OutputTypeSegments
82+
default:
83+
if r, ok := req.(EncodedOutputDeprecated); ok {
84+
if r.GetFile() != nil {
85+
return OutputTypeFile
86+
}
87+
if r.GetStream() != nil {
88+
return OutputTypeStream
89+
}
90+
if r.GetSegments() != nil {
91+
return OutputTypeSegments
92+
}
93+
}
7794
}
7895

7996
return Unknown

0 commit comments

Comments
 (0)