The multimedia renderer uses a layered architecture to process playback commands and manage the flow of media content from input to output.
mm-renderer 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
- delivers client requests (for example, 'play') to engine plugins
- The plugin management layer keeps track of all available plugins.