mmstream.source package includes the abstract Source class and its
LocalSource, and RemoteSource abstract subclasses. They all comply to the
StreamExporter interface, and therefore have a Master_Clock object as well as
registerStream() and exportChunk() methods. The Source class offers
implementations of those methods that take all necessary measures for registering a Stream
object and for exporting Chunk objects to the known Stream objects.RemoteSource object represents a data sending entity located on a
remote host, whose multimedia data stream the RemoteSource object feeds into the local data flow.
LocalSource objects are responsible for the network transmission of a locally generated multimedia data
stream.
In addition, the Source class serves as a deposit for user information, such as cnames or phone numbers.
Moreover, Source objects maintain transmission statistics; therefore,the Source class itself
defines the abstract getSenderStats() method, which returns a SenderStatistics
object, containing the number of sent chunks and octets as well as the current transmission
bandwidth and chunk rate.
The RemoteSource class adds the getReceptionStats() method.
The ReceptionStatistics object returned by this method describes the reception of
data from the sender represented by the RemoteSource object. The
ReceptionStatistics object contains a jitter value, the number of received chunks and
octets, an estimate of the absolute number and fraction of packets lost, a jitter
calculation, and the current bandwidth and chunk rate of the received traffic.
Instantiatable subclasses of the LocalSource and RemoteSource classes are
provided by additional protocol-specific packages, such as the mmstream.protocols.rtp package.