# Architecture
Source: [https://docs.qualcomm.com/doc/80-70015-20/topic/architecture.html](https://docs.qualcomm.com/doc/80-70015-20/topic/architecture.html)
The video software stack consists of a client application that interacts with the Adreno
VPU using the V4L2 framework. The following figures show the video software architecture
for decoder and encoder:
Figure : Video decoder software architecture
Figure : Video encoder software architecture
The following table lists the components of the video software architecture:
| Component | Description |
| --- | --- |
| User application | Interacts with the FileSource for decoder and the Camera Source for encoder based on V4L2/GStreamer |
| V4L2 framework |
Interacts with user application and the Adreno VPU driver
Handles events, callbacks, and buffer management
|
| Adreno VPU driver |
Acts as an entry point to the video kernel mode driver (KMD)
Common driver for the encoder and decoder that controls the Adreno VPU
Manages the video driver state machine, buffer allocation, clock/bus management, and communication with Adreno VPU using the Host Firmware Interface (HFI)
|
| Adreno VPU | Functions as a hardware accelerated engine that performs the video decoding and encoding operations with minimal power consumption |
Last Published: Oct 15, 2024
[Previous Topic
Features](https://docs.qualcomm.com/bundle/publicresource/80-70015-20/topics/features.md) [Next Topic
Interfaces](https://docs.qualcomm.com/bundle/publicresource/80-70015-20/topics/interfaces.md)