VPI - Vision Programming Interface

3.0 Release

Versioning

Declarations of entities to handle VPI versioning. More...

Macros

#define NV_VPI_MAKE_VERSION4(major, minor, patch, tweak)    ((major)*1000000 + (minor)*10000 + (patch)*100 + (tweak))
 Make a VPI version identifier with four components. More...
 
#define NV_VPI_MAKE_VERSION3(major, minor, patch)    NV_VPI_MAKE_VERSION4(major, minor, patch, 0)
 Make a VPI version identifier with three components. More...
 
#define NV_VPI_MAKE_VERSION2(major, minor)    NV_VPI_MAKE_VERSION4(major, minor, 0, 0)
 Make a VPI version identifier with two components. More...
 
#define NV_VPI_MAKE_VERSION1(major)    NV_VPI_MAKE_VERSION4(major, 0, 0, 0)
 Make a VPI version identifier with one component. More...
 
#define NV_VPI_MAKE_VERSION(major, minor, patch, tweak)
 Assemble an integer version from its components. More...
 
#define NV_VPI_VERSION_MAJOR   3
 Major version number component. More...
 
#define NV_VPI_VERSION_MINOR   0
 Minor version number component. More...
 
#define NV_VPI_VERSION_PATCH   11
 Patch version number component. More...
 
#define NV_VPI_VERSION_TWEAK   0
 Tweak version number component. More...
 
#define NV_VPI_VERSION_SUFFIX
 Version suffix. More...
 
#define NV_VPI_VERSION   3001100
 VPI library version. More...
 
#define NV_VPI_VERSION_STRING   "3.0.11"
 VPI library version number represented as a string.
 
#define NV_VPI_VERSION_API
 Selected API version to use. More...
 
#define NV_VPI_VERSION_API_IS(major, minor)    (NV_VPI_MAKE_VERSION(major,minor) == NV_VPI_VERSION_API)
 Conditionally enable code when selected API version is exactly given version. More...
 
#define NV_VPI_VERSION_API_AT_LEAST(major, minor)    (NV_VPI_MAKE_VERSION(major,minor) <= NV_VPI_VERSION_API)
 Conditionally enable code when selected API version is at least given version. More...
 
#define NV_VPI_VERSION_API_AT_MOST(major, minor)    (NV_VPI_MAKE_VERSION(major,minor) >= NV_VPI_VERSION_API)
 Conditionally enable code when selected API version is at most given version. More...
 
#define NV_VPI_VERSION_API_IN_RANGE(min_major, min_minor, max_major, max_minor)    (NV_VPI_VERSION_API_AT_LEAST(min_major, min_minor) && NV_VPI_VERSION_API_AT_MOST(max_major, max_minor))
 Conditionally enable code when selected API version is between two versions. More...
 

Functions

int vpiGetVersion (void)
 Retrieves the library's version number. More...
 

Detailed Description

Declarations of entities to handle VPI versioning.

These utilities allow querying the VPI header and library versions and properly handle VPI forward- or backward-compatibility .

Macro Definition Documentation

◆ NV_VPI_MAKE_VERSION4

#define NV_VPI_MAKE_VERSION4 (   major,
  minor,
  patch,
  tweak 
)     ((major)*1000000 + (minor)*10000 + (patch)*100 + (tweak))

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Make a VPI version identifier with four components.

Parameters
[in]major,minor,patch,tweakVersion components to be converted to a number.
Returns
The numeric version representation.

Definition at line 81 of file Version.h.

◆ NV_VPI_MAKE_VERSION3

#define NV_VPI_MAKE_VERSION3 (   major,
  minor,
  patch 
)     NV_VPI_MAKE_VERSION4(major, minor, patch, 0)

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Make a VPI version identifier with three components.

The tweak version component is considered to be 0.

Parameters
[in]major,minor,patchVersion components to be converted to a number.
Returns
The numeric version representation.

Definition at line 91 of file Version.h.

◆ NV_VPI_MAKE_VERSION2

#define NV_VPI_MAKE_VERSION2 (   major,
  minor 
)     NV_VPI_MAKE_VERSION4(major, minor, 0, 0)

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Make a VPI version identifier with two components.

The patch and tweak version components are considered to be 0.

Parameters
[in]major,minorVersion components to be converted to a number.
Returns
The numeric version representation.

Definition at line 101 of file Version.h.

◆ NV_VPI_MAKE_VERSION1

#define NV_VPI_MAKE_VERSION1 (   major)     NV_VPI_MAKE_VERSION4(major, 0, 0, 0)

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Make a VPI version identifier with one component.

The minor, patch and tweak version components are considered to be 0.

Parameters
[in]majorMajor version component to be converted to a number.
Returns
The numeric version representation.

Definition at line 111 of file Version.h.

◆ NV_VPI_MAKE_VERSION

