Closed ibc closed 4 years ago
As I answered, I don't think he is right:
https://bugs.chromium.org/p/webrtc/issues/detail?id=10385#c10
So finally it seems that MID exten is mandatory as per spec (and also a=ssrc
with CNAME). Well, we should eventually enable MID exten for receivers.
@jmillan can you tale a look?
Adding a packet->Dump()
before the packet is encrypted and sent to the remote consumer (at the very beginning of Transport::::OnConsumerSendRtpPacket()
), it seems that the MID extension is properly set. Sure it is.
Now, the problem:
In this consumer-mid
branch, mediasoup announces support for "sendrecv" MID extension in supported capabilities. In addition, transport.consume()
now generates a Consumer
whose rtpParameters
contain a proper .mid
value (incremental string per consumer).
However just mediasoup-client consumer-mid
branch is ready for this (see the diff). Other versions of mediasoup-client (or libmediasoupclient) will fail to demux received packets because MID RTP has been negotiated, RTP packets come with MID extension, however the RTP MID value does not match the a=mid
of the corresponding recv transceiver.
In addition to this, I've tested by removing all a=ssrc
lines in the remote SDP offer given to the PC. Chrome (Canary) should be able to demux received packets by matching the RTP MID value, but it fails. Explained here:
@jmillan can you tale a look?
https://github.com/versatica/mediasoup/compare/consumer-mid https://github.com/versatica/mediasoup-client/compare/consumer-mid
@ibc I see it fine
And how to deal with the compatibility issue?
Regarding the Issue explained above, the only good solution is require mediasoup-client >= 3.5.0 and the same for libmediasoupclient when released.
So this is ready in consumer-mid
branch. Will be merged into v3 once we have libmediasoupclient.
Done in mediasoup 3.5.2.
From https://bugs.chromium.org/p/webrtc/issues/detail?id=10385#c9
We must verify if this is true: