Application Migration to DeepStream 6.0.1 from DeepStream 5.X ============================================================= Major Application Differences with DeepStream 5.X ---------------------------------------------------------- - The `NvBufAudio` structure has been updated. Applications using this structure need to be recompiled. - When measuring frame latency using DeepStream latency APIs if you observe large frame latency numbers in the order of ``10^12`` or ``1e12``, modify the latency measurement code (call to ``nvds_measure_buffer_latency`` API) to :: ... guint num_sources_in_batch = nvds_measure_buffer_latency(buf, latency_info); if (num_sources_in_batch > 0 && latency_info[0].latency > 1e6) { NvDsBatchMeta *batch_meta = gst_buffer_get_nvds_batch_meta (buf); batch_meta->batch_user_meta_list = g_list_reverse (batch_meta->batch_user_meta_list); num_sources_in_batch = nvds_measure_buffer_latency(buf, latency_info); } ... Running DeepStream 5.X compiled Apps in DeepStream 6.0.1 ---------------------------------------------------------- To run the old app from DeepStream 5.X in DeepStream 6.0.1, create `symlinks` of the libraries so the old application can find them.:: mkdir /opt/nvidia/deepstream/deepstream-5.1 mkdir /opt/nvidia/deepstream/deepstream-5.1/lib ln -s /opt/nvidia/deepstream/deepstream-6.0/lib/* /opt/nvidia/deepstream/deepstream-5.1/lib/ Compiling DeepStream 5.1 Apps in DeepStream 6.0.1 --------------------------------------------------- Before compiling DeepStream 5.1 applications in DeepStream 6.0.1, modify the `Makefiles` and set the `NVDS_VERSION` flag to `6.0`. There are two options to compile DeepStream 5.1 in DeepStream 6.0.1: 1. **Option 1**: Replace existing `sources/apps` from DeepStream-6.0.1 and copy the entire `sources/apps` directory from DeepStream-5.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. .. note:: By default, OpenCV is deprecated in DeepStream 6.0. However, you can enable OpenCV in plugins such as ``nvinfer`` (``nvdsinfer``) and ``dsexample`` (``gst-dsexample``) by setting `WITH_OPENCV=1` in the Makefile of these components. Please refer component README for more instructions. Low-level Object Tracker Library Migration from DeepStream 5.1 Apps to DeepStream 6.0.1 --------------------------------------------------------------------------------------- DeepStream 5.1 included three low-level tracker libraries: * ``libnvds_mot_iou.so`` * ``libnvds_mot_klt.so`` * ``libnvds_nvdcf.so`` | All of these three low-level tracker libraries are deprecated in DeepStream 6.0.1, and a unified low-level tracker library is introduced, which is ``libnvds_nvmultiobjecttracker.so``. You'll need to replace the tracker configuration depending on your tracker choice of IOU, NvDCF (w/ perf-oriented setting), NvDCF (w/ accuracy-oriented setting), or DeepSORT. Replace the following: :: #ll-lib-file=/opt/nvidia/deepstream/deepstream/lib/libnvds_mot_iou.so ll-lib-file=/opt/nvidia/deepstream/deepstream/lib/libnvds_mot_klt.so #ll-lib-file=/opt/nvidia/deepstream/deepstream/lib/libnvds_nvdcf.so #ll-config-file=tracker_config.yml with: :: ll-lib-file=/opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so #ll-config-file=config_tracker_IOU.yml ll-config-file=config_tracker_NvDCF_perf.yml #ll-config-file=config_tracker_NvDCF_accuracy.yml #ll-config-file=config_tracker_DeepSORT.yml