This service moves from a context (or state) based implementation to a context-less (stateless) implementation of audio and video handling. Since mediaserver manages pipelines for the applications, avoutput will not hold any context information. avoutput will expose methods which makes the right HAL calls to connect source to sink and position output as needed.
Overview of the API(click to expand)
AVOutput is responsible for connecting the input pipeline to the backend video. The Media Framework is responsible for determining the life cycle of a connection and pipeline policy (which application is in ForeGround and has focus, resources etc). Media Framework uses AVOutput APIs to achieve connection and video post-processing.
- AVOutput does NOT have policy
- It provides APIs to connect video source (frames from decoder or HDMI etc) to video plane.
- It provides the HAL abstraction for the backend (i.e. AVOutput will work with HAL or KMS/DRM or ALSA or other hardware abstraction layer)
- It provides the interface for h/w video post-processing and scaling - the post processing functionality will be implemented with a plugin design to allow various degrees of functionality based on product.
Direct use of avoutputd by application developers is strongly discouraged. Instead, the modules of media framework like UMS, LSM are supposed to use these APIs.