Schulzrinne, et al Standards Track [Page 39]
RFC 1889 RTP January 1996
There may be many varieties of translators and mixers designed for
different purposes and applications. Some examples are to add or
remove encryption, change the encoding of the data or the underlying
protocols, or replicate between a multicast address and one or more
unicast addresses. The distinction between translators and mixers is
that a translator passes through the data streams from different
sources separately, whereas a mixer combines them to form one new
stream:
Translator: Forwards RTP packets with their SSRC identifier intact;
this makes it possible for receivers to identify individual
sources even though packets from all the sources pass through
the same translator and carry the translator's network source
address. Some kinds of translators will pass through the data
untouched, but others may change the encoding of the data and
thus the RTP data payload type and timestamp. If multiple data
packets are re-encoded into one, or vice versa, a translator
must assign new sequence numbers to the outgoing packets. Losses
in the incoming packet stream may induce corresponding gaps in
the outgoing sequence numbers. Receivers cannot detect the
presence of a translator unless they know by some other means
what payload type or transport address was used by the original
source.
Mixer: Receives streams of RTP data packets from one or more sources,
possibly changes the data format, combines the streams in some
manner and then forwards the combined stream. Since the timing
among multiple input sources will not generally be synchronized,
the mixer will make timing adjustments among the streams and
generate its own timing for the combined stream, so it is the
synchronization source. Thus, all data packets forwarded by a
mixer will be marked with the mixer's own SSRC identifier. In
order to preserve the identity of the original sources
contributing to the mixed packet, the mixer should insert their
SSRC identifiers into the CSRC identifier list following the
fixed RTP header of the packet. A mixer that is also itself a
contributing source for some packet should explicitly include
its own SSRC identifier in the CSRC list for that packet.
For some applications, it may be acceptable for a mixer not to
identify sources in the CSRC list. However, this introduces the
danger that loops involving those sources could not be detected.
The advantage of a mixer over a translator for applications like
audio is that the output bandwidth is limited to that of one source
even when multiple sources are active on the input side. This may be
important for low-bandwidth links. The disadvantage is that receivers
on the output side don't have any control over which sources are