Releases: prominenceai/deepstream-services-library
v0.12.alpha
This release implements new ODE Triggers and additional XWindow and Window Sink services.
New Triggers added to this release: Persistence, Count, Distance, New High, and New Low
Issues Closed in this Release
- Implement new ODE Persistence Trigger #406
- Refactor Minimum, Maximum, and Range triggers into one single Count trigger #408
- Implement "New Hight Count" and "New Low Count" Triggers #418
- Refactor Intersection Trigger to use new GEOS types #421
- Update Intersection Trigger to support Class A, Class B testing #424
- Implement specific get/set class_id services for Intersection and Distance Triggers #426
- Add new Pipeline get/set XWindow handle services #411
- New service to destroy a Pipeline's XWindow #415
New Services Implemented in this Release
dsl_ode_trigger_persistence_new
dsl_ode_trigger_distance_new
dsl_ode_trigger_count_new
dsl_ode_trigger_new_high_new
dsl_ode_trigger_new_low_new
dsl_sink_window_force_aspect_ratio_get
dsl_sink_window_force_aspect_ratio_set
dsl_pipeline_xwindow_handle_get
dsl_pipeline_xwindow_handle_set
dsl_pipeline_xwindow_destroy
Services Removed in this Release
The following triggers have been replaced with the single dsl_ode_trigger_count_new
trigger capable of providing the same services.
dsl_ode_trigger_minimum_new
dsl_ode_trigger_maximum_new
dsl_ode_trigger_range_new
New Python Examples in the Release
v0.11.alpha
This release updates DSL to the latest DeepStream and JetPack Releases
DSL is now built using DeepStream 5.1.0 Release which is dependent on the JetPack 4.5.1 GA (corresponding to L4T 32.5.1 release)
Issues closed this release
The following Services have been updated
dsl_gie_primary_new
dsl_gie_secondary_new
Both have been updated to allow the model_engine_file
parameter to be optional - allowing DeepStream to create the file using the provided infer_config_file
. The model
and prototext
files must exist as specified in the config file parameters.
v0.10.alpha
The focus of this release is on improving/extending the ODE Triggers, Areas, Actions.
Important Notes:
- There are new library dependencies required for this release: geos and libcurl. Please review Installing Dependencies for more information.
- The SMTP Services have been tested using a free account on Gmail's SMTP server Only!.
Issues closed in this release
- Integrate GEOS - Geometry Engine, Open Source #383
- Implement new RGBA Polygon Display Type #385
- Implement new ODE Line Area type and Trigger Criteria #384
- Extend the Inclusion/Exclusion Area types to use the Polygon display type and Test Points #386
- Implement new "Instance" trigger #389
- Integrate libcurl - URL transfer library #392
- Implement new SMTP API #393
- Implement new ODE Email Action using new SMTP services #394
New services added in this release
dsl_display_type_rgba_polygon_new
dsl_ode_area_line_new
dsl_ode_trigger_instance_new
dsl_smtp_mail_enabled_get
dsl_smtp_mail_enabled_set
dsl_smtp_credentials_set
dsl_smtp_server_url_get
dsl_smtp_server_url_set
dsl_smtp_address_from_get
dsl_smtp_address_from_set
dsl_smtp_ssl_enabled_get
dsl_smtp_ssl_enabled_set
dsl_smtp_address_to_add
dsl_smtp_address_to_remove_all
dsl_smtp_address_cc_add
dsl_smtp_address_cc_remove_all
dsl_smtp_test_message_send
dsl_ode_action_email_new
v0.09a.alpha
This is a patch release for v0.09.alpha, which was released without the required script and documentation updates, which has now been deleted.
The notes below are from the v0.09.alpha release. The v0.09a.alpha patch includes the updated examples scripts and docs
- Updated copyright notifications to reflect company name
Copyright (c) 2019-2021, Prominence AI, Inc.
- The following API's have changed
dsl_ode_action_sink_record_stop_new
- removed session id paramdsl_ode_action_tap_record_stop_new
- removed session id paramdsl_osd_new
- there are now 2 input parameters to control the display of meta data, text_enabled, clock_enabled
- The follow API's are new
dsl_tap_record_outdir_get
dsl_tap_record_outdir_set
dsl_tap_record_container_get
dsl_tap_record_container_set
dsl_sink_record_outdir_get
dsl_sink_record_outdir_set
dsl_sink_record_container_get
dsl_sink_record_container_set
dsl_ode_trigger_limit_get
dsl_ode_trigger_limit_set
dsl_osd_text_enabled_get
dsl_osd_text_enabled_set
v0.08.alpha
v0.08.alpha Overview
The release includes new features and bug fixes, as detailed below. Some of the updates include breaking changes!
VSCode configurations C++/Python linting, building and debugging (#341)
Visual Studio Code configuration files for remote arm64 building and debugging
RTSP Stream Re-connection Management.
An additional parameter was added to the RTSP Source constructor to allow the client to specify a new-buffer-timeout
as follows:
/**
* @param[in] timeout time to wait between successive buffers before determining the
* connection is lost. Set to 0 to disable timeout.
*/
DslReturnType dsl_source_rtsp_new(const wchar_t* name, const wchar_t* uri, uint protocol,
uint cudadec_mem_type, uint intra_decode, uint drop_frame_interval, uint latency, uint timeout);
Two new Timeout services have been added
dsl_source_rtsp_timeout_get
dsl_source_rtsp_timeout_set
Along with two new default
/**
* @brief time to sleep after a failed reconnection before
* starting a new re-connection cycle. In units of seconds
*/
#define DSL_RTSP_RECONNECTION_SLEEP_S 4
/**
* @brief the maximum time to wait for a RTSP Source to
* asynchronously transition to a final state of Playing.
* In units of seconds
*/
#define DSL_RTSP_RECONNECTION_TIMEOUT_S 30
With new services to get/set both at any time.
dsl_source_rtsp_reconnection_params_get
dsl_source_rtsp_reconnection_params_set
The client can add/remove a state-change-listener (callback) to each source to be notified of "changes in state" which occur during the connection/loss/re-connection cycle
dsl_source_rtsp_state_change_listener_add
dsl_source_rtsp_state_change_listener_remove
Re-connection stats can be obtained/cleared for each Source at any time.
dsl_source_rtsp_reconnection_data_get
dsl_source_rtsp_reconnection_data_clear
New Pipeline error-message-handler services #358
(*dsl_error_message_handler_cb)
dsl_pipeline_error_message_handler_add
dsl_pipeline_error_message_handler_remove
dsl_pipeline_error_message_last_get
Tiler and XWindow services and bug fixes.
New Services
- New Tiler service to show a single source based on positional selection #345
dsl_tiler_source_show_select
- New Tiler service to cycle through each source based on a time interval #348
dsl_tiler_source_show_cycle
- New XWindow services,
dsl_pipeline_xwindow_fullscreen_enabled_get and set
to support XWindow full-screen mode #374
Bug Fixes
- Fix current implementation of
dsl_pipeline_xwindow_dimensions_get
#354 - Window Sink offset values are ignored on internal XWindow create #360
Map NvDsSRRecordingInfo to python class using CTypes #357
The callback type (*dsl_record_client_listener_cb)
in both dslapi.h and dsl.py now use the new DslRecordingInfoType
as the input parameter to the client's callback function, vs the previous opaque void pointer. The session info can now be accessed directly when using python. No need for NVIDIA python bindings.
Additional Bug Fixes
v0.07.alpha
v0.07.alpha Overview
This release introduces new Pipeline Components, ODE Triggers, and ODE Actions all in support of Smart Recording.
- Record Sink - a new Sink component that can be added just as (and along with) any other Sink Component.
- Record Tap - derived from a new class of component called a Tap that can be added to any RTSP Source directly - Tap components "tap" into the pre-decoded source stream, in this case for the purpose of recording the original stream.
- ODE Actions to Start Recording when invoked by an ODE Trigger on ODE occurrence.
The release includes a new Display Type API for creating Colors, Fonts, Text, Lines, Arrows, Rectangles, Circles and Source Info types. Metadata for the shapes and text is adding to a frame's display metatdata for an OSD component to display.
- New Add "display-meta" ODE Actions have been added to overlay a frame with the Display Type on invocation from an ODE Trigger.
- A new Always ODE Trigger type has been created to add Display Types to every frame when enabled, which can be enabled/disabled by callback , an ODE Action, or application user on Input; keyboard, mouse, etc.
The batch-meta-handle
callback type has been replaced with a more general, scaleable Pad Probe Handler component, with the
- Custom PPH - replacing the
batch-meta-handle
callback. - Object Detection Event PPH - replacing the ODE Handler component.
- Pipeline Meter PPH - new component for measuring Pipeline throughput
Note: The release is dependent on the DeepStream 5.0 GA Release.
Services added and removed in the Release
Callback Functions
new
dsl_ode_handle_occurrence_cb
dsl_ode_check_for_occurrence_cb
dsl_ode_post_process_frame_cb
dsl_pph_custom_client_handler_cb
dsl_pph_meter_client_handler_cb
dsl_record_client_listner_cb
removed
dsl_batch_meta_handler_cb
Record Tap Services
new
dsl_tap_record_new
dsl_tap_record_session_start
dsl_tap_record_session_stop
dsl_tap_record_cache_size_get
dsl_tap_record_cache_size_set
dsl_tap_record_dimensions_get
dsl_tap_record_dimensions_set
dsl_tap_record_is_on_get
dsl_tap_record_reset_done_get
Source Services
new
dsl_source_rtsp_tap_add
dsl_source_rtsp_tap_remove
Primary GIE Services
new
dsl_gie_primary_pph_add
dsl_gie_primary_pph_remove
removed
dsl_gie_primary_batch_handler_add
dsl_gie_primary_batch_handler_remove
Tracker services
new
dsl_tracker_pph_add
dsl_tracker_pph_remove
removed
dsl_tracker_meta_batch_handler_add
dsl_tracker_meta_batch_handler_remove
Tiler Services
new
dsl_tiler_source_show_get
dsl_tiler_source_show_set
dsl_tiler_source_show_all
dsl_tiler_pph_add
dsl_tiler_pph_remove
removed
dsl_tiler_meta_batch_handler_add
dsl_tiler_meta_batch_handler_remove
OSD Services
new
dsl_osd_pph_add
dsl_osd_pph_remove
removed
dsl_osd_meta_batch_handler_add
dsl_osd_meta_batch_handler_remove
Sink Services
new
dsl_sink_record_new
dsl_sink_record_session_start
dsl_sink_record_cache_size_get
dsl_sink_record_session_stop
dsl_sink_record_cache_size_get
dsl_sink_record_cache_size_set
dsl_sink_record_dimensions_get
dsl_sink_record_dimensions_set
dsl_sink_record_is_on_get
dsl_sink_record_reset_done_get
dsl_sink_encode_video_formats_get
removed
dsl_sink_file_video_formats_get
dsl_sink_file_encoder_settings_get
dsl_sink_file_encoder_settings_set
replaced by Frame and Object Capture ODE Actions
dsl_sink_image_outdir_get
dsl_sink_image_outdir_set
dsl_sink_image_frame_capture_interval_get
dsl_sink_image_frame_capture_interval_set
dsl_sink_image_frame_capture_enabled_get
dsl_sink_image_frame_capture_enabled_set
dsl_sink_image_object_capture_enabled_get
dsl_sink_image_object_capture_enabled_set
dsl_sink_image_object_capture_class_add
dsl_sink_image_object_capture_class_remove
ODE Handler
all services moved to Pad Probe Handler (see below)
ODE Trigger Services
new
dsl_ode_trigger_always_new
dsl_ode_trigger_smallest_new
dsl_ode_trigger_largest_new
ODE Action Services
new
dsl_ode_action_custom_new
dsl_ode_action_display_meta_add_new
dsl_ode_action_display_meta_add_many_new
dsl_ode_action_fill_frame_new
dsl_ode_action_fill_object_new
dsl_ode_action_sink_record_start_new
dsl_ode_action_tap_record_start_new
dsl_ode_action_tiler_source_show_new
removed
dsl_ode_action_action_add_new
dsl_ode_action_callback_new
dsl_ode_action_fill_new
ODE Areas
new
dsl_ode_area_inclusion_new
dsl_ode_area_exclusion_new
removed
dsl_ode_area_new
dsl_ode_area_get
dsl_ode_area_set
dsl_ode_area_color_get
dsl_ode_area_color_get
Display Type Services
new
dsl_display_type_rgba_color_new
dsl_display_type_rgba_font_new
dsl_display_type_rgba_text_new
dsl_display_type_rgba_line_new
dsl_display_type_rgba_arrow_new
dsl_display_type_rgba_rectangle_new
dsl_display_type_rgba_circle_new
dsl_display_type_source_number_new
dsl_display_type_source_name_new
dsl_display_type_source_dimensions_new
dsl_display_type_delete
dsl_display_type_delete_many
dsl_display_type_delete_all
dsl_display_type_list_size
Pad Probe Handler
new
dsl_pph_custom_new
dsl_pph_meter_new
dsl_pph_ode_new
dsl_pph_meter_interval_get
dsl_pph_meter_interval_set
dsl_pph_ode_trigger_add
dsl_pph_ode_trigger_add_many
dsl_pph_ode_trigger_remove
dsl_pph_ode_trigger_remove_many
dsl_pph_ode_trigger_remove_all
dsl_pph_enabled_get
dsl_pph_enabled_set
dsl_pph_delete
dsl_pph_delete_many
dsl_pph_delete_all
dsl_pph_list_size
Pipeline Services
new
dsl_pipeline_source_name_get
v0.06.alpha
Upgrade to Deepstreem 5.0 and JetPack 4.4. There is no new functionality in this release.
v0.05.alpha
This release introduces an initial version of Object Detection Event (ODE) Services.
Note: there are breaking changes in this release. The removal of On-Screen Display (OSD) Redaction services, now implement by ODE Services.
APIs removed in this release:
- dsl_osd_redaction_enabled_get
- dsl_osd_redaction_enabled_set
- dsl_osd_redaction_class_add
- dsl_osd_redaction_class_remove
New APIs this release:
ODE Handler:
- dsl_ode_handler_new
- dsl_ode_handler_enabled_get
- dsl_ode_handler_enabled_set
- dsl_ode_handler_trigger_add
- dsl_ode_handler_trigger_add_many
- dsl_ode_handler_trigger_remove
- dsl_ode_handler_trigger_remove_many
- dsl_ode_handler_trigger_remove_all
ODE Trigger:
- dsl_ode_trigger_absence_new
- dsl_ode_trigger_occurrence_new
- dsl_ode_trigger_summation_new
- dsl_ode_trigger_intersection_new
- dsl_ode_trigger_minimum_new
- dsl_ode_trigger_maximum_new
- dsl_ode_trigger_range_new
- dsl_ode_trigger_custom_new
- dsl_ode_trigger_delete
- dsl_ode_trigger_delete_many
- dsl_ode_trigger_delete_all
- dsl_ode_trigger_reset
- dsl_ode_trigger_enabled_get
- dsl_ode_trigger_enabled_set
- dsl_ode_trigger_class_id_get
- dsl_ode_trigger_class_id_set
- dsl_ode_trigger_source_id_get
- dsl_ode_trigger_source_id_set
- dsl_ode_trigger_confidence_min_get
- dsl_ode_trigger_confidence_min_set
- dsl_ode_trigger_dimensions_min_get
- dsl_ode_trigger_dimensions_min_set
- dsl_ode_trigger_dimensions_max_get
- dsl_ode_trigger_dimensions_max_set
- dsl_ode_trigger_infer_done_only_get
- dsl_ode_trigger_infer_done_only_set
- dsl_ode_trigger_action_add
- dsl_ode_trigger_action_add_many
- dsl_ode_trigger_action_remove
- dsl_ode_trigger_action_remove_many
- dsl_ode_trigger_action_remove_all
- dsl_ode_trigger_area_add
- dsl_ode_trigger_area_add_many
- dsl_ode_trigger_area_remove
- dsl_ode_trigger_area_remove_many
- dsl_ode_trigger_list_size
ODE Action
- dsl_ode_action_action_disable_new
- dsl_ode_action_action_enable_new
- dsl_ode_action_area_add_new
- dsl_ode_action_area_remove_new
- dsl_ode_action_callback_new
- dsl_ode_action_capture_frame_new
- dsl_ode_action_capture_object_new
- dsl_ode_action_display_new
- dsl_ode_action_fill_area_new
- dsl_ode_action_fill_frame_new
- dsl_ode_action_fill_object_new
- dsl_ode_action_handler_disable_new
- dsl_ode_action_hide_new
- dsl_ode_action_log_new
- dsl_ode_action_pause_new
- dsl_ode_action_print_new
- dsl_ode_action_redact_new
- dsl_ode_action_sink_add_new
- dsl_ode_action_sink_remove_new
- dsl_ode_action_source_add_new
- dsl_ode_action_source_remove_new
- dsl_ode_action_trigger_reset_new
- dsl_ode_action_trigger_disable_new
- dsl_ode_action_trigger_enable_new
- dsl_ode_action_delete
- dsl_ode_action_delete_many
- dsl_ode_action_delete_all
- dsl_ode_action_enabled_get
- dsl_ode_action_enabled_set
- dsl_ode_action_list_size
ODE Area
- dsl_ode_area_new
- dsl_ode_area_delete
- dsl_ode_area_delete_many
- dsl_ode_area_delete_all
- dsl_ode_area_get
- dsl_ode_area_set
- dsl_ode_area_color_get
- dsl_ode_area_color_set
- dsl_ode_area_list_size
Release Version 0.04 Alpha
New services in this release:
OSD now supports class-based redaction with:
- dsl_osd_redaction_class_add
- dsl_osd_redaction_class_remove
- dsl_osd_redaction_enabled_get
- dsl_osd_redaction_enabled_set
New Image Sink for capturing full-frames and objects to jpeg files:
- dsl_sink_image_new
- dsl_sink_image_outdir_get
- dsl_sink_image_outdir_set
- dsl_sink_image_frame_capture_interval_get
- dsl_sink_image_frame_capture_interval_set
- dsl_sink_image_frame_capture_enabled_get
- dsl_sink_image_frame_capture_enabled_set
- dsl_sink_image_object_capture_class_add
- dsl_sink_image_object_capture_class_remove
- dsl_sink_image_object_capture_enabled_get
- dsl_sink_image_object_capture_enabled_set
Release Version 0.03 Alpha
There are breaking changes in this release. The following API's have been removed
- dsl_source_osd_add
- dsl_source_osd_remove
- dsl_source_sink_add
- dsl_source_sink_remove
- dsl_demuxer_new
The following API's are new to this release
New Demuxer and Splitter Tee API
- dsl_tee_demuxer_new
- dsl_tee_demuxer_new_branch_add_many
- dsl_tee_splitter_new
- dsl_tee_splitter_new_branch_add_many
- dsl_tee_branch_add
- dsl_tee_branch_add_many
- dsl_tee_branch_count_get
- dsl_tee_branch_remove
- dsl_tee_branch_remove_many
New Branch API
- dsl_branch_new
- dsl_branch_new_many
- dsl_branch_new_component_add_many
- dsl_branch_component_add
- dsl_branch_component_add_many
- dsl_branch_component_remove
- dsl_branch_component_remove_many
New Pipeline convenience service
- dsl_pipeline_new_component_add_many