@@ -24,7 +24,8 @@ class SdpInfo {
2424 this . obj = transform . parse ( str ) ;
2525 this . obj . media . forEach ( ( media , i ) => {
2626 if ( media . mid === undefined ) {
27- log . warn ( `Media ${ i } missing mid` ) ;
27+ log . info ( `Media ${ i } missing mid` ) ;
28+ media . mid = - 1 ;
2829 }
2930 } ) ;
3031 }
@@ -90,6 +91,7 @@ class SdpInfo {
9091 let finalFmt = null ;
9192 let selectedPayload = - 1 ;
9293 const reservedCodecs = [ 'telephone-event' , 'cn' ] ;
94+ const allowedFbTypes = [ ] ;
9395 const relatedPayloads = new Set ( ) ;
9496 const rtpMap = new Map ( ) ;
9597 const payloadOrder = new Map ( ) ;
@@ -158,6 +160,8 @@ class SdpInfo {
158160 ( fmtp ) => relatedPayloads . has ( fmtp . payload ) ) ;
159161 }
160162 if ( mediaInfo . rtcpFb ) {
163+ mediaInfo . rtcpFb = mediaInfo . rtcpFb . filter (
164+ ( rtcp ) => allowedFbTypes . includes ( rtcp . type ) ) ;
161165 mediaInfo . rtcpFb = mediaInfo . rtcpFb . filter (
162166 ( rtcp ) => relatedPayloads . has ( rtcp . payload ) ) ;
163167 }
@@ -179,6 +183,12 @@ class SdpInfo {
179183 const preferred = preference . preferred ;
180184 const optionals = preference . optional || [ ] ;
181185 const relatedPayloads = new Set ( ) ;
186+ const allowedFbTypes = [
187+ 'ccm fir' ,
188+ 'nack' ,
189+ 'transport-cc' ,
190+ 'goog-remb' ,
191+ ] ;
182192 const reservedCodecs = [ 'red' , 'ulpfec' ] ;
183193 const codecMap = new Map ( ) ;
184194 const payloadOrder = new Map ( ) ;
@@ -230,6 +240,8 @@ class SdpInfo {
230240 ( fmtp ) => relatedPayloads . has ( fmtp . payload ) ) ;
231241 }
232242 if ( mediaInfo . rtcpFb ) {
243+ mediaInfo . rtcpFb = mediaInfo . rtcpFb . filter (
244+ ( rtcp ) => allowedFbTypes . includes ( rtcp . type ) ) ;
233245 mediaInfo . rtcpFb = mediaInfo . rtcpFb . filter (
234246 ( rtcp ) => relatedPayloads . has ( rtcp . payload ) ) ;
235247 }
0 commit comments