Summary: | [WebRTC] Fix final mid of a transceiver | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Florent Defay <florent.defay> | ||||
Component: | WebRTC | Assignee: | Nobody <webkit-unassigned> | ||||
Status: | RESOLVED WONTFIX | ||||||
Severity: | Normal | CC: | alex, clopez, jonlee, webkit-bug-importer, youennf | ||||
Priority: | P2 | Keywords: | InRadar | ||||
Version: | WebKit Nightly Build | ||||||
Hardware: | Unspecified | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
Florent Defay
2017-03-21 08:47:11 PDT
Created attachment 305006 [details]
Patch
Comment on attachment 305006 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=305006&action=review Thanks for the patch, can you explain how we can reproduce this issue? > Source/WebCore/ChangeLog:3 > + [WebRTC] Fix final mid of a transceiver Try to be more descriptive explaining the issue with the title, instead of explaining how you fix it, such as: Problem when setting final mid for the ... > Source/WebCore/ChangeLog:9 > + (WebCore::MediaEndpointPeerConnection::setLocalDescriptionTask): Add here the comments about the changes you did. > Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp:374 > RTCRtpTransceiver* transceiver = matchTransceiver(transceivers, [&mediaDescription] (RTCRtpTransceiver& current) { > - return current.provisionalMid() == mediaDescription.mid; > + return current.mid().isNull() && current.sender().trackKind() == mediaDescription.type; > }); > if (transceiver) > - transceiver->setMid(transceiver->provisionalMid()); > + transceiver->setMid(mediaDescription.mid); I don't understand the solution, the matchTransceiver function makes sure the provisionalMid and the mediaDescription mid are the same value, and the transceiver exist, so it should be safe to assign the provisionalMid in that situation. Also your change of the matchTransceiver function is not matching correctly because there could be multiple tracks with the same type. I think if the payload of a mediaDescription does not match and their mids match the problem should be somewhere else. (In reply to Alejandro G. Castro from comment #2) > Thanks for the patch, can you explain how we can reproduce this issue? This is a random behaviour. We get this using a basic page establishing WebRTC connection audio and video between two set-top boxes. Symmetric setup. The WebRTC backend is openwebrtc. > > Source/WebCore/ChangeLog:3 > > + [WebRTC] Fix final mid of a transceiver > > Try to be more descriptive explaining the issue with the title, instead of > explaining how you fix it, such as: Problem when setting final mid for the > ... OK. What about: Problem with transceiver assigned a mid not matching the payload in the mediaDescription What happens is that we have audio on mid1 and video on mid2 and a transceiver is set with mid1 but with payload of video. > I think if the payload of a mediaDescription does not match and their mids > match the problem should be somewhere else. OK. Closing this one since this patch is changing an endpoint which was removed from trunk. |