Subject: Re: [rtcweb] #15: Section 4.8: SSRC signaling

From: [email-masked] (Dale R. Worley)
Date: Tue, 7 May 2013 16:30:35 -0400 (EDT)

> From: Bernard Aboba <[email-masked]>
> 
> >> From: Martin Thomson <[email-masked]>
> >> 
> >>>    Each SSRC is demultiplexed based on an RTCP SDES item that gives
> >>>    the mapping between the SSRC and the m= line via which it is
> >>>    presented to the application layer (that is, the constituent m=
> >>>    line sequence number).
> > 
> > a=ssrc attributes are not strictly needed, because RTCP packets
> > contain SSRC identifiers, and RTP packets contain both SSRC and PT.
> > So caching the SSRC/PT correspondence seen in the RTP packets allows
> > the RTCP packets to be assigned to the proper m= lines.
> > 
> > This matters because a=ssrc attributes are problematic; we want to
> > add, remove, and adjust video flows without additional offer/answer
> > cycles, which precludes adding or changing a=ssrc attributes in the
> > SDP to handle the new flow.  
> 
> [BA] The PT/SSRC mapping only works if each PT maps to only one m=
> line (and you don't run out of PTs).

I miswrote above.  The structure is this:  You cache the SSRC->m=
index associations that are seen in the incoming RTCP.  When an RTP
arrives, you use its SSRC to determine the proper m= index.  The m=
index, combined with the PT in the RTP, tells which codec is used, and
provides a pointer to the other information carried in the SDP m= line
section.

It doesn't require the PTs used by each m= line to be different,
because the m= indexes are determined from only the SSRCs.

> Also, without a parameter in an
> SDES report you might get a receiver report from an SSRC without
> corresponding RTP packets to allow mapping the SSRC to an m= line.

I'm not sure precisely what this means.  Do you mean, "You might
receive an RTCP receiver report that mentions an SSRC, without having
received an SDES report about that SSRC"?

I don't see any problem with receiving receiver reports, as they
describe sources that this end has assigned SSRCs for.  (If not,
presumably they can be ignored.)  There could be a problem with
receiving a sender report, if this end hasn't received an SDES telling
which m= line the sender report corresponds to.  But the far end can
ensure that it has sent an SDES describing the SSRC before it sends a
sender report describing that SSRC.

Dale