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 (for
example, a movie), and the set of outputs can consist of both audio and video
devices (for example, 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 (for example, 'play') to engine plugins
- The plugin management layer keeps track of all available plugins.