Display and Graphics
The display architecture uses the Wayland protocol. The GST waylandsink element talks to the Weston subsystem to render the display.
The following diagram shows the Weston architecture. For X11, standard applications from Ubuntu package are available. The architecture is the OSS solution.
The Weston architecture has the following highlights:
- The Weston server is a system-level compositor that handles all kinds of composition/rendering needs. It runs as a separate process in the system.
- The Weston server uses the graphics buffer manager (GBM) to talk to the direct rendering manager (DRM).
- The ION framework (via GBM) ensures zero-copy buffer sharing between display and graphics
- The DRM backend is the native Weston backend for systems that support the Linux kernel DRM, kernel mode setting (KMS), and evdev input devices. Compositing happens mainly in OpenGLES, initialized through EGL.
The following example applies user text overlay on a 1080p live video preview. This highlights the use of the qti-overlay plugin.
export XDG_RUNTIME_DIR=/run/user/root && gst-launch-1.0 -e qtiqmmfsrc name=qmmf ! "video/x-raw(memory:GBM),format=NV12,camera=0,width=1920,height=1080,framerate=30/1" ! qtioverlay overlay-text="Qualcomm Intelligence" ! waylandsink sync=false fullscreen=true
QTI's qtiqmmfsrc element is used to generate one 1080p resolution YUV stream. This stream is received by the QTI's qtioverlay plugin, which applies user text given as overlay-text property value on to the stream, and then passes it to waylandsink element for rendering on display.
export XDG_RUNTIME_DIR=/run/user/root && gst-launch-1.0 -e qtiqmmfsrc name=qmmf ! "video/x-raw(memory:GBM),format=NV12,camera=0,width=1920,height=1080,framerate=30/1" ! qtioverlay overlay-date=true ! waylandsink sync=false fullscreen=true