Class: MediaAgent

Superclasses

Syntax

Description

The MediaAgent class is the core programming layer for all ``media agents'' that manipulate media over the network. These agents are relatively large and complex objects, but are used by most applications in a fairly straightforward manner. The idea is to give the Mash programmer a fairly course-grained programming object that relieves the burden of managing video capture devices, multicast sockets, audio processing code, etc. into a high-level, easy-to-use API. The effort can then be spent figuring out how to cleanly integrate video, audio, or whiteboard objects into the application under design.

MediaAgents are ``bare processing engines''. They do not create or rely upon a user-interface. Instead, the script that creates the object manipulates it directly and if a user-interface is desired, that script must create and bind the UI to the agent. The protocol for communicating between the agent and the UI follows the Mash Observer model. In fact, since the observer abstraction is completely general, any object can attach itself to a MediaAgent as an observer, not just UIs.

Note: This is an abstract base class. Do not create objects directly of this class (note either SRM or RTP might be subclasses)

Methods





        set-bandwidth $bps

Observable events

Any observer that is attached to objects of this class should define methods corresponding to the following observable events:

new_stream:

stream_done:

Related Objects:

ArchiveSession/Record/SRM, ArchiveSession/Record/RTP, ArchiveStream, Observer, Observable
 

Putting it all together 

Observer, ArchiveStream, ArchiveSession/Play ArchiveSession/Record

Putting it all together