Architecture
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
- DECODE_VPP#
Functions that perfom combined operations of decoding and video processing
- 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](../../../../_images/sdk_function_naming_convention.png)
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.