@@ -24,7 +24,8 @@ class SdpInfo {
24
24
this . obj = transform . parse ( str ) ;
25
25
this . obj . media . forEach ( ( media , i ) => {
26
26
if ( media . mid === undefined ) {
27
- log . warn ( `Media ${ i } missing mid` ) ;
27
+ log . info ( `Media ${ i } missing mid` ) ;
28
+ media . mid = - 1 ;
28
29
}
29
30
} ) ;
30
31
}
@@ -90,6 +91,7 @@ class SdpInfo {
90
91
let finalFmt = null ;
91
92
let selectedPayload = - 1 ;
92
93
const reservedCodecs = [ 'telephone-event' , 'cn' ] ;
94
+ const allowedFbTypes = [ ] ;
93
95
const relatedPayloads = new Set ( ) ;
94
96
const rtpMap = new Map ( ) ;
95
97
const payloadOrder = new Map ( ) ;
@@ -158,6 +160,8 @@ class SdpInfo {
158
160
( fmtp ) => relatedPayloads . has ( fmtp . payload ) ) ;
159
161
}
160
162
if ( mediaInfo . rtcpFb ) {
163
+ mediaInfo . rtcpFb = mediaInfo . rtcpFb . filter (
164
+ ( rtcp ) => allowedFbTypes . includes ( rtcp . type ) ) ;
161
165
mediaInfo . rtcpFb = mediaInfo . rtcpFb . filter (
162
166
( rtcp ) => relatedPayloads . has ( rtcp . payload ) ) ;
163
167
}
@@ -179,6 +183,12 @@ class SdpInfo {
179
183
const preferred = preference . preferred ;
180
184
const optionals = preference . optional || [ ] ;
181
185
const relatedPayloads = new Set ( ) ;
186
+ const allowedFbTypes = [
187
+ 'ccm fir' ,
188
+ 'nack' ,
189
+ 'transport-cc' ,
190
+ 'goog-remb' ,
191
+ ] ;
182
192
const reservedCodecs = [ 'red' , 'ulpfec' ] ;
183
193
const codecMap = new Map ( ) ;
184
194
const payloadOrder = new Map ( ) ;
@@ -230,6 +240,8 @@ class SdpInfo {
230
240
( fmtp ) => relatedPayloads . has ( fmtp . payload ) ) ;
231
241
}
232
242
if ( mediaInfo . rtcpFb ) {
243
+ mediaInfo . rtcpFb = mediaInfo . rtcpFb . filter (
244
+ ( rtcp ) => allowedFbTypes . includes ( rtcp . type ) ) ;
233
245
mediaInfo . rtcpFb = mediaInfo . rtcpFb . filter (
234
246
( rtcp ) => relatedPayloads . has ( rtcp . payload ) ) ;
235
247
}
0 commit comments