- From: Bernard Aboba <Bernard.Aboba@microsoft.com>
- Date: Wed, 1 Jun 2016 22:47:05 +0000
- To: IƱaki Baz Castillo <ibc@aliax.net>
- CC: "public-ortc@w3.org" <public-ortc@w3.org>, Robin Raymond <robin@hookflash.com>
> [BA] At least at the moment, feature codecs (CN, telephone-event, etc.) are included in parameters.codecs[].
>
> So we can check whether a payload type included in parameters.codecs[j].payloadType has no corresponding parameters.encodings[i].codecPayloadType entry or if it has an entry, that parameters.encodings[i].ssrc is unset.
Inaki said:
"I don't agree. That would break multiple RtpReceivers over the same Transport. This is: two RtpReceivers could not share the same Transport if both use the same payloadType=111 for, for example, CN codec. They would conflict."
[BA] Right. Is this fixed by your proposal https://github.com/openpeer/ortc/pull/557 ?
If one of the audio codecs had encodings[i].ssrc unset (see scenario below) then wouldn't we add pt_table entries for G722, uLaw and CN? The uLaw packets are no longer dropped, but now we have a conflict if multiple RtpReceivers attempt to do voice activity detection with G.722 (even though an SSRC is specified for G.722 so it shouldn't be an issue).
Inaki proposed rule:
If parameters.muxId is unset and parameters.encodings[i].ssrc is unset for some value of i from 0 to the number of encodings, or parameters.encodings[i].rtx is set but parameters.encodings[i].rtx.ssrc is unset for some value of i from 0 to the number of encodings, or parameters.encodings[i].fec is set but parameters.encodings[i].fec.ssrc is unset for some value of i from 0 to the number of encodings, then add entries to pt_table by setting pt_table[parameters.codecs[j].payloadType] to receiver, for values of j from 0 to the number of codecs. If pt_table[pt] is already set to a value other than receiver, or parameters.codecs[j].payloadType is unset for any value of j from 0 to the number of codecs, then receiver.receive() will throw an InvalidParameters exception.
Test parameters:
{
codecs :
[
{
name : 'audio/g722',
payloadType : 100
},
{
name : 'audio/ulaw',
payloadType : 0
},
{
name : 'audio/CN',
payloadType : 111
}
],
encodings :
[
{
codecPayloadType : 100,
ssrc : 1111
},
{
codecPayloadType : 0,
},
{
codecPayloadType : 111,
}
]
}
Received on Wednesday, 1 June 2016 22:47:37 UTC