NVIDIA DRIVE OS Linux SDK API Reference

5.1.12.0 Release

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

Detailed Description

Defines IPP component-related structures and functions.

Data Structures

struct  NvMediaIPPBufferPoolParamsNew
 Holds new buffer pool parameters for initializing an IPP component. More...
 
struct  NvMediaIPPBufferPoolParamsImgGrp
 Holds image group buffer pool parameters for initializing an IPP component. More...
 
struct  NvMediaIPPIcpComponentConfig
 Holds configuration for an ICP component. More...
 
struct  NvMediaIPPFileReaderComponentConfig
 Holds configuration information for a file reader component. More...
 
struct  NvMediaIPPIscComponentConfig
 Holds configuration information for an ISC component. More...
 
struct  NvMediaIPPIspComponentConfig
 Holds configuration information for an ISP component. More...
 
struct  NvMediaIPPControlAlgorithmComponentConfig
 Holds configuration information for a Control Algorithm component. More...
 
struct  NvMediaIPPComponentOutput
 Holds a handle representing an IPP component output object. More...
 
struct  NvMediaIPPComponentOutputImgGrp
 Holds a handle representing an IPP component output object. More...
 

Macros

#define NVMEDIA_IPP_ISP_OUTPUT2_MODE_MASK   (7 << 4)
 Bit mask for NVMEDIA_IPP_ISP_OUTPUT2_MODE_X values. More...
 
#define NVMEDIA_IPP_ISP_OUTPUT2_MODE_NONE   0
 

Typedefs

typedef NvMediaStatus(* NvMediaIPPImgGrpReadCallback )(void *clientContext, NvMediaImageGroup *imageGroup)
 Defines the prototype for the file-reader image-read callback function. More...
 

Enumerations

enum  NvMediaIPPPortType {
  NVMEDIA_IPP_PORT_IMAGE_1,
  NVMEDIA_IPP_PORT_IMAGE_2,
  NVMEDIA_IPP_PORT_STATS_1,
  NVMEDIA_IPP_PORT_SENSOR_CONTROL_1,
  NVMEDIA_IPP_PORT_IMAGE_CAPTURE_AGGREGATE
}
 Specifies IPP port types. More...
 
enum  NvMediaIPPIspAttrFlags {
  NVMEDIA_IPP_ISP_MODE_NONHDR = (1 << 0),
  NVMEDIA_IPP_ISP_SINGLE_PIPELINE_MODE = (1 << 1),
  NVMEDIA_IPP_ISP_OUTPUT2_MODE_1 = (1 << 4),
  NVMEDIA_IPP_ISP_OUTPUT2_MODE_2 = (2 << 4),
  NVMEDIA_IPP_ISP_OUTPUT2_MODE_3 = (3 << 4),
  NVMEDIA_IPP_ISP_OUTPUT2_MODE_4 = (4 << 4),
  NVMEDIA_IPP_ISP_OUTPUT2_MODE_5 = (5 << 4)
}
 Specifies IPP ISP attribute flags. More...
 
enum  NvMediaIPPMetadataType {
  NVMEDIA_IPP_METADATA_IMAGE_INFO,
  NVMEDIA_IPP_METADATA_CONTROL_PROPERTIES,
  NVMEDIA_IPP_METADATA_DYNAMIC_PROPERTIES,
  NVMEDIA_IPP_METADATA_EMBEDDED_DATA_ISC,
  NVMEDIA_IPP_METADATA_EMBEDDED_DATA_TOP,
  NVMEDIA_IPP_METADATA_EMBEDDED_DATA_BOTTOM,
  NVMEDIA_IPP_METADATA_MAX_TYPES
}
 Specifies metadata types. More...
 

Functions

uint32_t NvMediaIPPMetadataGetSize (void *metadata, NvMediaIPPMetadataType type)
 Gets the size of the specified metadata type. More...
 
NvMediaStatus NvMediaIPPMetadataGet (void *metadata, NvMediaIPPMetadataType type, void *buffer, uint32_t size)
 Gets the data of the specified metadata type. More...
 
NvMediaStatus NvMediaIPPMetadataGetAddress (void *metadata, NvMediaIPPMetadataType type, void **buffer, uint32_t *size)
 Gets the address of the data of the specified metadata type. More...
 
NvMediaIPPComponentNvMediaIPPComponentCreateNew (NvMediaIPPPipeline *ippPipeline, NvMediaIPPComponentType componentType, NvMediaIPPBufferPoolParamsNew **bufferPools, void *componentConfig)
 Creates an IPP component object for image group processing. More...
 
NvMediaIPPComponentNvMediaIPPComponentCreateImgGrp (NvMediaIPPPipeline *ippPipeline, NvMediaIPPComponentType componentType, NvMediaIPPBufferPoolParamsImgGrp **bufferPools, void *componentConfig)
 Creates an IPP component object for image group processing. More...
 
