SPRADE7 November 2023 AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM62P-Q1
As discussed in the previous section, At the user space level, TI uses GStreamer-an opensource framework for multimedia applications. The Gstreamer library in-turn interfaces with a Video for Linux (V4L2 plugin) which handles all the details specific to the underlying hardware accelerators.
Specifically, for the VPU the GStreamer based V4L2 plugin interfaces with the V4L2 codec kernel driver interface. The V4L2 driver in turn communicates with the firmware running on the encoder/decoder via inter-processor communication (IPC). Similarly, the JPEG driver is also based on the Video4Linux 2 (V4L2) API and is responsible for configuring both the JPEG encoder hardware and for generation of JPEG image headers once compressed image is generated. The driver is implemented using V4L2's M2M framework which is a framework for memory-to-memory devices that take data from memory, do some processing and write out processed data back to memory. The overall software driver architecture for leveraging encode/decode and JPEG encode functionality is shown in Figure 5-1.