New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 705270 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

Reordering codecs in createAnswer/createOffer RTCSessionDescription.sdp is lost when then calling setLocalDescription

Reported by robert.s...@gmail.com, Mar 26 2017

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36

Steps to reproduce the problem:
The usual JSEP offer-answer procedure is followed, except that between createOffer() and setLocalDescription(), the codecs are re-ordered to place H.264 first. The reordered SDP is signalled to the peer.

The peer calls setRemoteDescription(), createAnswer(), reorders codecs to place H.264 first, calls setLocalDescription() and signals the answer to the caller.

What is the expected behavior?
After the setLocalDescription() callback is called in either offer or answer cases (i.e. inside the callback function and thereafter) the RTCPeerConnection.localDescription.sdp will reflect the reordered codecs.

What went wrong?
The codecs reverted to their original order after setLocalDescription() was called.

Did this work before? N/A 

Does this work in other browsers? N/A

Chrome version: 57.0.2987.110  Channel: stable
OS Version: OS X 10.12.3
Flash Version: 

Example SDPs follow for clarity.

SDP from createOffer:
v=0
o=- 1222596483472271906 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh
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:/mMR
a=ice-pwd:/hMeqCLS59pAhqvb+eorcIG6
a=fingerprint:sha-256 AD:04:81:E4:98:CB:DD:B0:B8:B8:92:E3:8F:2A:C5:43:B2:66:61:75:76:BA:F0:C8:F5:04:3A:63:2B:32:23:6B
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:3936703423 cname:+NjhQY1MzL9d7un+
a=ssrc:3936703423 msid:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh 175d5f00-7376-4dca-9dab-6bcc97105a47
a=ssrc:3936703423 mslabel:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh
a=ssrc:3936703423 label:175d5f00-7376-4dca-9dab-6bcc97105a47
m=video 9 UDP/TLS/RTP/SAVPF 96 98 100 102 127 97 99 101 125
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:/mMR
a=ice-pwd:/hMeqCLS59pAhqvb+eorcIG6
a=fingerprint:sha-256 AD:04:81:E4:98:CB:DD:B0:B8:B8:92:E3:8F:2A:C5:43:B2:66:61:75:76:BA:F0:C8:F5:04:3A:63:2B:32:23:6B
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: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:125 rtx/90000
a=fmtp:125 apt=102
a=ssrc-group:FID 1658600083 499385028
a=ssrc:1658600083 cname:+NjhQY1MzL9d7un+
a=ssrc:1658600083 msid:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh 249c8d61-6a27-4944-9680-3957eedaf4db
a=ssrc:1658600083 mslabel:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh
a=ssrc:1658600083 label:249c8d61-6a27-4944-9680-3957eedaf4db
a=ssrc:499385028 cname:+NjhQY1MzL9d7un+
a=ssrc:499385028 msid:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh 249c8d61-6a27-4944-9680-3957eedaf4db
a=ssrc:499385028 mslabel:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh
a=ssrc:499385028 label:249c8d61-6a27-4944-9680-3957eedaf4db

SDP with reordered video codecs:
v=0
o=- 1222596483472271906 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh
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:/mMR
a=ice-pwd:/hMeqCLS59pAhqvb+eorcIG6
a=fingerprint:sha-256 AD:04:81:E4:98:CB:DD:B0:B8:B8:92:E3:8F:2A:C5:43:B2:66:61:75:76:BA:F0:C8:F5:04:3A:63:2B:32:23:6B
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:3936703423 cname:+NjhQY1MzL9d7un+
a=ssrc:3936703423 msid:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh 175d5f00-7376-4dca-9dab-6bcc97105a47
a=ssrc:3936703423 mslabel:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh
a=ssrc:3936703423 label:175d5f00-7376-4dca-9dab-6bcc97105a47
m=video 9 UDP/TLS/RTP/SAVPF 96 98 100 102 127 97 99 101 125
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:/mMR
a=ice-pwd:/hMeqCLS59pAhqvb+eorcIG6
a=fingerprint:sha-256 AD:04:81:E4:98:CB:DD:B0:B8:B8:92:E3:8F:2A:C5:43:B2:66:61:75:76:BA:F0:C8:F5:04:3A:63:2B:32:23:6B
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: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: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:102 red/90000
a=rtpmap:127 ulpfec/90000
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:125 rtx/90000
a=fmtp:125 apt=102
a=ssrc-group:FID 1658600083 499385028
a=ssrc:1658600083 cname:+NjhQY1MzL9d7un+
a=ssrc:1658600083 msid:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh 249c8d61-6a27-4944-9680-3957eedaf4db
a=ssrc:1658600083 mslabel:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh
a=ssrc:1658600083 label:249c8d61-6a27-4944-9680-3957eedaf4db
a=ssrc:499385028 cname:+NjhQY1MzL9d7un+
a=ssrc:499385028 msid:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh 249c8d61-6a27-4944-9680-3957eedaf4db
a=ssrc:499385028 mslabel:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh
a=ssrc:499385028 label:249c8d61-6a27-4944-9680-3957eedaf4db

SDP from RTCPeerConnection.localDescription.sdp inside setLocalDescription() callback:
v=0
o=- 1222596483472271906 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh
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:/mMR
a=ice-pwd:/hMeqCLS59pAhqvb+eorcIG6
a=fingerprint:sha-256 AD:04:81:E4:98:CB:DD:B0:B8:B8:92:E3:8F:2A:C5:43:B2:66:61:75:76:BA:F0:C8:F5:04:3A:63:2B:32:23:6B
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:3936703423 cname:+NjhQY1MzL9d7un+
a=ssrc:3936703423 msid:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh 175d5f00-7376-4dca-9dab-6bcc97105a47
a=ssrc:3936703423 mslabel:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh
a=ssrc:3936703423 label:175d5f00-7376-4dca-9dab-6bcc97105a47
m=video 9 UDP/TLS/RTP/SAVPF 96 98 100 102 127 97 99 101 125
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:/mMR
a=ice-pwd:/hMeqCLS59pAhqvb+eorcIG6
a=fingerprint:sha-256 AD:04:81:E4:98:CB:DD:B0:B8:B8:92:E3:8F:2A:C5:43:B2:66:61:75:76:BA:F0:C8:F5:04:3A:63:2B:32:23:6B
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: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:125 rtx/90000
a=fmtp:125 apt=102
a=ssrc-group:FID 1658600083 499385028
a=ssrc:1658600083 cname:+NjhQY1MzL9d7un+
a=ssrc:1658600083 msid:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh 249c8d61-6a27-4944-9680-3957eedaf4db
a=ssrc:1658600083 mslabel:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh
a=ssrc:1658600083 label:249c8d61-6a27-4944-9680-3957eedaf4db
a=ssrc:499385028 cname:+NjhQY1MzL9d7un+
a=ssrc:499385028 msid:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh 249c8d61-6a27-4944-9680-3957eedaf4db
a=ssrc:499385028 mslabel:DGU4TMSSRfG8U8vLKWkKi5lYAIzcV6Usrzzh
a=ssrc:499385028 label:249c8d61-6a27-4944-9680-3957eedaf4db
 
It seems this is not a bug. One configures payload type preference by ordering them on the m= line. Apologies for the noise.
Cc: ranjitkan@chromium.org
Thanks for the update, closing the issue as per above comment.

Thanks.!
Status: WontFix (was: Unconfirmed)

Sign in to add a comment