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.