The VideoOverlay module acts as a manager for any graphics/video overlays that are supported by the system, e.g. for directly displaying YUV video frames. Its SWIs act as a high-level interface which applications can use to create and manipulate overlays.
Internally, it uses the GraphicsV API to manage the overlays (e.g. reason codes 20-28). The GraphicsV overlay API is a low-level interface that should not be used directly by programs, as any overlay operations which are performed via GraphicsV may conflict with operations that VideoOverlay (or a replacement manager module) may be performing.
The current version of the module is functional, but incomplete. Once completed, its full set of duties are expected to include:
With the overlay ID system that VideoOverlay uses, zero is a suitable value for programs to use as an invalid overlay ID.
Since generic hardware overlays aren’t a critical system component, the VideoOverlay module is typically disc-based rather than ROM-based. Thus, programs which expect to use it should attempt to RMLoad it from !System, in the usual manner.