@@ -47,6 +47,12 @@ const (
4747 // MimeTypePCMA PCMA MIME type
4848 // Note: Matching should be case insensitive.
4949 MimeTypePCMA = "audio/PCMA"
50+ // MimeTypeRTX RTX MIME type
51+ // Note: Matching should be case insensitive.
52+ MimeTypeRTX = "video/rtx"
53+ // MimeTypeFlexFEC FEC MIME Type
54+ // Note: Matching should be case insensitive.
55+ MimeTypeFlexFEC = "video/flexfec"
5056)
5157
5258type mediaEngineHeaderExtension struct {
@@ -106,7 +112,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
106112 PayloadType : 96 ,
107113 },
108114 {
109- RTPCodecCapability : RTPCodecCapability {"video/rtx" , 90000 , 0 , "apt=96" , nil },
115+ RTPCodecCapability : RTPCodecCapability {MimeTypeRTX , 90000 , 0 , "apt=96" , nil },
110116 PayloadType : 97 ,
111117 },
112118
@@ -115,7 +121,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
115121 PayloadType : 102 ,
116122 },
117123 {
118- RTPCodecCapability : RTPCodecCapability {"video/rtx" , 90000 , 0 , "apt=102" , nil },
124+ RTPCodecCapability : RTPCodecCapability {MimeTypeRTX , 90000 , 0 , "apt=102" , nil },
119125 PayloadType : 103 ,
120126 },
121127
@@ -124,7 +130,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
124130 PayloadType : 104 ,
125131 },
126132 {
127- RTPCodecCapability : RTPCodecCapability {"video/rtx" , 90000 , 0 , "apt=104" , nil },
133+ RTPCodecCapability : RTPCodecCapability {MimeTypeRTX , 90000 , 0 , "apt=104" , nil },
128134 PayloadType : 105 ,
129135 },
130136
@@ -133,7 +139,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
133139 PayloadType : 106 ,
134140 },
135141 {
136- RTPCodecCapability : RTPCodecCapability {"video/rtx" , 90000 , 0 , "apt=106" , nil },
142+ RTPCodecCapability : RTPCodecCapability {MimeTypeRTX , 90000 , 0 , "apt=106" , nil },
137143 PayloadType : 107 ,
138144 },
139145
@@ -142,7 +148,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
142148 PayloadType : 108 ,
143149 },
144150 {
145- RTPCodecCapability : RTPCodecCapability {"video/rtx" , 90000 , 0 , "apt=108" , nil },
151+ RTPCodecCapability : RTPCodecCapability {MimeTypeRTX , 90000 , 0 , "apt=108" , nil },
146152 PayloadType : 109 ,
147153 },
148154
@@ -151,7 +157,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
151157 PayloadType : 127 ,
152158 },
153159 {
154- RTPCodecCapability : RTPCodecCapability {"video/rtx" , 90000 , 0 , "apt=127" , nil },
160+ RTPCodecCapability : RTPCodecCapability {MimeTypeRTX , 90000 , 0 , "apt=127" , nil },
155161 PayloadType : 125 ,
156162 },
157163
@@ -160,7 +166,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
160166 PayloadType : 39 ,
161167 },
162168 {
163- RTPCodecCapability : RTPCodecCapability {"video/rtx" , 90000 , 0 , "apt=39" , nil },
169+ RTPCodecCapability : RTPCodecCapability {MimeTypeRTX , 90000 , 0 , "apt=39" , nil },
164170 PayloadType : 40 ,
165171 },
166172
@@ -169,7 +175,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
169175 PayloadType : 45 ,
170176 },
171177 {
172- RTPCodecCapability : RTPCodecCapability {"video/rtx" , 90000 , 0 , "apt=45" , nil },
178+ RTPCodecCapability : RTPCodecCapability {MimeTypeRTX , 90000 , 0 , "apt=45" , nil },
173179 PayloadType : 46 ,
174180 },
175181
@@ -178,7 +184,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
178184 PayloadType : 98 ,
179185 },
180186 {
181- RTPCodecCapability : RTPCodecCapability {"video/rtx" , 90000 , 0 , "apt=98" , nil },
187+ RTPCodecCapability : RTPCodecCapability {MimeTypeRTX , 90000 , 0 , "apt=98" , nil },
182188 PayloadType : 99 ,
183189 },
184190
@@ -187,7 +193,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
187193 PayloadType : 100 ,
188194 },
189195 {
190- RTPCodecCapability : RTPCodecCapability {"video/rtx" , 90000 , 0 , "apt=100" , nil },
196+ RTPCodecCapability : RTPCodecCapability {MimeTypeRTX , 90000 , 0 , "apt=100" , nil },
191197 PayloadType : 101 ,
192198 },
193199
@@ -196,7 +202,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
196202 PayloadType : 112 ,
197203 },
198204 {
199- RTPCodecCapability : RTPCodecCapability {"video/rtx" , 90000 , 0 , "apt=112" , nil },
205+ RTPCodecCapability : RTPCodecCapability {MimeTypeRTX , 90000 , 0 , "apt=112" , nil },
200206 PayloadType : 113 ,
201207 },
202208 } {
@@ -702,3 +708,23 @@ func payloaderForCodec(codec RTPCodecCapability) (rtp.Payloader, error) {
702708 return nil , ErrNoPayloaderForCodec
703709 }
704710}
711+
712+ func (m * MediaEngine ) isRTXEnabled (typ RTPCodecType , directions []RTPTransceiverDirection ) bool {
713+ for _ , p := range m .getRTPParametersByKind (typ , directions ).Codecs {
714+ if p .MimeType == MimeTypeRTX {
715+ return true
716+ }
717+ }
718+
719+ return false
720+ }
721+
722+ func (m * MediaEngine ) isFECEnabled (typ RTPCodecType , directions []RTPTransceiverDirection ) bool {
723+ for _ , p := range m .getRTPParametersByKind (typ , directions ).Codecs {
724+ if strings .Contains (p .MimeType , MimeTypeFlexFEC ) {
725+ return true
726+ }
727+ }
728+
729+ return false
730+ }
0 commit comments