Architecture¶
oneVPL functions fall into the following categories:
- DECODE
Functions that decode compressed video streams into raw video frames
- ENCODE
Functions that encode raw video frames into compressed bitstreams
- VPP
Functions that perform video processing on raw video frames
- CORE
Auxiliary functions for synchronization
- Misc
Global auxiliary functions
With the exception of the global auxiliary functions, oneVPL functions are named after their functioning domain and category. oneVPL exposes video domain functions.

oneVPL function name notation¶
Applications use oneVPL functions by linking with the oneVPL dispatcher library.
![digraph {
rankdir=TB;
Application [shape=record label="Application" ];
Sdk [shape=record label="oneVPL dispatcher library"];
Lib1 [shape=record label="oneVPL library 1 (CPU)"];
Lib2 [shape=record label="oneVPL library 2 (platform 1)"];
Lib3 [shape=record label="oneVPL library 3 (platform 2)"];
Application->Sdk;
Sdk->Lib1;
Sdk->Lib2;
Sdk->Lib3;
}](../../../../_images/graphviz-262dd76ec9d2c127fae2d926c0e385f27c3ea770.png)
oneVPL dispatching mechanism¶
The dispatcher library identifies the hardware acceleration device on the running platform, determines the most suitable platform library for the identified hardware acceleration, and then redirects function calls accordingly.