Closed
Bug 1478685
Opened 7 years ago
Closed 7 years ago
Incorrect MID is sent in RTP header extension
Categories
(Core :: WebRTC: Networking, defect, P2)
Tracking
()
VERIFIED
FIXED
mozilla63
People
(Reporter: jeremy.laine, Assigned: bwc)
Details
Attachments
(4 files)
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0
Build ID: 20180627012544
Steps to reproduce:
Establish an RTCPeerConnection between Firefox and another browser (either Firefox or Chrome with unified-plan SDP), with both an audio and a video track.
Actual results:
The same MID value (sdparta_0) is sent in the header of all RTP packets, regardless of whether they are for audio or video.
Expected results:
The MID announced in the SDP for the audio / video tracks should be respected, otherwise this breaks MID-based demultiplexing.
Reporter | ||
Comment 1•7 years ago
|
||
A consequence of this bug is that audio + video interop is broken with Chrome when using Unified Plan SDP.
Updated•7 years ago
|
Component: Untriaged → WebRTC: Networking
Product: Firefox → Core
Comment 2•7 years ago
|
||
I can reproduce that behaviour. See for example packet #9 (audio, mid=audio) and #22 (keyframe, mid=audio)
Assignee | ||
Comment 3•7 years ago
|
||
Interesting. Looking now.
Comment hidden (mozreview-request) |
Comment 5•7 years ago
|
||
mozreview-review |
Comment on attachment 8995241 [details]
Bug 1478685: Set the RTP MID to the mid of the transceiver, not the transport id string.
https://reviewboard.mozilla.org/r/259716/#review266700
::: media/webrtc/signaling/src/peerconnection/TransceiverImpl.cpp:244
(Diff revision 1)
> " SetLocalSSRCs failed");
> return NS_ERROR_FAILURE;
> }
>
> mConduit->SetLocalCNAME(mJsepTransceiver->mSendTrack.GetCNAME().c_str());
> - mConduit->SetLocalMID(mJsepTransceiver->mTransport->mTransportId);
> + mConduit->SetLocalMID(mMid);
If |mMid| has been cleared in line 221, does this still work?
Comment 6•7 years ago
|
||
[Tracking Requested - why for this release]: See comment 1.
status-firefox61:
--- → wontfix
status-firefox62:
--- → affected
status-firefox63:
--- → affected
status-firefox-esr52:
--- → unaffected
status-firefox-esr60:
--- → affected
tracking-firefox62:
--- → ?
tracking-firefox63:
--- → ?
tracking-firefox-esr60:
--- → ?
Assignee | ||
Comment 7•7 years ago
|
||
mozreview-review-reply |
Comment on attachment 8995241 [details]
Bug 1478685: Set the RTP MID to the mid of the transceiver, not the transport id string.
https://reviewboard.mozilla.org/r/259716/#review266700
> If |mMid| has been cleared in line 221, does this still work?
It looks like it does something sensible; this function just sets a std::string in the codec config that is empty by default.
Updated•7 years ago
|
Assignee: nobody → docfaraday
Status: UNCONFIRMED → NEW
Ever confirmed: true
Updated•7 years ago
|
Rank: 14
Priority: -- → P2
Comment 8•7 years ago
|
||
mozreview-review |
Comment on attachment 8995241 [details]
Bug 1478685: Set the RTP MID to the mid of the transceiver, not the transport id string.
https://reviewboard.mozilla.org/r/259716/#review266716
Looks good to me.
Attachment #8995241 -
Flags: review?(mfroman) → review+
Assignee | ||
Comment 9•7 years ago
|
||
The try push looks good, does the binary work for you? The windows 64 debug build is here: https://queue.taskcluster.net/v1/task/Uk-VeA9YQaG_G1LBVqpRjg/runs/0/artifacts/public/build/install/sea/target.installer.exe
Flags: needinfo?(jeremy.laine)
Assignee | ||
Comment 10•7 years ago
|
||
Linux build should be here: https://queue.taskcluster.net/v1/task/FQqz1jgeSEOA3xQUjukhuA/runs/0/artifacts/public/build/target.tar.bz2
Reporter | ||
Comment 11•7 years ago
|
||
Yep it looks good to me, from the SDP:
m=audio 59564 UDP/TLS/RTP/SAVPF 109 9 0 8 101
a=mid:sdparta_0
a=ssrc:1209280607 cname:{6e544685-d92f-402b-9e3f-6fc12aefa40f}
m=video 46212 UDP/TLS/RTP/SAVPF 120 121 126 97
a=mid:sdparta_1
a=ssrc:1692656918 cname:{6e544685-d92f-402b-9e3f-6fc12aefa40f}
And what I observe on the wire:
ssrc 1209280607 mid sdparta_0
ssrc 1692656918 mid sdparta_1
Flags: needinfo?(jeremy.laine)
Comment 12•7 years ago
|
||
Tracking for 62/63 to make sure we consider uplift to 62 if we land a fix in 63.
Comment 13•7 years ago
|
||
Pushed by bcampen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/56590b88c041
Set the RTP MID to the mid of the transceiver, not the transport id string. r=mjf
Comment 14•7 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla63
Comment 15•7 years ago
|
||
Since MID is not really used that much in the market we decided to simply let this ride the trains.
tracking-firefox62:
+ → ---
tracking-firefox-esr60:
? → ---
Comment 16•7 years ago
|
||
i'm ok with this for FF63 but not uplifting this into ESR will negatively affect both the Chrome migration to unified plan as default as well as early adopters who choose to opt-in.
Comment 17•7 years ago
|
||
Nils/Byron, would you care to reconsider esr uplift in light of comment 16?
Flags: needinfo?(drno)
Flags: needinfo?(docfaraday)
Assignee | ||
Comment 18•7 years ago
|
||
I guess I could see uplifting to ESR 60, given that ESR 68 is a year away. Might be a good idea to wait until this change has made it to beta first, though.
Flags: needinfo?(docfaraday)
Comment 19•7 years ago
|
||
I doubt Chrome's unified code will be in production before ESR 68 ships, but I guess it's better to be on the safe side.
Flags: needinfo?(drno)
Comment 20•7 years ago
|
||
[Tracking Requested - why for this release]: If we don't include this bug fix in ESR60 it will break WebRTC interop with Chrome in the near term future.
tracking-firefox-esr60:
--- → ?
Comment 21•7 years ago
|
||
Please nominate this for ESR60 approval when you get a chance.
Flags: needinfo?(docfaraday)
Assignee | ||
Comment 22•7 years ago
|
||
Comment on attachment 8995241 [details]
Bug 1478685: Set the RTP MID to the mid of the transceiver, not the transport id string.
[Approval Request Comment]
If this is not a sec:{high,crit} bug, please state case for ESR consideration:
User impact if declined:
See comment 16 and comment 20
Fix Landed on Version:
63
Risk to taking this patch (and alternatives if risky):
Very low.
String or UUID changes made by this patch:
None.
Flags: needinfo?(docfaraday)
Attachment #8995241 -
Flags: approval-mozilla-esr60?
Comment 23•7 years ago
|
||
Comment on attachment 8995241 [details]
Bug 1478685: Set the RTP MID to the mid of the transceiver, not the transport id string.
Fixes a Chrome interop issue for WebRTC. Approved for ESR 60.3.
Attachment #8995241 -
Flags: approval-mozilla-esr60? → approval-mozilla-esr60+
Comment 24•7 years ago
|
||
bugherder uplift |
Updated•7 years ago
|
Flags: qe-verify+
Andreas, Jeremy, would you be so kind to assist us with a more concrete STR to reproduce this issue in order to verify it?
Flags: needinfo?(jeremy.laine)
Flags: needinfo?(apehrson)
Comment 26•7 years ago
|
||
Not really my area. Byron?
Flags: needinfo?(apehrson) → needinfo?(docfaraday)
Assignee | ||
Comment 27•7 years ago
|
||
This is kinda involved to verify, do we want QE to deal with it?
Flags: needinfo?(docfaraday) → needinfo?(drno)
Comment 28•7 years ago
|
||
(In reply to Byron Campen [:bwc] from comment #27)
> This is kinda involved to verify, do we want QE to deal with it?
Adrian the only way I can think of right now to verify this would be to make a video webrtc call, for example on appear.in or appr.tc. Record the network traffic with tcpdump or wireshark. And then compare bits of information from about:webrtc with all the packets in the network trace.
I tend to agree with Byron that this too much effort to be able to verify for non-expert in this area.
Flags: needinfo?(drno)
Comment 29•7 years ago
|
||
I grabbed ESR from https://treeherder.mozilla.org/#/jobs?repo=mozilla-esr60&selectedJob=204863894 -- specifically https://queue.taskcluster.net/v1/task/eJkzsHvPS5mlU62wchsn3g/runs/0/artifacts/public/build/target.tar.bz2
The version said still 60.2 but the attached esr.pcapng shows the right mids, audio on audio packets and video on video packets.
Thanks Phillipp for ESR verification. Marking ESR 60 as verified as per comment 29.
Phillipp, could you also assist verifying the fix for 63 Beta?
Flags: needinfo?(fippo)
Updated•7 years ago
|
Comment 31•7 years ago
|
||
grabbed 63.0b13 and generated the attached pcap. Contains different mid headerextensions for audio and video so that looks good to me too!
Flags: needinfo?(fippo)
Thanks Andreas for sorting the flags I messed up in comment 30.
Also, thanks Philipp for verifying Beta 63 as well.
Based on comment 31, marking Beta63 as verified.
Status: RESOLVED → VERIFIED
Flags: qe-verify+
Flags: needinfo?(jeremy.laine)
You need to log in
before you can comment on or make changes to this bug.
Description
•