Application Migration to DeepStream 5.0 from DeepStream 4.X


The data type of bounding box coordinates is changed from int to float in DeepStream 5.0. Applications accessing bounding box coordinates (NvOSD_RectParams) need to take care of this change. We recommend recompilation of all the Applications to avoid any ABI incompatibility issues.

Major Application Differences with DeepStream 4.X

  1. The data type of bounding box coordinates (NvOSD_RectParams) is now set to float from int, for better precision. Writing KITTI data output functionality is changed accordingly. To read/write bounding box coordinates, use the float data type.

  2. Calculation of NTP timestamps has been moved from reference apps into the SDK components. See NTP Timestamp in DeepStream for more information on NTP timestamps.

Running DeepStream 4.x compiled Apps in DeepStream 5.0

To run the old app from DeepStream 4.x in DeepStream 5.0, first we need to create symlinks of the libraries so the old application can find them.:

mkdir /opt/nvidia/deepstream/deepstream-4.0
mkdir /opt/nvidia/deepstream/deepstream-4.0/lib
ln -s /opt/nvidia/deepstream/deepstream-5.0/lib/* /opt/nvidia/deepstream/deepstream-4.0/lib/

Compiling DeepStream 4.X Apps in DeepStream 5.0

Before compiling DeepStream 4.X applications in DeepStream 5.0, modify the Makefiles to set the NVDS_VERSION flag to 5.0. There are two options to compile DeepStream 4.X in DeepStream 5.0:

  1. Option 1: Replace existing sources/apps from DeepStream-5.0 and copy entire sources/apps directory from DeepStream-4.X

  2. Option 2 : Individual applications in DeepStream SDK have dependency on sources under apps-common directory. Ideally, to compile those applications, you must use the same version of apps-common. But in case you want to use the latest version, you may need to adjust some application function calls because of a change in application function definitions.

For example:

  1. parse_sink ()

  2. enable_perf_measurement()

  3. parse_streammux()

  4. Makefile changes as required

  5. Remove references to rtcp_sender_report_callback since all NTP calculation functionality has been moved inside SDK. It is also advisable to remove any NTP calculations from the apps and use NTP timestamps provided by the SDK unless the app has any custom NTP calculation logic.