Releases: prominenceai/deepstream-services-library
v0.27.alpha
v0.26.a.alpha
v0.26.alpha
v0.25.alpha
v0.25.alpha adds a new Preprocessor component, Infer API updates, and several important bug fixes
Highlights
- New Preprocessor Component providing a custom library interface for preprocessing on input streams. See #785
- New PGIE APIs to enable input-tensor-meta from the new Preprocessor component See #803
- Updated ODE File Action to support the MOT Challenge format. See #799
- New Makefile to build each of the CPP examples into separate executable.
Issues (enhancements) closed in this release
- Implement new Preprocessor component - API and Services #785
- Refactor and update Infer API and InferBintr to support new Preprocessor Component #803
- Create Makefile and README for building and executing the CPP examples #787
- Implement new service for text-based display types - dsl_display_type_rgba_text_shadow_add #797
- Refactor ODE File Action and add format option for MOT Challenge Format. #799
- Implement new services to add/remove a TilerBintr to/from the output of a Pipelines's Stream-Muxer #811
Issues (bugs) closed in this release
- undefined function cv::Mat::Mat() , Error while building #805
- Fix gap in object traces - between previous and current - for ODE Cross Trigger #796
- [critical] ODE Heat-mapper crashes if object's x, or y coordinate is equal to window width or height #809
New Symbolic Constants
New ODE File Action Format for the MOT Challenge format see #799
DSL_EVENT_FILE_FORMAT_MOTC
New Return Codes in this release
The following return codes are used by the new Preprocessor API
DSL_RESULT_PREPROC_RESULT
DSL_RESULT_PREPROC_NAME_NOT_UNIQUE
DSL_RESULT_PREPROC_NAME_NOT_FOUND
DSL_RESULT_PREPROC_CONFIG_FILE_NOT_FOUND
DSL_RESULT_PREPROC_THREW_EXCEPTION
DSL_RESULT_PREPROC_IN_USE
DSL_RESULT_PREPROC_SET_FAILED
DSL_RESULT_PREPROC_IS_NOT_PREPROC
New services in this release
New Preprocessor API:
dsl_preproc_new
dsl_preproc_config_file_get
dsl_preproc_config_file_set
dsl_preproc_enabled_get
dsl_preproc_enabled_set
dsl_preproc_unique_id_get
New Infer services:
dsl_infer_batch_size_get
dsl_infer_batch_size_set
dsl_infer_gie_tensor_meta_settings_get
dsl_infer_gie_tensor_meta_settings_set
New Pipeline-Stream-Muxer services:
dsl_pipeline_streammux_tiler_add
dsl_pipeline_streammux_tiler_remove
New Display-Type service
dsl_display_type_rgba_text_shadow_add
New Examples in this release
v0.24.alpha
v0.24.alpha Introduces new Images Sources, an ODE Cross Trigger, an ODE Accumulator, an ODE Heat-Mapper, and a new ODE Monitor Action.
Highlights
- There are now three (3) Images Sources, Single-Image, Multi-Image, and Image-Stream (Note: the Image-Stream can only be used with an Image Player at this time). See #737.
- The release includes six (6) new RGBA Color Types, most of which are dynamic and can be updated based on certain events or under client control. #745.
- There is a new ODE Cross Trigger for triggering on the occurrence that a Tracked Object crosses the Trigger's Line, Multi-Line, or Polygon Area. See #741.
- A new ODE Accumulator that can be added to any ODE Trigger to accumulate ODE Occurrences over all frames has been developed to replace the single purpose ODE Accumulation Trigger which worked on new object instances only. See #748.
- An ODE Occurrence Heat-Mapper has been added to accumulate, map, and display ODE occurrences based on location within the source frame over time. #761.
- A new ODE Monitor Action, that calls on a client provided callback function with a structure of complete ODE occurrence data can now added to any of the ODE Triggers. See #764
Issues (enhancements) closed in this release
- Implement new ODE Monitor Action to monitor ODE Occurrences with a client callback function. #764
- Implement new ODE Heat-Mapper API - New object to overlay a heat-map of ODE Occurrences #761
- Implement new RGBA Multi-Line Display Type #740
- Implement new ODE Mulit-Line Area created with the new RGBA Multi-Line Display Type. #742
- Add services to the ODE PPH to get/set the number of Display Meta structs to allocate per-frame #743
- Implement new ODE Cross Trigger to trigger on objects crossing an ODE Area #741
- Implement new RGBA Color Display Types - Static and Dynamic #745
- Implement new ODE Accumulator API - New object to accumulate ODE Metrics over consecutive frames #748
- Eliminate/remove the ODE Accumulation Trigger to be replaced by new ODE Accumulator #749
- Extend ODE Trigger components to support new ODE Accumulator implementation #750
- Add Tracker Confidence data to all ODE Actions that output Object Metadata #752
- Implement new ODE Trigger services to get/set minimum tracker confidence as criteria for ODE Occurrence #754
- Rename current Image-Source component to Image-Stream-Source #736
- Create new "Image Source" and "Multi Image Source" components #737
Issues (bugs) closed in this release
- Refactor/fix SinkBintr "sync" attribute get/set services. #775
- Refactor/optimize Player and Pipeline play, stop, and next logic #782
- resolve errors in rtsp_player_to_test_connections.py - remove deprecated param - fix copy/paste error #756
Breaking changes in this release
The previous single RGBA color constructor has been renamed from dsl_display_type_rgba_color_new
to dsl_display_type_rgba_color_custom_new
The following Image-Source services have been renamed to the Image-Stream-Source services listed under new services.
dsl_source_image_new
dsl_source_image_path_get
dsl_source_image_path_set
dsl_source_image_timeout_get
dsl_source_image_timeout_set
The following Sink sync setting services have been replaced with the sync-enabled services listed under new services below. See #775
dsl_sink_sync_settings_get
dsl_sink_sync_settings_set
New RGBA Color Constants
New symbolic constants have been defined to support construction of the new RGBA Color Display Types, see #745
DSL_COLOR_PREDEFINED_<color-name>
- 20 predefined RGB colors.DSL_COLOR_HUE_<color-name>
- 19 Hue constraints used for random color generation.DSL_COLOR_LUMINOSITY_<luminosity-name>
- 5 luminosity constraints used for random color generation.DSL_COLOR_PREDEFINED_PALETTE_<palette-name>
5 predefined RGB color palettes.
New Client Typedefs
The following typedefs have been added for the new ODE Monitor Action, see #764
dsl_ode_occurrence_source_info
dsl_ode_occurrence_object_info
dsl_ode_occurrence_accumulative_info
dsl_ode_occurrence_criteria_info
dsl_ode_occurrence_info
dsl_ode_monitor_occurrence_cb
New callback function for the new RGBA On-Demand Color, see #745
dsl_display_type_rgba_color_provider_cb
New Return Codes in this release
The following return codes have been created for the new ODE Trigger Services in the release.
DSL_RESULT_ODE_TRIGGER_ACCUMULATOR_ADD_FAILED
DSL_RESULT_ODE_TRIGGER_ACCUMULATOR_REMOVE_FAILED
DSL_RESULT_ODE_TRIGGER_HEAT_MAPPER_ADD_FAILED
DSL_RESULT_ODE_TRIGGER_HEAT_MAPPER_REMOVE_FAILED
The following return codes have been created for the new ODE Accumulator API
DSL_RESULT_ODE_ACCUMULATOR_RESULT
DSL_RESULT_ODE_ACCUMULATOR_NAME_NOT_UNIQUE
DSL_RESULT_ODE_ACCUMULATOR_NAME_NOT_FOUND
DSL_RESULT_ODE_ACCUMULATOR_THREW_EXCEPTION
DSL_RESULT_ODE_ACCUMULATOR_IN_USE
DSL_RESULT_ODE_ACCUMULATOR_SET_FAILED
DSL_RESULT_ODE_ACCUMULATOR_IS_NOT_ODE_ACCUMULATOR
DSL_RESULT_ODE_ACCUMULATOR_ACTION_ADD_FAILED
DSL_RESULT_ODE_ACCUMULATOR_ACTION_REMOVE_FAILED
DSL_RESULT_ODE_ACCUMULATOR_ACTION_NOT_IN_USE
The following return codes have been created for the new ODE Heat-Mapper API
DSL_RESULT_ODE_HEAT_MAPPER_RESULT
DSL_RESULT_ODE_HEAT_MAPPER_NAME_NOT_UNIQUE
DSL_RESULT_ODE_HEAT_MAPPER_NAME_NOT_FOUND
DSL_RESULT_ODE_HEAT_MAPPER_THREW_EXCEPTION
DSL_RESULT_ODE_HEAT_MAPPER_IN_USE
DSL_RESULT_ODE_HEAT_MAPPER_SET_FAILED
DSL_RESULT_ODE_HEAT_MAPPER_IS_NOT_ODE_HEAT_MAPPER
New services in this release
New Source Types and Services:
dsl_source_image_new
dsl_source_image_multi_new
dsl_source_image_stream_new
dsl_source_image_stream_path_get
dsl_source_image_stream_path_set
dsl_source_image_stream_timeout_get
dsl_source_image_stream_timeout_set
New RGBA Display Types and Services:
dsl_display_type_rgba_color_custom_new
dsl_display_type_rgba_color_predefined_new
dsl_display_type_rgba_color_random_new
dsl_display_type_rgba_color_on_demand_new
dsl_display_type_rgba_color_palette_new
dsl_display_type_rgba_color_palette_predefined_new
dsl_display_type_rgba_color_palette_random_new
dsl_display_type_rgba_color_palette_index_get
dsl_display_type_rgba_color_palette_index_set
dsl_display_type_rgba_color_next_set
dsl_display_type_rgba_line_multi_new
New Display Metadata Allocation Services:
dsl_pph_ode_display_meta_alloc_size_get
dsl_pph_ode_display_meta_alloc_size_set
New ODE Area and Action types:
dsl_ode_area_line_multi_new
dsl_ode_action_monitor_new
New ODE Trigger Types and Services:
dsl_ode_trigger_cross_new
dsl_ode_trigger_cross_test_settings_get
dsl_ode_trigger_cross_test_settings_set
dsl_ode_trigger_cross_view_settings_get
dsl_ode_trigger_cross_view_settings_set
dsl_ode_trigger_accumulator_add
dsl_ode_trigger_accumulator_remove
dsl_ode_trigger_heat_mapper_add
dsl_ode_trigger_heat_mapper_remove
dsl_ode_trigger_tracker_confidence_min_get
dsl_ode_trigger_tracker_confidence_min_set
New ODE Accumulator API:
dsl_ode_accumulator_new
dsl_ode_accumulator_action_add
dsl_ode_accumulator_action_add_many
dsl_ode_accumulator_action_remove
dsl_ode_accumulator_action_remove_many
dsl_ode_accumulator_action_remove_all
dsl_ode_accumulator_delete
dsl_ode_accumulator_delete_many
dsl_ode_accumulator_delete_all
dsl_ode_accumulator_list_size
New ODE Heat-Mapper API
dsl_ode_heat_mapper_new
dsl_ode_heat_mapper_color_palette_get
dsl_ode_heat_mapper_color_palette_set
dsl_ode_heat_mapper_legend_settings_get
dsl_ode_heat_mapper_legend_settings_set
dsl_ode_heat_mapper_metrics_clear
dsl_ode_heat_mapper_metrics_get
dsl_ode_heat_mapper_metrics_print
dsl_ode_heat_mapper_metrics_log
dsl_ode_heat_mapper_metrics_file
dsl_ode_heat_mapper_delete
dsl_ode_heat_mapper_delete_many
dsl_ode_heat_mapper_delete_all
dsl_ode_heat_mapper_list_size
Refactored Sink sync-enabled services
dsl_sink_sync_enabled_get
dsl_sink_sync_enabled_set
New examples in this release
v0.23.alpha
v0.23.alpha provides new services and support for IoT Messaging and Module Deployment:
Release highlights:
- New ODE Action to add ODE occurrence data as NvDsEventMsgMeta to the NvDsFrameMeta on ODE occurrence (see #700)
- New IoT Message Sink to convert the NvDsEventMsgMeta to an IoT message payload and to send the message to a remote entity using a specific message protocol.
- New "Message Broker API" that supports both unidirectional (device --> client) and bidirectional (device <--> client) messaging (see #703).
- New GitHub repository with Dockerfile and utility scripts to support IoT module deployment (see #709).
- Updates to the make and install process to better facilitate application development and deployment (see #710, #720, #712, #710).
- New "Info Services API" to help monitor and debug deployed Docker images (see 723).
Important the IoT messaging support is very preliminary - released so others can contribute on more testing and setup documentation for the various Messaging Protocol Adapter Libraries. More complex examples such as messaging captured images and custom payloads need to be developed.
Note: the binary attached to this release is built for Jetson on DeepStream 6.0.1
Issues (enhancements) closed in this release
- Implement new Message Sink Component to convert and broker device to server ODE event messages #696
- Implement Message ODE Action to add NvDsEventMsgMeta to the NvDsFrameMeta on ODE occurrence #700
- Implement a new Message Broker API for bidirectional device <--> server messaging. #703
- Investigate and write instructions for setting up the Azure IoT Edge runtime and module deployment #729
- Create new repo with Docker setup, build, and run scripts. - required for Message Broker API #709
- Standardize all Elementr names to improve the logging content. #699
- Remove build dependency on /deepstream/sources/apps/apps-common/includes #710
- Develop new script to generate primary and secondary caffemodel engine files #712
- Update the "Installing DSL Dependencies" and "Building and Importing DSL" documentation. #715
- Deprecate "make lib" for new "sudo make install" option to make and install libdsl.so + dsl.py #720
- Update MakeFile to build the DSL library in compliance with the Shared Library standard. #617
- Implement new DSL Info API with debug logging services. #723
- Rename
dsl_stdout_*
services todsl_info_stdout_
- i.e. move to Info API #724 - Rename
dsl_gpu_type_get
todsl_info_gpu_type_get
- i.e. move to new Info API #725 - Rename
dsl_version_get
todsl_info_version_get
- i.e. move to new Info API #726
Breaking changes in this release
- The Makefile option
make lib
has been replaced withsudo make install
. - The
dsl_stdout_*
services have been renamed todsl_info_stdout_
(see #724). - The
dsl_gpu_type_get
service has been renamed todsl_info_gpu_type_get
(see #725). - The
dsl_version_get
service has been renamed todsl_info_version_get
(see #726)
New Return Codes in this release
DSL_RESULT_BROKER_RESULT
DSL_RESULT_BROKER_NAME_NOT_UNIQUE
DSL_RESULT_BROKER_NAME_NOT_FOUND
DSL_RESULT_BROKER_THREW_EXCEPTION
DSL_RESULT_BROKER_IN_USE
DSL_RESULT_BROKER_SET_FAILED
DSL_RESULT_BROKER_PARAMETER_INVALID
DSL_RESULT_BROKER_SUBSCRIBER_ADD_FAILED
DSL_RESULT_BROKER_SUBSCRIBER_REMOVE_FAILED
DSL_RESULT_BROKER_LISTENER_ADD_FAILED
DSL_RESULT_BROKER_LISTENER_REMOVE_FAILED
DSL_RESULT_BROKER_CONFIG_FILE_NOT_FOUND
DSL_RESULT_BROKER_PROTOCOL_LIB_NOT_FOUND
DSL_RESULT_BROKER_CONNECT_FAILED
DSL_RESULT_BROKER_DISCONNECT_FAILED
DSL_RESULT_BROKER_MESSAGE_SEND_FAILED
New callback typedef in this release
dsl_message_broker_subscriber_cb
dsl_message_broker_connection_listener_cb
dsl_message_broker_send_result_listener_cb
New services in this release
dsl_sink_message_new
dsl_sink_message_converter_settings_get
dsl_sink_message_converter_settings_set
dsl_sink_message_broker_settings_get
dsl_sink_message_broker_settings_set
dsl_ode_action_message_meta_add_new
dsl_message_broker_new
dsl_message_broker_settings_get
dsl_message_broker_settings_set
dsl_message_broker_connect
dsl_message_broker_disconnect
dsl_message_broker_is_connected
dsl_message_broker_message_send_async
dsl_message_broker_subscriber_add
dsl_message_broker_subscriber_remove
dsl_message_broker_connection_listener_add
dsl_message_broker_connection_listener_remove
dsl_message_broker_delete
dsl_message_broker_delete_all
dsl_message_broker_list_size
dsl_info_version_get
dsl_info_gpu_type_get
dsl_info_stdout_get
dsl_info_stdout_redirect
dsl_info_stdout_redirect_with_ts
dsl_info_stdout_restore
dsl_info_log_level_get
dsl_info_log_level_set
dsl_info_log_file_get
dsl_info_log_file_set
dsl_info_log_file_set_with_ts
dsl_info_log_function_restore
New examples in this release
v0.22b.alpha
v0.22b.alpha is a patch release to support the DS 6.0 Tracker lib deprecations.
There are no new DSL services in this release. Note: the libdsl.so binary attached to this release page is built for DS 5.1
Issues closed in this release
- Make NVIDIA tracker lib inclusion compatible for both DeepStream 5.1 and 6.0 #695
v0.22a.alpha
v0.22a.alpha is a patch release that resolves for 4 high-priority bugs.
There are no new services in this release.
Issues (bugs) closed in this release
- dsl_pipeline_stop blocks indefinitely if called in the application's context. #673 - was reopened
- Incorrect location of mutex-lock causing intermittent XWindow I/O error on Pipeline shutdown. #690
- Logic used to globally map source-names to source-ids is invalid for multiple pipelines. #691
- dsl_pipeline_main_loop_run and dsl_pipeline_main_loop_quit need to synchronize on exit #692
v0.22.alpha
v0.21.alpha fixes a critical dsl_pipeline_stop issue, with new pipeline main-loop services, OSD updates, and new Client Listener functions.
Issues (bugs) closed in this release
- dsl_pipeline_stop blocks indefinitely if called in the application's context. #673
- batch-size is incorrectly set to source count when client explicitly sets to less than source count #682
Issues (enhancements) closed in this release
- New services to create Pipelines with their own g_main_context and g_main_loop #625
- Implement new dsl_ode_trigger_infer_get/set services to filter on Inference Component Name #670
- Implement new dsl_ode_trigger_enabled_state_change_listener_add/remove services #672
- Implement new dsl_osd_mask_enabled_get/set services for display-mask OSD property #676
- Implement new dsl_osd_bbox_enabled_get/set services for display-bbox OSD property #678
- Move all default OSD property values to DslApi.h #679
- Update dsl_osd_new constructor to include bbox and mask enabled flags #680
- Implement new dsl_ode_trigger_limit_event_listener_add/remove services #686
- Implement new dsl_ode_action_enabled_state_change_listener_add/remove services #687
Updated services & breaking changes in this release
dsl_osd_new
- newbbox_enabled
andmask_enabled
parameters, see #680
New symbolic constants in this release
DSL_ODE_TRIGGER_LIMIT_EVENT_LIMIT_REACHED
DSL_ODE_TRIGGER_LIMIT_EVENT_LIMIT_CHANGED
DSL_ODE_TRIGGER_LIMIT_EVENT_COUNT_RESET
New callback typedefs
dsl_ode_enabled_state_change_listener_cb
dsl_ode_trigger_limit_event_listener_cb
New services in this release
dsl_pipeline_main_loop_new
dsl_pipeline_main_loop_run
dsl_pipeline_main_loop_quit
dsl_pipeline_main_loop_delete
dsl_osd_bbox_enabled_get
dsl_osd_bbox_enabled_set
dsl_osd_mask_enabled_get
dsl_osd_mask_enabled_set
dsl_ode_trigger_infer_get
dsl_ode_trigger_infer_set
dsl_ode_trigger_limit_event_listener_add
dsl_ode_trigger_limit_event_listener_remove
dsl_ode_trigger_enabled_state_change_listener_add
dsl_ode_trigger_enabled_state_change_listener_remove
dsl_ode_action_enabled_state_change_listener_add
dsl_ode_action_enabled_state_change_listener_remove
New/update examples in this release
- multiple_pipelines.cpp - refactor
- multiple_pipelines.py
v0.21.alpha
v0.21.alpha includes two new components, several new examples, and a number of important bug fixes.
Highlights
New WebRTC Sink and WebSocket Server
- Requires GStreamer 1.18 or greater - only available on Ubuntu 20.04 (x86_84/dGPU builds only)
- See documentation
- See new examples listed below.
- Important see issue: webrtcbin blocks indefinitely when set back to a state of NULL if it was added dynamically to a PLAYING Pipeline. #666
Pipelines now support multiple levels of secondary inference
- See issue #645
New Tkinter Reference Application.
- See issue #622
- In an early stages of development, see documentation
Issues (bugs) closed in this release
- Stopping a recording is in progress after the main-loop has stopped leads to a lock-up #610
- The Smart Record example in the Overview is out of date. #613
- dsl_pipeline_streammux_batch_properties_set is not documented under the Pipeline API Reference #615
- Update MakeFile to build the DSL library in compliance with the Shared Library standard. #617
- RTSP Source must stop recording in progress on loss of connection (EOS) - workaround for NVIDIA bug. #621
- Dynamically adding a Source to a Pipeline in a Playing state fails to link to the Stream-muxer #627
- Redefine CUDADEC memory type constants as NVBUF memory types. #638
- Remove cudadec_mem_type param from URI and RTSP source constructors. #657
- Pipeline destructor must join/wait for the XWindow event thread to terminate before returning #661
- Remove explicit DS version number from all paths used in the test cases and examples #665
Issues (enhancements) closed in this release
- Implement a new WebRTC Sink #611
- Develop a sample HTML client to help verify the WebRTC Sink #612
- Refactor the RecordMgr::StopSession to support both sync and async calls. #618
- Develop a new Tkinter Reference Application - reuse some IAVA Studio functionality. #622
- Implement new Websocket Server API, required for WebRTC Sink #626
- Refactor Image capture implementation to support aarch_64 and x86_64 platforms #634
- New services to Get/Set a Pipeline's stream-muxer's NVIDIA buffer memory type. #635
- New service to query DSL for the current GPU type, integrated or discrete. dsl_gpu_type_get() #636
- Update the DSL_MAX_POLYGON_COORDINATES from 8 to 16 #643
- New services to Get/Set a Component's NVIDIA buffer memory type. #644
- GIEs and TISs need to support more than two levels of inference #645
- Implement new dsl_infer_unique_id_get service to get a GIE's/TIS's unique component id #646
- Add display_meta parameter to ODE Custom Action callback function dsl_ode_handle_occurrence_cb() #653
- Create new cpp example for multiple, dynamic Pipelines. #663
Updated services & breaking changes in this release
dsl_source_uri_new
-cudadec_mem_type
param removed see #657dsl_source_rtsp_new
-cudadec_mem_type
param removed see #657dsl_tap_record_session_stop
- new (boolean sync ) param see #619dsl_sink_record_session_stop
- new (boolean sync ) param see #619dsl_ode_handle_occurrence_cb
typedef - new display_meta param see #653DSL_CUDADEC_MEMTYPE_<*>
changed toDSL_NVBUF_MEM_TYPE_<*>
see #638
New services in this release
dsl_sink_webrtc_client_listener_cb
- new callback typedefdsl_sink_webrtc_new
dsl_sink_webrtc_servers_get
dsl_sink_webrtc_servers_set
dsl_sink_webrtc_client_listener_add
dsl_sink_webrtc_client_listener_remove
dsl_websocket_server_client_listener_cb
- new callback typedefdsl_websocket_server_path_add
dsl_websocket_server_listening_start
dsl_websocket_server_listening_stop
dsl_websocket_server_listening_state_get
dsl_websocket_server_client_listener_add
dsl_websocket_server_client_listener_remove
dsl_pipeline_streammux_nvbuf_mem_type_get
dsl_pipeline_streammux_nvbuf_mem_type_set
dsl_component_nvbuf_mem_type_get
dsl_component_nvbuf_mem_type_set
dsl_component_nvbuf_mem_type_set_many
dsl_gpu_type_get
dsl_infer_unique_id_get