DaVinci Encoder Manager

DaVinci Encoder Manager
The DaVinci Display Manager is responsible for the following functionality:
· Layer management. All OSD and video layers are initially owned by the display manager and allocated
to front-end drivers (V4L2 and FBDev), as needed. FBDev claims the OSD layers at initialization and
releases them at exit of the driver. V4L2 claims the video layer at run-time when the device is opened
and releases them at the close of the device. FBDev claims the video layers if it is configured through
boot arguments. By default (without any boot arguments for video layers), these layers are not claimed
by FBDev and will be available for use by V4L2.
· Service to the FBDev and V4L2 drivers for configuring the OSD hardware. This involves setting buffer
address, line length, blending, zooming/scaling, window dimension, and other related functionality.
· Color look-up table management. This allows configuration of the RAM/ROM CLUTs for use and
updates to the RAM CLUT.
· Attribute and cursor settings. When one of the OSD layers is used in bitmap mode, the other OSD
layer may be configured as an attribute layer. Cursor position setting and blinking is also allowed.
· ISR event reporting. Both drivers schedule the video/graphics buffer for display when this event is
received and mark the finished buffers for re-use by the application.
· Other miscellaneous functions as listed in the OSD section of the TMS320DM644x DMSoC Video
Processing Back End (VPBE) User's Guide (SPRUE37) and the TMS320DM35x Digital Media
System-on-Chip (DMSoC) Video Processing Back End Reference Guide (SPRUF72).
The DaVinci Encoder Manager is responsible for the following:
· Managing the registration and de-registration of encoders that implement a set of API calls.
· Providing APIs to allow set/get of output (composite, s-video, etc.), standard/mode (NTSC, PAL, VGA,
etc.), control (brightness, hue, contrast, etc.), and parameters.
· Platform-specific functions. Some of the platforms need settings in the VPBE/VPIF to allow
configuration of the digital port. This involves formatting the digital port for the required interface type
(YCbCr/YCC8/YCC16/BT.656/PRGB/SRGB) and generating timing signals required for the selected
standard/mode. These are abstracted as APIs and are implemented by the respective platforms. If a
specific platform does not have any such functionality, it implements a dummy API call that does
nothing.
The DaVinci Encoder Manager manages a list of encoders. Encoders register with the manager and
implement a set of standard API calls that are used to control the operation of the encoder (shown as
encoder interface in Figure 1). The Encoder Manager hides the details of which encoder supports which
standard and output and provides a set of generic APIs to invoke its services. Figure 2 shows how the
encoders are interfaced to the SoC at the digital video port (shown as interface, which could be
YCbCr/YCC8/YCC16/BT.656/PRGB/SRGB).

你可能感兴趣的:(manager)