@@ -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