The multimedia renderer uses a layered architecture to process playback commands and
manage the flow of media content from input to output.
The mm-renderer architecture consists of three abstraction layers:
- The messaging layer decodes client messages and delivers them to
contexts. A context is an object capable of playing one piece of input media
at a time on a set of output devices. The input can contain both audio and video
signals (e.g., a movie), and the set of outputs can consist of both audio and
video devices (e.g., speakers and a screen).
- The context management layer:
- keeps track of the outputs attached to each context
- maps each output to the engine plugins that can support that output type
- selects the appropriate engine plugins and attaches them to the context
- preserves the context state between detaching and reattaching inputs
- publishes the context state through the PPS service
- delivers client requests (e.g., play) to engine plugins
- The plugin management layer keeps track of all available plugins.