NVIDIA DRIVE OS Linux API Reference

5.1.3.0 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages

Detailed Description

Blit functions define valid parameters for a blit.

Data Structures

struct  NvMedia2DBlitParameters
 Holds the additional parameters for a blit. More...
 
struct  NvMedia2DBlitParametersOut
 Holds additional values returned from a blit. More...
 

Enumerations

enum  NvMedia2DBlitFlags { NVMEDIA_2D_BLIT_FLAG_RETURN_CRC = (1u << 0) }
 Specifies operation flags that affect blit behavior. More...
 
enum  NvMedia2DBlitParamField {
  NVMEDIA_2D_BLIT_PARAMS_FILTER = (1u << 0),
  NVMEDIA_2D_BLIT_PARAMS_FLAGS = (1u << 1),
  NVMEDIA_2D_BLIT_PARAMS_DST_TRANSFORM = (1u << 2),
  NVMEDIA_2D_BLIT_PARAMS_COLOR_STD = (1u << 3)
}
 Specifies bit-mask for NvMedia2DBlitParameters::validFields. More...
 

Functions

NvMedia2DNvMedia2DCreate (NvMediaDevice *device)
 Creates a 2D object. More...
 
void NvMedia2DDestroy (NvMedia2D *i2d)
 Destroys a 2D object. More...
 
NvMediaStatus NvMedia2DBlitEx (NvMedia2D *i2d, NvMediaImage *dstSurface, const NvMediaRect *dstRect, NvMediaImage *srcSurface, const NvMediaRect *srcRect, const NvMedia2DBlitParameters *params, NvMedia2DBlitParametersOut *paramsOut)
 Performs a 2D blit operation with supplementary return values. More...
 
NvMediaStatus NvMedia2DCopyPlaneNew (NvMedia2D *i2d, NvMediaImage *dstSurface, uint32_t dstPlane, NvMediaImage *srcSurface, uint32_t srcPlane)
 Copies a plane of a YUV image to another YUV image. More...
 

Enumeration Type Documentation

Specifies operation flags that affect blit behavior.

Enumerator
NVMEDIA_2D_BLIT_FLAG_RETURN_CRC 

Specifies compute and return CRC value.

Definition at line 62 of file nvmedia_2d.h.

Specifies bit-mask for NvMedia2DBlitParameters::validFields.

Enumerator
NVMEDIA_2D_BLIT_PARAMS_FILTER 

Specifies enable use of stretch filter.

NVMEDIA_2D_BLIT_PARAMS_FLAGS 

Specifies enable use of blit flags.

NVMEDIA_2D_BLIT_PARAMS_DST_TRANSFORM 

Specifies enable use of destination transform.

NVMEDIA_2D_BLIT_PARAMS_COLOR_STD 

Specifies enable use of color space conversion standard.

Definition at line 78 of file nvmedia_2d.h.

Function Documentation

NvMediaStatus NvMedia2DBlitEx ( NvMedia2D i2d,
NvMediaImage dstSurface,
const NvMediaRect dstRect,
NvMediaImage srcSurface,
const NvMediaRect srcRect,
const NvMedia2DBlitParameters params,
NvMedia2DBlitParametersOut paramsOut 
)

Performs a 2D blit operation with supplementary return values.

A blit transfers pixels from a source surface to a destination surface, applying a variety of transformations to the pixel values on the way. Note that for a YUV surface type with 16-bit depth, only scale and crop are supported. Format conversion is not supported.

The interface aims at making the typical uses of normal pixel copy easy, by not mandating the setting of advanced blit parameters unless they are actually required.

Passing in NULL as params invokes a standard pixel copy blit without additional transformations. If the dimensions of the source rectangle do not match the dimensions of the destination rectangle, pixels are scaled to fit the destination rectangle. The filtering mode for the scale defaults to NVMEDIA_2D_STRETCH_FILTER_LOW. Additional filtering modes are available by setting the corresponding parameter in NvMedia2DBlitParameters.

Passing in NULL as srcRect defaults to a source rectangle the size of the full source surface, likewise for dstRect and the destination surface.

If paramsOut is not NULL, the blit operation stores supplementary return values for the blit to the structure pointed to by paramsOut, if applicable. If paramsOut is NULL, no supplementry information is returned.

Supplementary values are returned when using the blit flag:

NVMEDIA_2D_BLIT_FLAG_RETURN_CRC returns a CRC value of blitted pixels.

A straight pixel copy between surfaces of the same dimensions (but not necessarily the same bit depth or even color format) is performed by:

NvMedia2DBlitEx(i2d, dst, NULL, src, NULL, NULL, NULL);
Parameters
[in]i2dA pointer to a i2d Image 2D object.
[in]dstSurfaceA pointer to a destination surface.
[in]dstRectA pointer to a destination rectangle. For a YUV surface type with 16-bit depth, the x0 and y0 of dstRect must be 0.
[in]srcSurfaceA pointer to a source surface.
[in]srcRectA pointer to a source rectangle.
[in]paramsA pointer to parameters.
[out]paramsOutA pointer to returned parameters.
Returns
NvMediaStatus, the completion status of the operation: NVMEDIA_STATUS_OK if succcessful, or NVMEDIA_STATUS_BAD_PARAMETER if any mandatory pointer is invalid.
NvMediaStatus NvMedia2DCopyPlaneNew ( NvMedia2D i2d,
NvMediaImage dstSurface,
uint32_t  dstPlane,
NvMediaImage srcSurface,
uint32_t  srcPlane 
)

Copies a plane of a YUV image to another YUV image.

The source and the destination must have the same format.

Parameters
[in]i2dNvMedia 2D device handle.
[in]dstSurfaceA pointer to a destination surface.
[in]dstPlaneDestination plane.
[in]srcSurfaceA pointer to the source surface.
[in]srcPlaneSource plane.
Returns
NvMediaStatus, the completion status of the operation:
NvMedia2D* NvMedia2DCreate ( NvMediaDevice device)

Creates a 2D object.

Parameters
[in]deviceA pointer to the NvMediaDevice device this 2D object will use.
Returns
NvMedia2D, the new 2D object's handle if successful, or NULL otherwise.
void NvMedia2DDestroy ( NvMedia2D i2d)

Destroys a 2D object.

Parameters
[in]i2dA pointer to the 2D object to destroy.
Returns
void