Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FEC-FR source group fro Flex FEC produces invalid attribute #53

Closed
murillo128 opened this issue Feb 20, 2017 · 1 comment
Closed

FEC-FR source group fro Flex FEC produces invalid attribute #53

murillo128 opened this issue Feb 20, 2017 · 1 comment

Comments

@murillo128
Copy link
Contributor

When parsing an sdp with a Flex-FEC source group, the attribute is parsed as invalid (I assume it is due to the "-")

v=0
o=- 4327261771880257373 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:ez5G
a=ice-pwd:1F1qS++jzWLSQi0qQDZkX/QV
a=fingerprint:sha-256 D2:FA:0E:C3:22:59:5E:14:95:69:92:3D:13:B4:84:24:2C:C2:A2:C0:3E:FD:34:8E:5E:EA:6F:AF:52:CE:E6:0F
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
a=ssrc:3510681183 cname:loqPWNg7JMmrFUnr
a=ssrc:3510681183 msid:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj 7ea47500-22eb-4815-a899-c74ef321b6ee
a=ssrc:3510681183 mslabel:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj
a=ssrc:3510681183 label:7ea47500-22eb-4815-a899-c74ef321b6ee
m=video 9 UDP/TLS/RTP/SAVPF 96 98 100 102 127 125 97 99 101 124
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:ez5G
a=ice-pwd:1F1qS++jzWLSQi0qQDZkX/QV
a=fingerprint:sha-256 D2:FA:0E:C3:22:59:5E:14:95:69:92:3D:13:B4:84:24:2C:C2:A2:C0:3E:FD:34:8E:5E:EA:6F:AF:52:CE:E6:0F
a=setup:actpass
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtpmap:100 H264/90000
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:102 red/90000
a=rtpmap:127 ulpfec/90000
a=rtpmap:125 flexfec-03/90000
a=rtcp-fb:125 ccm fir
a=rtcp-fb:125 nack
a=rtcp-fb:125 nack pli
a=rtcp-fb:125 goog-remb
a=rtcp-fb:125 transport-cc
a=fmtp:125 repair-window=10000000
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:124 rtx/90000
a=fmtp:124 apt=102
a=ssrc-group:FID 3004364195 1126032854
a=ssrc-group:FEC-FR 3004364195 1080772241
a=ssrc:3004364195 cname:loqPWNg7JMmrFUnr
a=ssrc:3004364195 msid:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj cf093ab0-0b28-4930-8fe1-7ca8d529be25
a=ssrc:3004364195 mslabel:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj
a=ssrc:3004364195 label:cf093ab0-0b28-4930-8fe1-7ca8d529be25
a=ssrc:1126032854 cname:loqPWNg7JMmrFUnr
a=ssrc:1126032854 msid:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj cf093ab0-0b28-4930-8fe1-7ca8d529be25
a=ssrc:1126032854 mslabel:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj
a=ssrc:1126032854 label:cf093ab0-0b28-4930-8fe1-7ca8d529be25
a=ssrc:1080772241 cname:loqPWNg7JMmrFUnr
a=ssrc:1080772241 msid:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj cf093ab0-0b28-4930-8fe1-7ca8d529be25
a=ssrc:1080772241 mslabel:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj
a=ssrc:1080772241 label:cf093ab0-0b28-4930-8fe1-7ca8d529be25

the parsed media sdp.media[1] is as follows:

