libva的API版本变迁表
主要内容
本文主要介绍libva的各个版本的API的重要的差异,对于其他内容,不做过多介绍。截至2021-4-24日止目前libva的版本libva-2.11.0,最古老的版本应该是libva-1.0.0,本文中描述的libva-1.2代表libva-1.2.0,libva-1.6代表libva-1.6.0,以此类推。下表中“O”代表存在,“X”代表被废弃
VADriverVTable结构体接口
| 接口 | 引入版本 | libva-1.0 | libva-1.3 | libva-1.4 | libva-1.5 | libva-1.6 | libva-1.7 | libva-1.8 | libva-2.0 | libva-2.1 | libva-2.2 | libva-2.3 | libva-2.4 | libva-2.5 | libva-2.6 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| vaTerminate | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaQueryConfigProfiles | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaQueryConfigEntrypoints | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaGetConfigAttributes | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaQueryConfigAttributes | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaCreateSurfaces | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaDestroySurfaces | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaCreateContext | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaDestroyContext | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaCreateBuffer | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaBufferSetNumElements | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaMapBuffer | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaUnmapBuffer | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaDestroyBuffer | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaBeginPicture | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaRenderPicture | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaEndPicture | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaSyncSurface | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaQuerySurfaceStatus | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaQuerySurfaceError | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaPutSurface | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaCreateImage | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaDeriveImage | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaDestroyImage | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaSetImagePalette | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaGetImage | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaPutImage | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaQuerySubpictureFormats | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaCreateSubpicture | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaDestroySubpicture | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaSetSubpictureImage | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaSetSubpictureChromakey | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaSetSubpictureGlobalAlpha | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaAssociateSubpicture | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaDeassociateSubpicture | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaQueryDisplayAttributes | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaGetDisplayAttributes | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaSetDisplayAttributes | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaBufferInfo | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaLockSurface | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaUnlockSurface | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaGetSurfaceAttributes | 1.3 | X | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaCreateSurfaces2 | 1.3 | X | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaQuerySurfaceAttributes | 1.3 | X | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaAcquireBufferHandle | 1.4 | X | X | O | O | O | O | O | O | O | O | O | O | O | O |
| vaReleaseBufferHandle | 1.4 | X | X | O | O | O | O | O | O | O | O | O | O | O | O |
| vaCreateMFContext | 2.1 | X | X | X | X | X | X | X | X | O | O | O | O | O | O |
| vaMFAddContext | 2.1 | X | X | X | X | X | X | X | X | O | O | O | O | O | O |
| vaMFReleaseContext | 2.1 | X | X | X | X | X | X | X | X | O | O | O | O | O | O |
| vaMFSubmit | 2.1 | X | X | X | X | X | X | X | X | O | O | O | O | O | O |
| vaCreateBuffer2 | 2.1 | X | X | X | X | X | X | X | X | O | O | O | O | O | O |
| vaQueryProcessingRate | 2.1 | X | X | X | X | X | X | X | X | O | O | O | O | O | O |
| vaExportSurfaceHandle | 2.1 | X | X | X | X | X | X | X | X | O | O | O | O | O | O |
VADriverVTableTPI结构体接口(libva-2.0及其以后被废弃)
| VAAPI | 引入版本 | libva-1.0 | libva-1.3 | libva-1.4 | libva-1.5 | libva-1.6 | libva-1.7 | libva-1.8 | libva-2.0 | libva-2.1 | libva-2.2 | libva-2.3 | libva-2.4 | libva-2.5 | libva-2.6 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| vaCreateSurfaceFromCIFrame | 1.0 | O | X | X | X | X | X | X | X | X | X | X | X | X | X |
| vaCreateSurfaceFromV4L2Buf | 1.0 | O | X | X | X | X | X | X | X | X | X | X | X | X | X |
| vaCreateSurfacesForUserPtr | 1.0 | O | X | X | X | X | X | X | X | X | X | X | X | X | X |
| vaCreateSurfaceFromKBuf | 1.0 | O | X | X | X | X | X | X | X | X | X | X | X | X | X |
| vaPutSurfaceBuf | 1.0 | O | O | O | O | O | O | O | X | X | X | X | X | X | X |
| vaCreateSurfacesWithAttribute | 1.3 | X | O | O | O | O | O | O | X | X | X | X | X | X | X |
VADriverVTableVPP结构体接口
| VAAPI | 引入版本 | libva-1.0 | libva-1.3 | libva-1.4 | libva-1.5 | libva-1.6 | libva-1.7 | libva-1.8 | libva-2.0 | libva-2.1 | libva-2.2 | libva-2.3 | libva-2.4 | libva-2.5 | libva-2.6 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| vaQueryVideoProcFilters | 1.3 | X | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaQueryVideoProcFilterCaps | 1.3 | X | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaQueryVideoProcPipelineCaps | 1.3 | X | O | O | O | O | O | O | O | O | O | O | O | O | O |
VADriverVTableGLX结构体接口
| VAAPI | 引入版本 | libva-1.0 | libva-1.3 | libva-1.4 | libva-1.5 | libva-1.6 | libva-1.7 | libva-1.8 | libva-2.0 | libva-2.1 | libva-2.2 | libva-2.3 | libva-2.4 | libva-2.5 | libva-2.6 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| vaGetDisplayGLX | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaCreateSurfaceGLX | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaDestroySurfaceGLX | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaCopySurfaceGLX | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
VADriverVTableWayland结构体接口
| VAAPI | 引入版本 | libva-1.0 | libva-1.3 | libva-1.4 | libva-1.5 | libva-1.6 | libva-1.7 | libva-1.8 | libva-2.0 | libva-2.1 | libva-2.2 | libva-2.3 | libva-2.4 | libva-2.5 | libva-2.6 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| vaGetDisplayWl | 1.3 | X | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaGetSurfaceBufferWl | 1.3 | X | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaGetImageBufferWl | 1.3 | X | O | O | O | O | O | O | O | O | O | O | O | O | O |
VADriverVTableEGL结构体接口(libva-2.0及其以后被废弃)
| VAAPI | 引入版本 | libva-1.0 | libva-1.3 | libva-1.4 | libva-1.5 | libva-1.6 | libva-1.7 | libva-1.8 | libva-2.0 | libva-2.1 | libva-2.2 | libva-2.3 | libva-2.4 | libva-2.5 | libva-2.6 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| vaGetEGLClientBufferFromSurface | 1.0 | O | O | O | O | O | O | O | X | X | X | X | X | X | X |
android显示接口
| VAAPI | 引入版本 | libva-1.0 | libva-1.3 | libva-1.4 | libva-1.5 | libva-1.6 | libva-1.7 | libva-1.8 | libva-2.0 | libva-2.1 | libva-2.2 | libva-2.3 | libva-2.4 | libva-2.5 | libva-2.6 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| vaGetDisplay | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaPutSurface | 1.0 | O | O | O | O | O | O | O | O | X | X | X | X | X | X |
DRM显示接口
| VAAPI | 引入版本 | libva-1.0 | libva-1.3 | libva-1.4 | libva-1.5 | libva-1.6 | libva-1.7 | libva-1.8 | libva-2.0 | libva-2.1 | libva-2.2 | libva-2.3 | libva-2.4 | libva-2.5 | libva-2.6 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| vaGetDisplayDRM | 1.3 | X | O | O | O | O | O | O | O | O | O | O | O | O | O |
X11显示接口
| VAAPI | 引入版本 | libva-1.0 | libva-1.3 | libva-1.4 | libva-1.5 | libva-1.6 | libva-1.7 | libva-1.8 | libva-2.0 | libva-2.1 | libva-2.2 | libva-2.3 | libva-2.4 | libva-2.5 | libva-2.6 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| vaGetDisplay | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |
| vaPutSurface | 1.0 | O | O | O | O | O | O | O | O | O | O | O | O | O | O |