NvMediaStatus NvMediaIPPComponentAddToPipeline (NvMediaIPPPipeline *ippPipeline, NvMediaIPPComponent *ippComponent)
 Adds an IPP component to a pipeline. More...
 
NvMediaStatus NvMediaIPPComponentAttach (NvMediaIPPPipeline *ippPipeline, NvMediaIPPComponent *srcComponent, NvMediaIPPComponent *dstComponent, NvMediaIPPPortType portType)
 Attaches an output port of an IPP source component to an input port of a destination component. More...
 
NvMediaStatus NvMediaIPPComponentGetOutput (NvMediaIPPComponent *component, uint32_t millisecondTimeout, NvMediaIPPComponentOutput *output)
 Gets output from a component. More...
 
NvMediaStatus NvMediaIPPComponentReturnOutput (NvMediaIPPComponent *component, NvMediaIPPComponentOutput *output)
 Returns output to a component. More...
 
NvMediaStatus NvMediaIPPComponentGetOutputImgGrp (NvMediaIPPComponent *component, uint32_t millisecondTimeout, NvMediaIPPComponentOutputImgGrp *output)
 Gets image group output from a component. More...
 
NvMediaStatus NvMediaIPPComponentReturnOutputImgGrp (NvMediaIPPComponent *component, NvMediaIPPComponentOutputImgGrp *output)
 Returns image group output to a component. More...
 
void NvMediaIPPComponentDestroy (NvMediaIPPComponent *ippComponent)
 Destroys an IPP component object. More...
 

Macro Definition Documentation

#define NVMEDIA_IPP_ISP_OUTPUT2_MODE_MASK   (7 << 4)

Bit mask for NVMEDIA_IPP_ISP_OUTPUT2_MODE_X values.

Definition at line 1153 of file nvmedia_ipp.h.

#define NVMEDIA_IPP_ISP_OUTPUT2_MODE_NONE   0

Definition at line 1154 of file nvmedia_ipp.h.

Typedef Documentation

typedef NvMediaStatus(* NvMediaIPPImgGrpReadCallback)(void *clientContext, NvMediaImageGroup *imageGroup)

Defines the prototype for the file-reader image-read callback function.

The client must create a callback function with the same function signature. The IPP File Reader component calls that function to read an image into the framework. The component passes a pointer to an area that holds the entire image/frame.

Parameters
[in]clientContextA pointer to the client's context.
[in]imageGroupA pointer to the image group that the function is to read.
Returns
NvMediaStatus, the completion status of the operation: NVMEDIA_STATUS_OK if successful, or NVMEDIA_STATUS_ERROR otherwise.

Definition at line 1124 of file nvmedia_ipp.h.

Enumeration Type Documentation

Specifies IPP ISP attribute flags.

Enumerator
NVMEDIA_IPP_ISP_MODE_NONHDR 

Indicates a NON-HDR ISP pipeline must be set in the ISP component.

NVMEDIA_IPP_ISP_SINGLE_PIPELINE_MODE 

Indicates the single ISP pipeline mode is enabled.

NVMEDIA_IPP_ISP_OUTPUT2_MODE_1 

Indicates the second ISP output mode 1 is selected.

NVMEDIA_IPP_ISP_OUTPUT2_MODE_2 

Indicates the second ISP output mode 2 is selected.

NVMEDIA_IPP_ISP_OUTPUT2_MODE_3 

Indicates the second ISP output mode 3 is selected.

NVMEDIA_IPP_ISP_OUTPUT2_MODE_4 

Indicates the second ISP output mode 4 is selected.

NVMEDIA_IPP_ISP_OUTPUT2_MODE_5 

Indicates the second ISP output mode 5 is selected.

Definition at line 1160 of file nvmedia_ipp.h.

Specifies metadata types.

Enumerator
NVMEDIA_IPP_METADATA_IMAGE_INFO 

Specifies image information.

Data corresponds to NvMediaIPPImageInformation.

NVMEDIA_IPP_METADATA_CONTROL_PROPERTIES 

Specifies control properties.

Data corresponds to NvMediaIPPPropertyControls.

NVMEDIA_IPP_METADATA_DYNAMIC_PROPERTIES 

Specifies dynamic properties.

Data corresponds to NvMediaIPPPropertyDynamic.

NVMEDIA_IPP_METADATA_EMBEDDED_DATA_ISC 

Specifies embedded data.

Data corresponds to NvMediaISCEmbeddedData. The top and bottom embedded lines are not provided. To get them, use NVMEDIA_IPP_METADATA_EMBEDDED_DATA_TOP and NVMEDIA_IPP_METADATA_EMBEDDED_DATA_BOTTOM.

NVMEDIA_IPP_METADATA_EMBEDDED_DATA_TOP 

Specifies the top embedded line whose size and base register are defined by the size and baseRegAddress fields of NvMediaISCEmbeddedDataBuffer.

NVMEDIA_IPP_METADATA_EMBEDDED_DATA_BOTTOM 

Specifies the bottom embedded line whose size and base register are defined by the size and baseRegAddress fields of NvMediaISCEmbeddedDataBuffer.

NVMEDIA_IPP_METADATA_MAX_TYPES 

Specifies the number of metadata types.

Definition at line 1215 of file nvmedia_ipp.h.

Specifies IPP port types.

Enumerator
NVMEDIA_IPP_PORT_IMAGE_1 

Image port 1.

NVMEDIA_IPP_PORT_IMAGE_2 

Specifies image port 2.

NVMEDIA_IPP_PORT_STATS_1 

Specifies statistics port 1.

NVMEDIA_IPP_PORT_SENSOR_CONTROL_1 

Specifies sensor control port 1.

NVMEDIA_IPP_PORT_IMAGE_CAPTURE_AGGREGATE 

Specifies capture port for aggregate images.

Definition at line 1030 of file nvmedia_ipp.h.

Function Documentation

NvMediaStatus NvMediaIPPComponentAddToPipeline ( NvMediaIPPPipeline ippPipeline,
NvMediaIPPComponent ippComponent 
)

Adds an IPP component to a pipeline.

When a component is created, it belongs to its parent pipeline. In some cases, however, a component must belong to multiple pipelines. Only the capture component can be added to multiple pipelines because it handles aggregated images that are sent to different pipelines.

Parameters
[in]ippPipelineA pointer to the NvMedia IPP pipeline to which the component is to be added.
[in]ippComponentThe IPP component's handle.
Returns
NvMediaStatus, the completion status of the operation: NVMEDIA_STATUS_OK if successful, or NVMEDIA_STATUS_ERROR otherwise.
NvMediaStatus NvMediaIPPComponentAttach ( NvMediaIPPPipeline ippPipeline,
NvMediaIPPComponent srcComponent,
NvMediaIPPComponent dstComponent,
NvMediaIPPPortType  portType 
)

Attaches an output port of an IPP source component to an input port of a destination component.

Parameters
[in]ippPipelineA pointer to the NvMedia IPP pipeline to which the components belong.
[in]srcComponentA pointer to the source component.
[in]dstComponentA pointer to the destination component.
[in]portTypeSpecifies the type of ports to be attached. The components are compatible only if the source has an output port and the destination has an input port of this type.
Returns
NvMediaStatus, the completion status of the operation: NVMEDIA_STATUS_OK if successful, or NVMEDIA_STATUS_ERROR otherwise.
NvMediaIPPComponent* NvMediaIPPComponentCreateImgGrp ( NvMediaIPPPipeline ippPipeline,
NvMediaIPPComponentType  componentType,
NvMediaIPPBufferPoolParamsImgGrp **  bufferPools,
void *  componentConfig 
)

Creates an IPP component object for image group processing.

This function creates a component and its thread and associates it with a pipeline.

After the component is created it is not attached to any other component. The NvMediaIPPComponentAttach() function must be called to create the desired pipeline.

Creating a component requires a component type, buffer pools, and a configuration.

Parameters
[in]ippPipelineA pointer to the NvMedia IPP pipeline to which the component belongs.
[in]componentTypeType of the component. Currently the following types are supported:
[in]bufferPoolsA pointer to a NULL terminated list of pointers to image group buffer pool parameters.
[in]componentConfigA pointer to a component specific configuration.
Returns
NvMediaIPPComponent, the new IPP component's handle if successful, or NULL otherwise.
NvMediaIPPComponent* NvMediaIPPComponentCreateNew ( NvMediaIPPPipeline ippPipeline,
NvMediaIPPComponentType  componentType,
NvMediaIPPBufferPoolParamsNew **  bufferPools,
void *  componentConfig 
)

Creates an IPP component object for image group processing.

This function creates a component and its thread and associates it with a pipeline.

After the component is created it is not attached to any other component. The NvMediaIPPComponentAttach() function must be called to create the desired pipeline.

Creating a component requires a component type, buffer pools, and a configuration.

Parameters
[in]ippPipelineA pointer to the NvMedia IPP pipeline to which the component belongs.
[in]componentTypeType of the component. Currently the following types are supported:
[in]bufferPoolsA pointer to a NULL terminated list of pointers to new buffer pool parameters.
[in]componentConfigA pointer to a component specific configuration.
Returns
NvMediaIPPComponent, the new IPP component's handle if successful, or NULL otherwise.
void NvMediaIPPComponentDestroy ( NvMediaIPPComponent ippComponent)

Destroys an IPP component object.

This function destroys an IPP component object and its thread.

When the pipeline is destroyed with NvMediaIPPPipelineDestroy(), all components created with this pipeline handle are also destroyed.

Parameters
[in]ippComponentA pointer to the IPP component object to destroy.
Returns
void
NvMediaStatus NvMediaIPPComponentGetOutput ( NvMediaIPPComponent component,
uint32_t  millisecondTimeout,
NvMediaIPPComponentOutput output 
)

Gets output from a component.

Works only with a NVMEDIA_IPP_COMPONENT_OUTPUT component.

If the frame is not available the function blocks until the frame becomes available or the timeout expires. When processing is complete, the client must return the frame by calling NvMediaIPPComponentReturnOutput().

Parameters
[in]componentComponent handle.
[in]millisecondTimeoutTime-out in milliseconds. Use NVMEDIA_IMAGE_TIMEOUT_INFINITE for infinite timeout.
[out]outputA pointer to the output structure which the component is to fill.
Returns
NvMediaStatus, the completion status of the operation:
NvMediaStatus NvMediaIPPComponentGetOutputImgGrp ( NvMediaIPPComponent component,
uint32_t  millisecondTimeout,
NvMediaIPPComponentOutputImgGrp output 
)

Gets image group output from a component.

Only the NVMEDIA_IPP_COMPONENT_OUTPUT supports this functionality.

Parameters
[in]componentComponent handle.
[in]millisecondTimeoutTime-out in milliseconds. Use NVMEDIA_IMAGE_TIMEOUT_INFINITE for an infinite timeout.
[out]outputA pointer to the output structure to be filled by the component.
Returns
NvMediaStatus, the completion status of the operation:
NvMediaStatus NvMediaIPPComponentReturnOutput ( NvMediaIPPComponent component,
NvMediaIPPComponentOutput output 
)

Returns output to a component.

Only a NVMEDIA_IPP_COMPONENT_OUTPUT component may be used.

This function must be called for each output structure obtained by a call to NvMediaIPPComponentGetOutput(). In the output structure, only the image member must be set. When an image is returned, the associated metadata is destroyed.

The client application must return all the images that were obtained from the output component. The images need not be returned in the order they were obtained, though. Thus the client application may hold on to a buffer for processing after it has released some buffers that were obtained later.

Note
The source component needs more buffers for output in the buffer pool if the images are returned out of order. If the source component does not have enough buffer for capturing or processing, pipeline errors may result.
Parameters
[in]componentComponent handle.
[out]outputA pointer to the output structure to be returned.
Returns
NvMediaStatus, the completion status of the operation: NVMEDIA_STATUS_OK if successful, or NVMEDIA_STATUS_ERROR otherwise.
NvMediaStatus NvMediaIPPComponentReturnOutputImgGrp ( NvMediaIPPComponent component,
NvMediaIPPComponentOutputImgGrp output 
)

Returns image group output to a component.

Only the NVMEDIA_IPP_COMPONENT_OUTPUT supports this functionality. This function must be called for each output structure received by NvMediaIPPComponentGetOutput().

Parameters
[in]componentComponent handle.
[out]outputA pointer to an output structure to be returned.
Returns
NvMediaStatus, the completion status of the operation: NVMEDIA_STATUS_OK if successful, or NVMEDIA_STATUS_ERROR otherwise.
NvMediaStatus NvMediaIPPMetadataGet ( void *  metadata,
NvMediaIPPMetadataType  type,
void *  buffer,
uint32_t  size 
)

Gets the data of the specified metadata type.

Parameters
[in]metadataA pointer to the buffer holding the metadata.
[in]typeType of the requested metadata.
[out]bufferA pointer to the destination buffer.
[in]sizeThe size of the requested data.
Returns
NvMediaStatus, the completion status of the operation: NVMEDIA_STATUS_OK if successful, or NVMEDIA_STATUS_ERROR if the size does not match the returned size from NvMediaIPPMetadataGetSize().
NvMediaStatus NvMediaIPPMetadataGetAddress ( void *  metadata,
NvMediaIPPMetadataType  type,
void **  buffer,
uint32_t *  size 
)

Gets the address of the data of the specified metadata type.

Parameters
[in]metadataA pointer to a buffer holding the metadata.
[in]typeType of the requested metadata.
[out]bufferA pointer to a pointer into the metadata. The function stores the address of the specified type of metadata in it.
[out]sizeA pointer to the size of the area allocated for the specified type of metadata in the meta data buffer; in other words, the size of the area indicated by buffer.
Returns
NvMediaStatus, the completion status of the operation: NVMEDIA_STATUS_OK if successful, or NVMEDIA_STATUS_ERROR otherwise.
uint32_t NvMediaIPPMetadataGetSize ( void *  metadata,
NvMediaIPPMetadataType  type 
)

Gets the size of the specified metadata type.

Parameters
[in]metadataA pointer to a buffer holding metadata.
[in]typeType of the requested metadata.
Returns
The size.