Bug 173530 - WebRTC: Incorrect sdpMLineIndex for video breaks Firefox interop
Summary: WebRTC: Incorrect sdpMLineIndex for video breaks Firefox interop
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Misc. (show other bugs)
Version: WebKit Local Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: youenn fablet
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2017-06-18 17:55 PDT by Andrew Morris
Modified: 2017-07-12 07:27 PDT (History)
5 users (show)

See Also:


Attachments
Patch (8.53 KB, patch)
2017-07-11 16:44 PDT, youenn fablet
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Morris 2017-06-18 17:55:30 PDT
(Note: this is a copy of radar 32042543.)

After setting this local description:


v=0
o=- 308275930248029288 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS d199fecb-b191-4c7d-97c0-9a1031d44f68
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 102 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:QEvH
a=ice-pwd:Lnxkw7teY2FPEYgRU87GhlQw
a=fingerprint:sha-256 17:C6:36:A2:5A:25:89:BC:93:6B:00:E5:75:B3:AA:A9:3D:6F:78:A2:25:2F:2D:A2:0E:CB:42:07:CF:B6:8B:C9
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:102 ILBC/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:2907771210 cname:cQbB5Xqp+SmpwcMJ
a=ssrc:2907771210 msid:d199fecb-b191-4c7d-97c0-9a1031d44f68 75b91233-5486-442a-a3dc-e03f54f4faed
a=ssrc:2907771210 mslabel:d199fecb-b191-4c7d-97c0-9a1031d44f68
a=ssrc:2907771210 label:75b91233-5486-442a-a3dc-e03f54f4faed
m=video 9 UDP/TLS/RTP/SAVPF 99
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:QEvH
a=ice-pwd:Lnxkw7teY2FPEYgRU87GhlQw
a=fingerprint:sha-256 17:C6:36:A2:5A:25:89:BC:93:6B:00:E5:75:B3:AA:A9:3D:6F:78:A2:25:2F:2D:A2:0E:CB:42:07:CF:B6:8B:C9
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:99 H264/90000
a=rtcp-fb:99 ccm fir
a=rtcp-fb:99 nack
a=rtcp-fb:99 nack pli
a=rtcp-fb:99 goog-remb
a=rtcp-fb:99 transport-cc
a=fmtp:99 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=ssrc-group:FID 3837142563 3435433985
a=ssrc:3837142563 cname:cQbB5Xqp+SmpwcMJ
a=ssrc:3837142563 msid:d199fecb-b191-4c7d-97c0-9a1031d44f68 deb92c41-639d-488d-b8a8-0885fe224652
a=ssrc:3837142563 mslabel:d199fecb-b191-4c7d-97c0-9a1031d44f68
a=ssrc:3837142563 label:deb92c41-639d-488d-b8a8-0885fe224652
a=ssrc:3435433985 cname:cQbB5Xqp+SmpwcMJ
a=ssrc:3435433985 msid:d199fecb-b191-4c7d-97c0-9a1031d44f68 deb92c41-639d-488d-b8a8-0885fe224652
a=ssrc:3435433985 mslabel:d199fecb-b191-4c7d-97c0-9a1031d44f68
a=ssrc:3435433985 label:deb92c41-639d-488d-b8a8-0885fe224652

The following ice candidate was generated:
{"candidate":"candidate:1635836124 1 udp 2113937151 10.100.5.100 49884 typ host generation 0 ufrag QEvH network-cost 50","sdpMid":"video","sdpMLineIndex":0}

The sdpMLineIndex here is incorrect. m line 0 in the sdp is audio. Video is m line 1. It appears sdpMLine index is 0 in every ice candidate generated, so I guess they are not being computed correctly.

Chrome and Safari seem to tolerate this error, but Firefox throws an exception saying it is invalid for this reason.

Steps to Reproduce:
1. Go to https://output.jsbin.com/cupuvaw
2. Allow devices access
3. Open console

Expected Results:
sdpMLineIndex of ice candidates should match the m line indexes of the sdp, generally 0 for audio, 1 for video.

Actual Results:
sdpMLineIndex is 0 for all ice candidates, both video and audio, which is not consistent with the sdp.

Version:
macOS Sierra
WebKit built from source (github mirror):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@216162 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Comment 1 youenn fablet 2017-07-11 14:58:30 PDT
rdar://problem/32042543
Comment 2 youenn fablet 2017-07-11 16:44:55 PDT
Created attachment 315190 [details]
Patch
Comment 3 WebKit Commit Bot 2017-07-12 07:27:34 PDT
Comment on attachment 315190 [details]
Patch

Clearing flags on attachment: 315190

Committed r219393: <http://trac.webkit.org/changeset/219393>
Comment 4 WebKit Commit Bot 2017-07-12 07:27:36 PDT
All reviewed patches have been landed.  Closing bug.