Methods and systems for managing multiple inputs that are capable of
competing or contending for a particular or primary output are described.
In one embodiment, the multiple inputs are managed through the use of a
software-implemented matrix switch object, and an associated data
structure that is used to program the switch object and resolve
contention issues between the inputs. The matrix switch object can
process the multiple inputs to provide a primary output. One
implementation of the switch object uses virtual input and output pins to
receive and provide data streams. One specific embodiment is used in
connection with multi-media editing software that enables users build or
define their own editing multi-media editing projects that incorporate
multiple different user-selected clips, in the form of digital data
streams, into an integrated project. Each clip can be defined in terms of
one or more digital data streams, e.g. video and audio streams. One
implementation method defines a first data structure that represents an
editing project and processes the data structure to provide a second data
structure that contains data that can be used to program the matrix
switch object so that multiple switch inputs are routed to multiple
switch outputs and contentions between the inputs for a primary output
are resolved.