{ rtp:
   [ { payload: 96, codec: 'VP8', rate: 90000 },
     { payload: 98, codec: 'VP9', rate: 90000 },
     { payload: 100, codec: 'H264', rate: 90000 },
     { payload: 102, codec: 'red', rate: 90000 },
     { payload: 127, codec: 'ulpfec', rate: 90000 },
     { payload: 125, codec: 'flexfec-03', rate: 90000 },
     { payload: 97, codec: 'rtx', rate: 90000 },
     { payload: 99, codec: 'rtx', rate: 90000 },
     { payload: 101, codec: 'rtx', rate: 90000 },
     { payload: 124, codec: 'rtx', rate: 90000 } ],
  fmtp:
   [ { payload: 100,
       config: 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f' },
     { payload: 125, config: 'repair-window=10000000' },
     { payload: 97, config: 'apt=96' },
     { payload: 99, config: 'apt=98' },
     { payload: 101, config: 'apt=100' },
     { payload: 124, config: 'apt=102' } ],
  type: 'video',
  port: 9,
  protocol: 'UDP/TLS/RTP/SAVPF',
  payloads: '96 98 100 102 127 125 97 99 101 124',
  connection: { version: 4, ip: '0.0.0.0' },
  rtcp: { port: 9, netType: 'IN', ipVer: 4, address: '0.0.0.0' },
  iceUfrag: 'ez5G',
  icePwd: '1F1qS++jzWLSQi0qQDZkX/QV',
  fingerprint:
   { type: 'sha-256',
     hash: 'D2:FA:0E:C3:22:59:5E:14:95:69:92:3D:13:B4:84:24:2C:C2:A2:C0:3E:FD:34:8E:5E:EA:6F:AF:52:CE:E6:0F' },
  setup: 'actpass',
  mid: 'video',
  ext:
   [ { value: 2, uri: 'urn:ietf:params:rtp-hdrext:toffset' },
     { value: 3,
       uri: 'http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time' },
     { value: 4, uri: 'urn:3gpp:video-orientation' },
     { value: 5,
       uri: 'http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01' },
     { value: 6,
       uri: 'http://www.webrtc.org/experiments/rtp-hdrext/playout-delay' } ],
  direction: 'sendrecv',
  rtcpMux: 'rtcp-mux',
  rtcpRsize: 'rtcp-rsize',
  rtcpFb:
   [ { payload: 96, type: 'ccm', subtype: 'fir' },
     { payload: 96, type: 'nack' },
     { payload: 96, type: 'nack', subtype: 'pli' },
     { payload: 96, type: 'goog-remb' },
     { payload: 96, type: 'transport-cc' },
     { payload: 98, type: 'ccm', subtype: 'fir' },
     { payload: 98, type: 'nack' },
     { payload: 98, type: 'nack', subtype: 'pli' },
     { payload: 98, type: 'goog-remb' },
     { payload: 98, type: 'transport-cc' },
     { payload: 100, type: 'ccm', subtype: 'fir' },
     { payload: 100, type: 'nack' },
     { payload: 100, type: 'nack', subtype: 'pli' },
     { payload: 100, type: 'goog-remb' },
     { payload: 100, type: 'transport-cc' },
     { payload: 125, type: 'ccm', subtype: 'fir' },
     { payload: 125, type: 'nack' },
     { payload: 125, type: 'nack', subtype: 'pli' },
     { payload: 125, type: 'goog-remb' },
     { payload: 125, type: 'transport-cc' } ],
  ssrcGroups: [ { semantics: 'FID', ssrcs: '3004364195 1126032854' } ],
  invalid: [ { value: 'ssrc-group:FEC-FR 3004364195 1080772241' } ],
  ssrcs:
   [ { id: 3004364195, attribute: 'cname', value: 'loqPWNg7JMmrFUnr' },
     { id: 3004364195,
       attribute: 'msid',
       value: 'xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj cf093ab0-0b28-4930-8fe1-7ca8d529be25' },
     { id: 3004364195,
       attribute: 'mslabel',
       value: 'xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj' },
     { id: 3004364195,
       attribute: 'label',
       value: 'cf093ab0-0b28-4930-8fe1-7ca8d529be25' },
     { id: 1126032854, attribute: 'cname', value: 'loqPWNg7JMmrFUnr' },
     { id: 1126032854,
       attribute: 'msid',
       value: 'xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj cf093ab0-0b28-4930-8fe1-7ca8d529be25' },
     { id: 1126032854,
       attribute: 'mslabel',
       value: 'xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj' },
     { id: 1126032854,
       attribute: 'label',
       value: 'cf093ab0-0b28-4930-8fe1-7ca8d529be25' },
     { id: 1080772241, attribute: 'cname', value: 'loqPWNg7JMmrFUnr' },
     { id: 1080772241,
       attribute: 'msid',
       value: 'xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj cf093ab0-0b28-4930-8fe1-7ca8d529be25' },
     { id: 1080772241,
       attribute: 'mslabel',
       value: 'xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj' },
     { id: 1080772241,
       attribute: 'label',
       value: 'cf093ab0-0b28-4930-8fe1-7ca8d529be25' } ] }
@clux
Copy link
Owner

clux commented Feb 20, 2017

sdp-transform@2.0.1 has your fix, and your sdp is now part of the tests for this bug. Thanks again.

@clux clux closed this as completed Feb 20, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants