Skip to content

Releases: prominenceai/deepstream-services-library

v0.12.alpha

09 Apr 04:25
a514352
Compare
Choose a tag to compare
v0.12.alpha Pre-release
Pre-release

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

23 Mar 15:35
a514352
Compare
Choose a tag to compare
v0.11.alpha Pre-release
Pre-release

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

  • Updgrade to DeepStream 5.1 #403
  • Update GIE constructors - model engine file should be optional #404

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

15 Mar 22:35
5ca9e94
Compare
Choose a tag to compare
v0.10.alpha Pre-release
Pre-release

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

25 Feb 21:36
5f25f1f
Compare
Choose a tag to compare
v0.09a.alpha Pre-release
Pre-release

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

  1. Updated copyright notifications to reflect company name
  • Copyright (c) 2019-2021, Prominence AI, Inc.
  1. The following API's have changed
  • dsl_ode_action_sink_record_stop_new - removed session id param
  • dsl_ode_action_tap_record_stop_new - removed session id param
  • dsl_osd_new - there are now 2 input parameters to control the display of meta data, text_enabled, clock_enabled
  1. 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

05 Oct 04:06
Compare
Choose a tag to compare
v0.08.alpha Pre-release
Pre-release

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

  • Error and segmentation fault on quitting application when rtsp-tap is added #352
  • Capture Frame Action - Segmentation Fault - 8 Cameras #339
  • Add button id to button-press callback #340

v0.07.alpha

31 Aug 21:47
228f2dd
Compare
Choose a tag to compare
v0.07.alpha Pre-release
Pre-release

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

02 Jul 04:20
c598100
Compare
Choose a tag to compare
v0.06.alpha Pre-release
Pre-release

Upgrade to Deepstreem 5.0 and JetPack 4.4. There is no new functionality in this release.

v0.05.alpha

29 Jun 22:53
cddf333
Compare
Choose a tag to compare
v0.05.alpha Pre-release
Pre-release

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

15 Apr 17:47
333413d
Compare
Choose a tag to compare
Pre-release

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

31 Mar 21:19
375e49e
Compare
Choose a tag to compare
Pre-release

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