RE: RTX/RED/FEC packet routing

> [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