The "Control
and Management of Audio/Video Streams" OMG specification defines a model
for implementing an open distributed multimedia streaming framework based
on CORBA environment.
The architecture benefits from all the advantages that gives CORBA as
the middleware. This requires however an infrastructure in form of a running
CORBA implementation.
The specification doesn't limit its area only to audio/video streams
(although the title of the document hints that) but allows for controlling
almost every any kind of continuous media transfer. The OMG document doesn't
also define ways of passing multimedia streams allowing the data itself
to be passed using the efficient transport-level mechanisms with no overheads
existent in CORBA.
The key components of the architecture are stream and the multimedia
device. Stream may contain one or more flows (i.e. unidirectional data
flow) and is passed between two or more multimedia devices. Operations
performed on the stream can be applied to all the flows or a subset of
them.
The document specifies set of IDL interfaces to be implemented defining
the functionality of the architecture. To the most important belong:
-
MMDevice (Multimedia Device) which abstracts
one or more items of multimedia hardware (such as a camera or video server)
or a software (e.g. a GUI application visualising video streams). It acts
as the factory for so called stream endpoints and virtual devices objects
created every time the request for a new connection is directed to the
device.
-
VDev (Virtual Device) which encapsulates
the device-specific parameters of the connection. VDev
interface implementation should ensure compatibility of the flows between
(peer) devices participating in the connection. This requires a uniform
representation of parameters and a negotiation process. The parameters
of the connection are contained in the powerful QoS
IDL structures as well as set of Property structures.
-
StreamEndPoint which encapsulates the
network-specific parameters of the connection. The object is responsible
for matching proper multimedia data transport-level parameters for the
new connection. Operations performed on the stream are passed to stream
endpoints to enable starting/stopping the data transfer.
-
StreamCtrl (Stream controller) representing
a single stream. It delivers operations to bind two or more devices together
with a stream and operations allowing controlling the set stream - e.g.
start, stop, destroy
or to modify it.
The environment is easy extensible and easy to unify with existing CORBA
services and allows building an open framework. The work over such a framework
taken up by the authors is in progress.
Related documents and links: