Module | Change Description |
NvMedia VIC (nvmedia_2d.h) | NvMedia2DDestroy() API is deprecated and will be removed in a future release. NvMedia2DDestroy() is replaced with NvMedia2DDestroyEx(). Note that NvMedia2DDestroyEx() returns an error that must be checked in client's code. |
Module | Change Description |
NvMedia SIPL Camera (NvSIPLCamera.hpp) | Functions replaced: • Replaced GetE2PHandle()with ReadEEPROMData().GetE2PHandle()is deprecated and removed in this release. • Replaced RecoverLink()with DisableLink()and EnableLink(). |
NvMedia ICP (nvmedia_icp.h) | NvMedia Image Capture Processing (NvMediaICP*) APIs are deprecated and are removed in this release. Use NvMedia SIPL APIs instead. |
NvMedia ISC (nvmedia_isc.h) | NvMedia Image Sensor Control (NvMediaISC*) APIs are deprecated and removed in this release. |
Module | Change Description |
NvMedia SIPL Camera (NvSIPLCamera.hpp), NvMedia Pipeline Manager (NvSIPLPipelineMgr.hpp) | Removed support for registering multiple custom plugins per pipeline and switching between them at runtime. • Removed CUSTOM_ PLUGIN1 from enum PluginType. • Removed InvSIPLCamera::SetISPConfig() API. |
NvMedia SIPL Camera (NvSIPLCamera.hpp) | Deprecate methods to register more than one NvSciSyncObj of type NVMEDIA_EOFSYNCOBJ. These APIs will be removed in a future release. RegisterNvSciSyncObj() SetNvSciSyncObjForEOF() |
NvMedia SIPL Camera (NvSIPLCamera.hpp) | For image and event delivery, use queue-based SetPiplelineCfg() instead of the callback-based version. The following API is deprecated and will be removed in a future release. SetPipelineCfg(std::uint32_t index, const NvSIPLPipelineCfg &pipelineCfg) Instead, use the queue-based API: SetPipelineCfg(std::uint32_t index, const NvSIPLPipelineConfiguration &pipelineCfg, NvSIPLPipelineQueues& queues) |
NvMedia SIPL Camera (NvSIPLCamera.hpp) | NvMedia SIPL now enforces the following API call sequence: SetPlatformCfg() SetPipelineCfg() Init() RegisterImageGroups() RegisterImages() RegisterAutoControlPlugin() Start() Stop() Deinit() |
NvMedia SIPL Camera (NvSIPLCamera.hpp) | Replaced GetE2PHandle()with ReadEEPROMData().GetE2PHandle()is deprecated and will be removed in a future release. |
NvMedia SIPL Client, NvMedia SIPL Camera (NvSIPLClient.hpp, NvSIPLCamera.hpp) | Replaced all references of NvMediaISC* objects to DevBlkISC*. |
NvMedia SIPL Auto Control Plugin (NvSIPLAutoControlPlugin.hpp) | This header file has been replaced by InvSiplControlAuto.hpp. Replace all references to INvSIPLAutoControl by ISiplControlAuto. |
NvMedia SIPL Camera, NvMedia SIPL Client (NvSIPLCamera.hpp, NvSIPLClient.hpp) | Re-architect NvSciStream support for SIPL. The NvSciStream support for SIPL has been re-architected to relocate the producer side of NvSciStream management from the SIPL library to the application. The struct PoolCookies has been removed from the RegisterImageGroups() and RegisterImages() API signatures. If NvSciStream is used for transporting the buffers, ensure that the producer side management is now performed on the application side. |
NvMedia IPP (nvmedia_ipp.h) | NvMedia Image Processing Pipeline (IPP) APIs are deprecated and removed in this release. See NvMedia IPP to SIPL Porting Guide for details. |
NvMedia ACP (nvmedia_acp.h) | NvMedia Auto Control Plugin APIs, which are dependent on NvMedia IPP APIs, have been removed in this release: NvMediaACPCreate() NvMediaACPDestroy() NvMediaACPGetVersionInfo() NvMediaACPProcess() NvMediaBEPCreate() NvMediaBEPDestroy() NvMediaBEPProcessEx() |
NvMedia VCP (nvmedia_vcp.h) | NvMedia Video Capture (NvMediaVideoCapture*) APIs are deprecated and will be removed in a future release. |
NvMedia ISC (nvmedia_isc.h) | NvMedia Image Sensor Control (NvMediaISC*) APIs are deprecated and will be removed in a future release. |
NvMedia ICP (nvmedia_icp.h) | NvMedia Image Capture Processing (NvMediaICP*) APIs are deprecated and will be removed in a future release. Use NvMedia SIPL APIs instead. |
Phase | NvMedia IPP API See nvmipp_raw source for details. | NvMedia SIPL API See nvsipl_camera source for details. |
Initialization | 1. Set up ExtImgDev params. ExtImgDevInit NvMediaIPPManagerCreate NvMediaIPPPipelineCreate 2. Create sensor control component. NvMediaIPPComponentCreateNew(ISC) 3. Create capture component using ExtImgDev properties. NvMediaIPPComponentCreateNew(ICP) NvMediaIPPComponentAddToPipeline 4. Specify the buffer pool properties and ISP output properties. NvMediaIPPComponentCreateNew(ISP 5. Specify the algorithm configuration. NvMediaIPPComponentCreateNew(ALG) 6. Create the output component. NvMediaIPPComponentCreateNew(OUTPUT) 7. Use multiple NvMediaIPPComponentAttach to attach components. | 1. Create INvSIPLCamera instance. INvSIPLCamera::GetInstance 2. Set up Platform config data structure to describe the camera. INvSIPLQuery interfaces can be used to fetch one of the supported platform configurations. INvSIPLCamera::SetPlatformCfg 3. Set pipeline config describing the type of the output (RAW or processed), ISP settings to use, callback handles to receive the output images. INvSIPLCamera::SetPipelineCfg 4. Initialize the camera. INvSIPLCamera::Init 5. Get the image attributes. INvSIPLCamera::GetImageAttributes 6. Allocate buffers using NvSciBuf APIs. Register the buffers with SIPL. INvSIPLCamera::RegisterImageGroups INvSIPLCamera::RegisterImages 7. Register the Auto Control plugin. INvSIPLCamera::RegisterAutoControlPlugin |
Start | 1. Start the pipeline. NvMediaIPPPipelineStart 2. Start ExtImgDev. ExtImgDevStart | 1. Start the camera. INvSIPLCamera::Start |
Runtime | 1. In an application thread: 1a. Get the output from NvMedia IPP. NvMediaIPPComponentGetOutput 1b. Consume the output. 1c. Return the consumed buffer back to IPP. NvMediaIPPComponentReturnOutput | 1. In a callback function implemented by the app and registered with SIPL: 1a. Add a ref count to the buffer. INvSIPLBuffer->AddRef() 1b. Send the buffer to an actual consumer thread. 2. In the consumer thread: 2a. Consume the buffer. 2b. Release the reference. INvSIPLBuffer->Release() |
Phase | NvMedia IPP API See nvmipp_raw source for details. | NvMedia SIPL API See nvsipl_camera source for details. |
Initialization | 1. Set up ExtImgDev params. ExtImgDevInit NvMediaIPPManagerCreate NvMediaIPPPipelineCreate 2. Create the sensor control component. NvMediaIPPComponentCreateNew(ISC) 3. Create file reader component. NvMediaIPPComponentCreateNew(FILE_READER) 4. Specify buffer pool properties and ISP output properties. NvMediaIPPComponentCreateNew(ISP) 5. Specify algorithm configuration. NvMediaIPPComponentCreateNew(ALG) 6. Create output component. NvMediaIPPComponentCreateNew(OUTPUT) 7. Use multiple NvMediaIPPComponentAttach to attach components. | 1. Create INvSIPLCamera instance. INvSIPLCamera::GetInstance 2. Set up Platform config data structure to describe the camera. INvSIPLQuery interfaces can be used to fetch one of the supported platform configurations and modify it for reprocess use case. INvSIPLCamera::SetPlatformCfg 3. Set pipeline config describing the type of the output (RAW or processed), ISP settings to use, callback handles to receive the output images. INvSIPLCamera::SetPipelineCfg 4. Initialize the camera. INvSIPLCamera::Init 5. Get the image attributes. INvSIPLCamera::GetImageAttributes 6. Allocate buffers using NvSciBuf APIs. Register the buffers with SIPL. INvSIPLCamera::RegisterImageGroups INvSIPLCamera::RegisterImages 7. Register the Auto Control plugin. INvSIPLCamera::RegisterAutoControlPlugin |
Start | 1. Start the pipeline. NvMediaIPPPipelineStart 2. Start ExtImgDev. ExtImgDevStart | 1. Start the camera. INvSIPLCamera::Start |
Runtime | 1. In an application thread: 1a. Get the output from NvMedia IPP. NvMediaIPPComponentGetOutput 1b. Consume the output. 1c. Return the consumed buffer back to IPP. NvMediaIPPComponentReturnOutput | 1. In a callback function implemented by app and registered with SIPL: 1a. Add a ref count to the buffer. INvSIPLBuffer->AddRef() 1b. Send the buffer to an actual consumer thread. 2. In the consumer thread: 2a. Consume the buffer. 2b. Release the reference. INvSIPLBuffer->Release() |
Module | Change Description |
NvMedia DLA (nvmedia_dla.h) | The following APIs were removed: NvMediaDlaLoadFromMemory(NvMediaDla const* dla, uint8_t* loadable, uint64_t loadableSize, uint16_t dlaId, uint32_t numOutstandingRequests) NvMediaDlaSubmitTimeout(NvMediaDla const* dla, const NvMediaDlaArgs* inputArgs, NvMediaDlaArgs* outputArgs, uint32_t taskTimeout) NvMediaDlaGetMaxOutstandingRequests( NvMediaDla const* dla, uint32_t* maxOutstandingRequests) |
NvMedia ICP (nvmedia_icp.h) | NvMediaICPReleaseImageGroup() is removed in the safety build and deprecated in the non-safety build. Use NvMediaICPGetImageGroup() instead to achieve the same functionality. For example: retryCount = 0; do { releaseStatus = NvMediaICPGetImageGroup( icpInst, CAPTURE_GET_FRAME_TIMEOUT, &capturedImageGrp); if (releaseStatus == NVMEDIA_STATUS_NONE_PENDING) { /* All buffers have been returned. Capture is paused. */ break; } else if (capturedImageGrp == NULL) { if (++retryCount > CAPTURE_MAX_RETRY) { /* Capture engine is not responding. App needs to be stopped */ } } else { /* An Image Group has been successfully released */ retryCount = 0; } } while (1); |
Module | Change Description |
NvMedia Array nvmedia_array.h | • New header nvmedia_array_nvscibuf.h to support NvStreams Buffer Allocation (NvSciBuf) in array (NvMediaArray). • Use NvSciBuf for NvMediaArray allocation going forward. NvMediaArrayCreate()is deprecated. Support will be removed in a future release. |
NvMedia Common Decode nvmedia_common_decode.h | In struct NvMediaMasteringDisplayData, the data types of the following members are updated from uint32_t (4 bytes) to uint16_t (2 bytes): max_display_parameter_luminance min_display_parameter_luminance The application code is fully backward compatible, but a code recompilation is required to reflect the data type changes. |
NvMedia Core nvmedia_core.h | In enum NvMediaStatus, the following enumeration values have changed: • NVMEDIA_STATUS_UNDEFINED_STATE changed from 12 to 13 • NVMEDIA_STATUS_PFSD_ERROR changed from 13 to 14 These values are not backward compatible with the original values before the 5.1.6.0 release. The application code is fully backward compatible, but a code recompilation is required the reflect the enumeration value changes. |
NvMedia DLA nvmedia_dla.h, nvmedia_dla_nvscisync.h | Added new APIs for Start of Frame (SOF): NvMediaDlaGetSOFNvSciSyncFence ( NvMediaDla const* dla, NvSciSyncObj sofnvscisyncobj, struct NvSciSyncFence* sofnvscisyncfence ) NvMediaDlaSetNvSciSyncObjforSOF ( NvMediaDla* dla, NvSciSyncObj nvscisyncSOF ) • Removed unsupported APIs: NvMediaDlaGetNumOfScratchpads ( NvMediaDla const* dla, int32_t* numOfScratchpads ) NvMediaDlaGetScratchpadDescriptor ( NvMediaDla const* dla, uint32_t const idx, NvMediaDlaScratchpadDescriptor* descriptor ) NvMediaDlaGetNumOfScratchpads ( NvMediaDla const* dla, int32_t* numOfScratchpads ) NvMediaDlaGetScratchpadDescriptor ( NvMediaDla const* dla, uint32_t const idx, NvMediaDlaScratchpadDescriptor* descriptor ) • Removed unsupported member scratchpad from struct NvMediaDlaDataPointer. • Removed unsupported enum NVMEDIA_DLA_DATA_TYPE_CVSCRATCHPAD from NvMediaDlaDataType. • Increased value of NVMEDIA_DLA_MAX_PRENVSCISYNCFENCES from 3U to 8U. |
NvMedia ICP nvmedia_icp.h | • Removed deprecated NvMediaICPWaitForSoF API. Use NvMediaICPGetSOFNvSciSyncFence instead. • Removed enumerated type NvMediaICPCSIErrorType. • Removed csiErrorMask, csiErrorType from NvMediaICPSettings. • Removed NVMEDIA_ICP_ERROR_STATUS_FATAL from NvMediaICPErrorStatus. • Removed NvMediaICPStop and NvMediaICPResume. |
NvMedia IEP nvmedia_iep.h | The following APIs are added to implement frame (NvMedia image) registration and deregistration: NvMediaIEPImageRegister() NvMediaIEPImageUnRegister() |
NvMedia Image Pyramid nvmedia_image_pyramid.h | New header nvmedia_image_pyramid_nvscibuf.h to support NvStreams Buffer Allocation (NvSciBuf) in Image Pyramid (NvMediaImagePyramid). Use NvSciBuf for NvMediaImagePyramid Image Pyramid allocation going forward. NvMediaImagePyramidCreate() is deprecated. Support will be removed in a future release. |
NvMedia ImgDec nvmedia_imgdec.h | The following API is added to implement frame (NvMedia image) deregistration: NvMediaImageDecoderUnRegisterPinnedSurfaces() |
NvMedia IOFST nvmedia_iofst.h | The following APIs are added to implement frame (NvMedia image) registration and deregistration: NvMediaIOFSTImageRegister() NvMediaIOFSTImageUnRegister() The following API is added to get the version: NvMediaIOFSTGetVersion() In struct NvMediaOFSTExternalHintParams, the data type for field meExternalHints has been changed from NvMediaArray* to void*. |
NvMedia ISC nvmedia_isc.h | Removed the functions NvMediaISCGetVersionInfo() and NvMediaISCVersionInfo(). The function NvMediaISCGetVersion() can be used which provides similar functionality. |
NvMedia VidDec nvmedia_viddec.h | The following API is added to implement frame (NvMedia image) deregistration: NvMediaVideoDecoderUnRegisterPinnedSurfaces() |
NvMedia VPI nvmedia_vpi.h | Deleted NvMediaVPICreateProcessStereoPairDescriptor(). Use NvMediaVPICreateStereoPreprocessDescriptor() instead. Deleted NvMediaVPIProcessStereoPairDesc(). Use NvMediaVPIStereoPreprocessDescEx() instead. This function provides improved hint generation and exposes the confidence map. Deleted NvMediaVPIStereoPreprocessDesc(). Use NvMediaVPIStereoPreprocessDescEx() instead. This function generates motion vector hints as a 1-D NvMediaArray instead of a 2-D NvMediaImage. Deleted opaque non-standard array type: NvMediaVPIArrayType The following corresponding functions are deleted: NvMediaVPIArrayCreate() NvMediaVPIArrayGet2DTransform() NvMediaVPIArrayGetAABB() NvMediaVPIArrayGetBoundingBoxWithTransform() NvMediaVPIArrayGetPoint2Df() NvMediaVPIArrayGetTranslationWithScale() NvMediaVPIArrayUpdate2DTransform() NvMediaVPIArrayUpdatePoint2Df() NvMediaVPIArrayUpdateAABB() NvMediaVPIArrayUpdateBoundingBoxWithTransform() NvMediaVPIArrayUpdateTranslationWithScale() Use NvSciBuf with array type NvMediaArray to create a standard NvMedia array, and use NvMediaArrayLock() to lock the array and get a CPU-mapped pointer to it. Use direct reads and writes to access the standard array. In earlier releases, some PVA algorithms use NvMediaVPIArray, which is a non-standard array type understood only by the PVA engine. Changes introduced in this release allow the use of standard array types instead of VPI-specific array types. This change will allow for interoperability with CUDA. These changes have impact on the following algorithms: • Harris Keypoints • FAST Keypoints • KLT • SparseFlowPyrLK Added NvStreams Synchronization (NvSciSync) support in NvMediaVPI with a new header nvmedia_vpi_nvscisync.h. |
Module | Change Description |
NvMedia 2D nvmedia_2d.h | Removed certain header files previously included (by #include…). You may have to include these header files explicitly in your application program to compile it cleanly. Removed the NVMEDIA_2D_BLIT_FLAG_RETURN_CRC symbol. The feature that this symbol refers to is non-functional on fused production boards. |
NvMedia Common nvmedia_common.h, nvmedia_common_encode.h, nvmedia_common_decode.h, nvmedia_common_encode_decode.h | The encode and decode logic in nvmedia_common.h header has been moved into two new headers: • nvmedia_common_encode.h - Contains the video and image encode structures and operations. • nvmedia_common_decode.h - Contains the video and image decode structures and operations. nvmedia_common.h includes both nvmedia_common_encode.h and nvmedia_common_decode.h headers. • nvmedia_common_encode.h and nvmedia_common_decode.h both include the new nvmedia_common_encode_decode.h header which contains common types and declarations. |
NvMedia Core nvmedia_core.h | In enum NvMediaStatus: • Retired the NVMEDIA_STATUS_CANCELLED value. • Added the NVMEDIA_STATUS_PFSD_ERROR value. |
NvMedia IDP nvmedia_idp.h | Retired the following attributes from NvMediaIDPSetAttributes(): NVMEDIA_DISP_ATTR_BRIGHTNESS NVMEDIA_DISP_ATTR_CONTRAST NVMEDIA_DISP_ATTR_SATURATION NVMEDIA_DISP_ATTR_HUE NVMEDIA_DISP_ATTR_COLOR_STANDARD NVMEDIA_DISP_ATTR_LIMITED_RGB Use an alternative technique such as the VIC path instead. |
NvMedia ICP nvmedia_icp.h | The following functions, which operate on NvMediaImage, are deprecated, and are replaced by function which operate on NvMediaImageGroup. • The NvMediaICPFeedFrame() function is deprecated. Use NvMediaICPFeedImageGroup() instead. • The NvMediaICPGetFrameEx() function is deprecated. Use NvMediaICPGetImageGroup() instead. • The NvMediaICPReleaseFrame() function is deprecated. Use NvMediaICPReleaseImageGroup() instead. The following functions are added to implement frame (image group) registration and deregistration: NvMediaICPRegisterImageGroup() NvMediaICPUnRegisterImageGroup() The following enums are added to support more detailed error notification. NvMediaICPCSIErrorType NvMediaICPErrorStatus NvMediaICPCsiInputFrameError NvMediaICPCsiInputStreamError PixelFaultError NvMediaICPFrameFaultError NvMediaICPMemoryWriteError |
NvMedia Image nvmedia_image.h | Removed certain header files previously included (by #include…). You may have to include these header files explicitly in your application program to compile it cleanly. |
NvMedia ISC nvmedia_isc.h | Removed following structures: NvMediaISCTransactionHandle NvMediaISCDriverHandle NvMediaISCSupportFunctions Removed following functions: NvMediaISCCheckPresence() NvMediaISCCheckLink() NvMediaISCSetDefaults() NvMediaISCSetDeviceConfig() NvMediaISCReadParameters() NvMediaISCWriteParameters() NvMediaISCGetErrorStatus() NvMediaISCReadRegister() NvMediaISCWriteRegister() NvMediaISCDumpRegisters() Removed three functions previously used to control sensor exposure, gain and white balance settings: NvMediaISCSetBracketedExposure() NvMediaISCSetExposure() NvMediaISCSetWBGain() Use the new function NvMediaISCSetSensorControl() instead. This function ensures that all the input settings provided are applied together at a frame boundary through the ISC “group hold” functionality, if supported by the sensor. Removed the following members from struct NvMediaISCDeviceDriver: CheckPresence CheckLink SetDefaults SetDeviceConfig ReadParameters WriteParameters GetErrorStatus ReadRegister WriteRegister DumpRegisters Added the following new structures, which provide access to I2C read/write: NvMediaISCDeviceRead NvMediaISCDeviceWrite Modified DriverCreate() to use NvMediaISCDevice instead of NvMediaISCDriverHandle. Modified DriverDestroy() to use NvMediaISCDevice instead of NvMediaISCDriverHandle. Changed the type of struct NvMediaISCEmbeddedDataChunk member lineData to const uint8_t. Changed the type of struct NvMediaISCSensorAttributes member sensorCFA to uint32_t. Removed the NvMediaISCParseEmbeddedData() function for retrieving frame embedded data info. Use the new function NvMediaISCParseEmbedDataInfo() instead. This function provides information like frame CRC and sensor temperature in addition to that provided by the old function. Removed the NvMediaISCGetSensorAttr() function for retrieving sensor static attributes. Use the new function NvMediaISCGetSensorAttributes() instead. This function provides information about sensor static properties like sensor name, exposure-gain ranges supported, and number of active exposures. Removed the NvMediaISCSetCharacterizationAttr() function for programming the sensor in characterization mode. Use the new function NvMediaSetSensorCharMode() instead. |
NvMedia LDC nvmedia_ldc.h | Retired the previously deprecated function NvMediaLDCCreate().Use NvMediaLDCCreateNew() instead. |
NvMedia Surface nvmedia_surface.h | Added NvMediaImageSetTag() and NvMediaImageGetTag() to set and get tags associated with NvMediaImage objects. Deprecated the NvMediaImage struct’s void *tag member. Use NvMediaImageSetTag() and NvMediaImageGetTag() instead. |
NvMedia Video Output nvmedia_vop.h | Retired the following attributes from NvMediaVideoOutputSetAttributes(): NVMEDIA_DISP_ATTR_BRIGHTNESS NVMEDIA_DISP_ATTR_CONTRAST NVMEDIA_DISP_ATTR_SATURATION NVMEDIA_DISP_ATTR_HUE NVMEDIA_DISP_ATTR_COLOR_STANDARD NVMEDIA_DISP_ATTR_LIMITED_RGB Use an alternative technique such as the VIC path instead. |
Module | Change Description |
NvMedia Image 2D nvmedia_2d.h | Deprecated NvMedia2DCopyPlane() function. Use NvMedia2DCopyPlaneNew() instead. NvMedia2DCopyPlane() will be removed in a future release. Deprecated NvMedia2DWeave() function. Use NvMedia2DWeaveNew() instead. NvMedia2DWeave() will be removed in a future release. |