|
@@ -181,6 +181,69 @@ const simulcastRtxVideoMLineSdp = ''
|
181
|
181
|
+ 'a=ssrc-group:SIM 1757014965 1479742055 1089111804\r\n'
|
182
|
182
|
+ 'a=rtcp-mux\r\n';
|
183
|
183
|
|
|
184
|
+// An sdp video mline with 1 video ssrc, 1 video rtx ssrc and one flexfec ssrc
|
|
185
|
+const flexFecVideoMLineSdp = ''
|
|
186
|
++ 'm=video 9 RTP/SAVPF 100 107 101 96 99 97 109\r\n'
|
|
187
|
++ 'c=IN IP4 0.0.0.0\r\n'
|
|
188
|
++ 'a=rtcp:9 IN IP4 0.0.0.0\r\n'
|
|
189
|
++ 'a=ice-ufrag:aLBh\r\n'
|
|
190
|
++ 'a=ice-pwd:7IeqrWG5ryCW2X47Lso8XYdK\r\n'
|
|
191
|
++ 'a=ice-options:trickle\r\n'
|
|
192
|
++ 'a=fingerprint:sha-256 78:3C:F9:96:85:FB:20:25:F8:2F:AB:37:8B:8B:17:29:EF:54:7B:7C:17:2E:90:02:8A:A1:8F:A7:F9:C5:F2:90\r\n'
|
|
193
|
++ 'a=setup:active\r\n'
|
|
194
|
++ 'a=mid:video\r\n'
|
|
195
|
++ 'a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\n'
|
|
196
|
++ 'a=sendrecv\r\n'
|
|
197
|
++ 'a=rtcp-mux\r\n'
|
|
198
|
++ 'a=rtpmap:100 VP8/90000\r\n'
|
|
199
|
++ 'a=rtcp-fb:100 goog-remb\r\n'
|
|
200
|
++ 'a=rtcp-fb:100 ccm fir\r\n'
|
|
201
|
++ 'a=rtcp-fb:100 nack\r\n'
|
|
202
|
++ 'a=rtcp-fb:100 nack pli\r\n'
|
|
203
|
++ 'a=rtpmap:107 h264/90000\r\n'
|
|
204
|
++ 'a=rtcp-fb:107 goog-remb\r\n'
|
|
205
|
++ 'a=rtcp-fb:107 ccm fir\r\n'
|
|
206
|
++ 'a=rtcp-fb:107 nack\r\n'
|
|
207
|
++ 'a=rtcp-fb:107 nack pli\r\n'
|
|
208
|
++ 'a=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\n'
|
|
209
|
++ 'a=rtpmap:101 VP9/90000\r\n'
|
|
210
|
++ 'a=rtcp-fb:101 goog-remb\r\n'
|
|
211
|
++ 'a=rtcp-fb:101 ccm fir\r\n'
|
|
212
|
++ 'a=rtcp-fb:101 nack\r\n'
|
|
213
|
++ 'a=rtcp-fb:101 nack pli\r\n'
|
|
214
|
++ 'a=rtpmap:96 rtx/90000\r\n'
|
|
215
|
++ 'a=fmtp:96 apt=100\r\n'
|
|
216
|
++ 'a=rtpmap:99 rtx/90000\r\n'
|
|
217
|
++ 'a=fmtp:99 apt=107\r\n'
|
|
218
|
++ 'a=rtpmap:97 rtx/90000\r\n'
|
|
219
|
++ 'a=fmtp:97 apt=101\r\n'
|
|
220
|
++ 'a=rtpmap:109 flexfec-03/90000\r\n'
|
|
221
|
++ 'a=fmtp:109 repair-window=10000000\r\n'
|
|
222
|
++ 'a=ssrc-group:FID 2864950112 2236303754\r\n'
|
|
223
|
++ 'a=ssrc-group:FEC-FR 2864950112 116623191\r\n'
|
|
224
|
++ 'a=ssrc:2864950112 cname:mT86hcsCZwQBPh6R\r\n'
|
|
225
|
++ 'a=ssrc:2864950112 msid:a2548ae2-32e8-4b09-89bc-b11f3e49ac5a b3e3d760-6b1b-48bd-8519-9d6261311d28\r\n'
|
|
226
|
++ 'a=ssrc:2864950112 mslabel:a2548ae2-32e8-4b09-89bc-b11f3e49ac5a\r\n'
|
|
227
|
++ 'a=ssrc:2864950112 label:b3e3d760-6b1b-48bd-8519-9d6261311d28\r\n'
|
|
228
|
++ 'a=ssrc:2236303754 cname:mT86hcsCZwQBPh6R\r\n'
|
|
229
|
++ 'a=ssrc:2236303754 msid:a2548ae2-32e8-4b09-89bc-b11f3e49ac5a b3e3d760-6b1b-48bd-8519-9d6261311d28\r\n'
|
|
230
|
++ 'a=ssrc:2236303754 mslabel:a2548ae2-32e8-4b09-89bc-b11f3e49ac5a\r\n'
|
|
231
|
++ 'a=ssrc:2236303754 label:b3e3d760-6b1b-48bd-8519-9d6261311d28\r\n'
|
|
232
|
++ 'a=ssrc:116623191 cname:mT86hcsCZwQBPh6R\r\n'
|
|
233
|
++ 'a=ssrc:116623191 msid:a2548ae2-32e8-4b09-89bc-b11f3e49ac5a b3e3d760-6b1b-48bd-8519-9d6261311d28\r\n'
|
|
234
|
++ 'a=ssrc:116623191 mslabel:a2548ae2-32e8-4b09-89bc-b11f3e49ac5a\r\n'
|
|
235
|
++ 'a=ssrc:116623191 label:b3e3d760-6b1b-48bd-8519-9d6261311d28\r\n'
|
|
236
|
++ 'm=application 9 DTLS/SCTP 5000\r\n'
|
|
237
|
++ 'c=IN IP4 0.0.0.0\r\n'
|
|
238
|
++ 'b=AS:30\r\n'
|
|
239
|
++ 'a=ice-ufrag:aLBh\r\n'
|
|
240
|
++ 'a=ice-pwd:7IeqrWG5ryCW2X47Lso8XYdK\r\n'
|
|
241
|
++ 'a=ice-options:trickle\r\n'
|
|
242
|
++ 'a=fingerprint:sha-256 78:3C:F9:96:85:FB:20:25:F8:2F:AB:37:8B:8B:17:29:EF:54:7B:7C:17:2E:90:02:8A:A1:8F:A7:F9:C5:F2:90\r\n'
|
|
243
|
++ 'a=setup:active\r\n'
|
|
244
|
++ 'a=mid:data\r\n'
|
|
245
|
++ 'a=sctpmap:5000 webrtc-datachannel 1024\r\n';
|
|
246
|
+
|
184
|
247
|
// A full sdp string representing a client doing simulcast
|
185
|
248
|
const simulcastSdpStr = baseSessionSdp + baseAudioMLineSdp + simulcastVideoMLineSdp + baseDataMLineSdp;
|
186
|
249
|
|
|
@@ -196,10 +259,14 @@ const rtxVideoSdpStr = baseSessionSdp + baseAudioMLineSdp + rtxVideoMLineSdp + b
|
196
|
259
|
// A full sdp string representing a client doing a single video stream with multiple codec options
|
197
|
260
|
const multiCodecVideoSdpStr = baseSessionSdp + baseAudioMLineSdp + multiCodecVideoMLine + baseDataMLineSdp;
|
198
|
261
|
|
|
262
|
+// A full sdp string representing a client doing a single video stream with flexfec
|
|
263
|
+const flexFecSdpStr = baseSessionSdp + baseAudioMLineSdp + flexFecVideoMLineSdp + baseDataMLineSdp;
|
|
264
|
+
|
199
|
265
|
export const simulcastSdp = transform.parse(simulcastSdpStr);
|
200
|
266
|
export const simulcastRtxSdp = transform.parse(simulcastRtxSdpStr);
|
201
|
267
|
export const plainVideoSdp = transform.parse(plainVideoSdpStr);
|
202
|
268
|
export const rtxVideoSdp = transform.parse(rtxVideoSdpStr);
|
203
|
269
|
export const multiCodecVideoSdp = transform.parse(multiCodecVideoSdpStr);
|
|
270
|
+export const flexFecSdp = transform.parse(flexFecSdpStr);
|
204
|
271
|
|
205
|
272
|
/* eslint-enable max-len*/
|