Application Migration to DeepStream 5.0 from DeepStream 4.X ============================================================= .. note:: 1. 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. 2. The definition of `NvDsInferParseDetectionParams` structure has changed. Applications using initializer-lists to initialize the structure should instead initialize individual members in the structure. 3. To run the old apps from DeepStream 4.x with DeepStream 5.1, change directory name from `deepstream-5.0` to `deepstream-5.1` 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 happens within the SDK components instead of reference apps. See :doc:`\DS_NTP_Timestamp` 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, 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` and 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 the 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`. 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 the 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.