#define NV_VPI_MAKE_VERSION (   major,
  minor,
  patch,
  tweak 
)

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Assemble an integer version from its components.

This makes it easy to conditionally compile code for different VPI versions, e.g:

#if NV_VPI_VERSION < NV_VPI_MAKE_VERSION(1,0,0)
// code that runs on versions prior 1.0.0
#else
// code that runs on versions after that, including 1.0.0
#endif
Parameters
[in]majorMajor version component, mandatory.
[in]minorMinor version component. If ommitted, it's considered to be 0.
[in]patchPatch version component. If ommitted, it's considered to be 0.
[in]tweakTweak version component. If ommitted, it's considered to be 0.
Returns
The numeric version representation.

Definition at line 131 of file Version.h.

◆ NV_VPI_VERSION_MAJOR

#define NV_VPI_VERSION_MAJOR   3

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Major version number component.

This is incremented every time there's a incompatible ABI change. In the special case of major version 0, compatibility between minor versions is not guaranteed.

Definition at line 143 of file Version.h.

◆ NV_VPI_VERSION_MINOR

#define NV_VPI_VERSION_MINOR   0

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Minor version number component.

This is incremented every time there's a new feature added to VPI that doesn't break backward compatibility. This number is reset to zero when major version changes.

Definition at line 150 of file Version.h.

◆ NV_VPI_VERSION_PATCH

#define NV_VPI_VERSION_PATCH   11

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Patch version number component.

This is incremented every time a bug is fixed, but no new functionality is added to the library. This number is reset to zero when minor version changes.

Definition at line 156 of file Version.h.

◆ NV_VPI_VERSION_TWEAK

#define NV_VPI_VERSION_TWEAK   0

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Tweak version number component.

Incremented for packaging or documentation updates, etc. The library itself isn't updated. Gets reset to zero when patch version changes.

Definition at line 162 of file Version.h.

◆ NV_VPI_VERSION_SUFFIX

#define NV_VPI_VERSION_SUFFIX

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Version suffix.

String appended to version number to designate special builds.

Definition at line 167 of file Version.h.

◆ NV_VPI_VERSION

#define NV_VPI_VERSION   3001100

#include </opt/nvidia/vpi3/include/vpi/Version.h>

VPI library version.

It's an integer value computed from MAJOR*1000000 + MINOR*10000 + PATCH*100 + TWEAK. Integer versions can be compared, recent versions are greater than older ones.

Definition at line 173 of file Version.h.

◆ NV_VPI_VERSION_API

#define NV_VPI_VERSION_API

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Selected API version to use.

This macro selects which of the supported APIs the code will use.

By default this equals to the highest supported API, corresponding to the current major and minor versions of the library.

User can override the version by defining this macro before including VPI headers.

Definition at line 187 of file Version.h.

◆ NV_VPI_VERSION_API_IS

#define NV_VPI_VERSION_API_IS (   major,
  minor 
)     (NV_VPI_MAKE_VERSION(major,minor) == NV_VPI_VERSION_API)

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Conditionally enable code when selected API version is exactly given version.

Parameters
[in]major,minorAPI version that will be considered.

Definition at line 203 of file Version.h.

◆ NV_VPI_VERSION_API_AT_LEAST

#define NV_VPI_VERSION_API_AT_LEAST (   major,
  minor 
)     (NV_VPI_MAKE_VERSION(major,minor) <= NV_VPI_VERSION_API)

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Conditionally enable code when selected API version is at least given version.

Parameters
[in]major,minorMinimum API version that will be considered.

Definition at line 210 of file Version.h.

◆ NV_VPI_VERSION_API_AT_MOST

#define NV_VPI_VERSION_API_AT_MOST (   major,
  minor 
)     (NV_VPI_MAKE_VERSION(major,minor) >= NV_VPI_VERSION_API)

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Conditionally enable code when selected API version is at most given version.

Parameters
[in]major,minorMaximum API version that will be considered.

Definition at line 217 of file Version.h.

◆ NV_VPI_VERSION_API_IN_RANGE

#define NV_VPI_VERSION_API_IN_RANGE (   min_major,
  min_minor,
  max_major,
  max_minor 
)     (NV_VPI_VERSION_API_AT_LEAST(min_major, min_minor) && NV_VPI_VERSION_API_AT_MOST(max_major, max_minor))

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Conditionally enable code when selected API version is between two versions.

Parameters
[in]min_major,min_minorMinimum API version that will be considered.
[in]max_major,max_minorMaximum API version that will be considered.

Definition at line 225 of file Version.h.

Function Documentation

◆ vpiGetVersion()

int vpiGetVersion ( void  )

#include </opt/nvidia/vpi3/include/vpi/Version.h>

Retrieves the library's version number.

The number is represented as a integer. It may differ from NV_VPI_VERSION if header doesn't correspond to VPI binary. This can be used by user's program to handle semantic differences between library versions.