Skip to content

Commit

Permalink
Merge pull request #1173 from prominenceai/v0.29.alpha
Browse files Browse the repository at this point in the history
v0.29.alpha
  • Loading branch information
rjhowell44 authored Mar 24, 2024
2 parents 03e61d0 + 4a63d11 commit b9a2e60
Show file tree
Hide file tree
Showing 109 changed files with 4,538 additions and 2,233 deletions.
3 changes: 3 additions & 0 deletions .codelite/deepstream-services-library.project
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
<Description/>
<Dependencies/>
<VirtualDirectory Name="src">
<File Name="../src/DslServicesRemuxer.cpp"/>
<VirtualDirectory Name="opencv">
<File Name="../src/opencv/DslAvFile.h"/>
<File Name="../src/opencv/DslAvFile.cpp"/>
Expand Down Expand Up @@ -251,6 +252,7 @@
</VirtualDirectory>
<VirtualDirectory Name="examples">
<VirtualDirectory Name="cpp">
<File Name="../examples/cpp/4file_custom_pph_using_opencv.cpp"/>
<File Name="../examples/cpp/1v4l2_pgie_iou_tracker_osd_window.cpp"/>
<File Name="../examples/cpp/multiple_pipelines.cpp"/>
<File Name="../examples/cpp/rtsp_player_to_test_connections.cpp"/>
Expand Down Expand Up @@ -278,6 +280,7 @@
<File Name="../examples/cpp/encode_and_save_frame_to_jpeg_from_custom_pph.cpp" ExcludeProjConfig="Debug;"/>
</VirtualDirectory>
<VirtualDirectory Name="python">
<File Name="../examples/python/parallel_inference_on_selective_streams.py"/>
<File Name="../examples/python/1v4l2_pgie_iou_tracker_osd_window.py"/>
<File Name="../examples/python/2uri_file_pgie_iou_tracker_2sgie_tiler_osd_custom_pph_window.py"/>
<File Name="../examples/python/4K_input_source_slicing_with_non_maximum_merge.py.hld"/>
Expand Down
Binary file modified Images/dsl-pipeline-components.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/inference-branch-components.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/parallel-inference-pipeline.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/remuxer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ else
endif

CXX_VERSION:=c++17
DSL_VERSION:='L"v0.28.alpha"'
DSL_VERSION:='L"v0.29.alpha"'
GLIB_VERSION:=2.0

# Update GStreamer sub-version to 20 to enabled the WebRtcSink
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ Come join us on [Discord](https://discord.gg/MJvY9jjpAK), an informal place to c
* [Segmentation Visualizer](/docs/api-segvisual.md)
* [Tiler](/docs/api-tiler.md)
* [Demuxer and Splitter](/docs/api-tee.md)
* [Remuxer](/docs/api-remuxer.md)
* [On-Screen Display](/docs/api-osd.md)
* [Sink](/docs/api-sink.md)
* [Pad Probe Handler](/docs/api-pph.md)
Expand Down
1 change: 1 addition & 0 deletions Release Notes/dsl-releases.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

| Release | Date |
| --------------------------------------------------- | ----------- |
| [v0.29.alpha](/Release%20Notes/v0.29.alpha.md) | 03/23/2024 |
| [v0.28.alpha](/Release%20Notes/v0.28.alpha.md) | 01/29/2024 |
| [v0.27.b.alpha](/Release%20Notes/v0.27.b.alpha.md) | 11/08/2023 |
| [v0.27.a.alpha](/Release%20Notes/v0.27.a.alpha.md) | 10/24/2023 |
Expand Down
53 changes: 53 additions & 0 deletions Release Notes/v0.29.alpha.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# v0.29.alpha Release Notes
The main focus of this release was to complete the [Remuxer Component](/docs/api-remuxer.md) to support [Selective Parallel Inference](/docs/overview.md#selective-parallel-inference).

**IMPORTANT!** There are breaking changes in this release so please review the notes carefully.

## Issues closed in this release
### Bugs closed in this release
* Remove nvvideoconvert plugin from primary inference component [#1170](https://github.com/prominenceai/deepstream-services-library/issues/1170)

### Enhancements closed in this release
* Refactor Remuxer - no longer a Tee - add Metamuxer plugin and auto generate Metamuxer config [#1161](https://github.com/prominenceai/deepstream-services-library/issues/1161)
* Create cpp example - how to work with opencv in custom pph using DslSurfaceTransform.h [#1169](https://github.com/prominenceai/deepstream-services-library/issues/1169)
* Rename dsl_infer_primary_pph_add/remove to dsl_infer_pph_add/remove - support adding pphs to primary and secondary [#1171](https://github.com/prominenceai/deepstream-services-library/issues/1171)

---

### Renamed Services in this release
* All `dsl_tee_remuxer_*` services have replace with new `dsl_remuxer_*` services (see below).
* The `dsl_infer_primary_pph_add/remove` services have been renamed to `dsl_infer_pph_add/remove` (see below).

---

### New Services in this release
**New Remuxer API:**
* [`dsl_remuxer_new`](/docs/api-remuxer.md#dsl_remuxer_new)
* [`dsl_remuxer_new_branch_add_many`](/docs/api-remuxer.md#dsl_remuxer_new_branch_add_many)
* [`dsl_remuxer_branch_add`](/docs/api-remuxer.md#dsl_remuxer_branch_add)
* [`dsl_remuxer_branch_add_to`](/docs/api-remuxer.md#dsl_remuxer_branch_add_to)
* [`dsl_remuxer_branch_add_many`](/docs/api-remuxer.md#dsl_remuxer_branch_add_many)
* [`dsl_remuxer_branch_remove`](/docs/api-remuxer.md#dsl_remuxer_branch_remove)
* [`dsl_remuxer_branch_remove_many`](/docs/api-remuxer.md#dsl_remuxer_branch_remove_many)
* [`dsl_remuxer_branch_remove_all`](/docs/api-remuxer.md#dsl_remuxer_branch_remove_all)
* [`dsl_remuxer_pph_add`](/docs/api-remuxer.md#dsl_remuxer_pph_add)
* [`dsl_remuxer_pph_remove`](/docs/api-remuxer.md#dsl_remuxer_pph_remove)
* [`dsl_remuxer_batch_properties_get`](/docs/api-remuxer.md#dsl_remuxer_batch_properties_get)
* [`dsl_remuxer_batch_properties_set`](/docs/api-remuxer.md#dsl_remuxer_batch_properties_set)
* [`dsl_remuxer_dimensions_get`](/docs/api-remuxer.md#dsl_remuxer_dimensions_get)
* [`dsl_remuxer_dimensions_set`](/docs/api-remuxer.md#dsl_remuxer_dimensions_set)
* [`dsl_remuxer_branch_config_file_get`](/docs/api-remuxer.md#dsl_remuxer_branch_config_file_get)
* [`dsl_remuxer_branch_config_file_set`](/docs/api-remuxer.md#dsl_remuxer_branch_config_file_set)
* [`dsl_remuxer_batch_size_get`](/docs/api-remuxer.md#dsl_remuxer_batch_size_get)
* [`dsl_remuxer_batch_size_set`](/docs/api-remuxer.md#dsl_remuxer_batch_size_set)

**New Infer Services:**
* [`dsl_infer_pph_add`](/docs/api-infer.md#dsl_infer_pph_add) (renamed)
* [`dsl_infer_pph_remove`](/docs/api-infer.md#dsl_infer_pph_remove) (renamed)

### New Examples in this release
* [`parallel_inference_on_selective_streams.py`](/examples/python/parallel_inference_on_selective_streams.py)
* [`parallel_inference_on_selective_streams.cpp`](/examples/cpp/parallel_inference_on_selective_streams.cpp)
* [`4file_custom_pph_using_opencv.cpp`](/examples/cpp/4file_custom_pph_using_opencv.cpp)


5 changes: 3 additions & 2 deletions docs/api-branch.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Branch API Reference
Branch components are similar to Pipelines in the way they're used to manage and link Child components when transitioning to states of `ready`, `paused`, and `playing`. Unlike Pipelines, Branches can not contain Source components, and must be added to a [Demuxer or Splitter Tee](/docs/api-tee.md).
Branch components are similar to Pipelines in the way they're used to manage and link Child components when transitioning to states of `ready`, `paused`, and `playing`. Unlike Pipelines, Branches can not contain Source components, and must be added to a [Demuxer or Splitter Tee](/docs/api-tee.md) or [Remuxer](/docs/api-remuxer.md).

#### Branch Construction and Destruction
Branches are constructed by calling [`dsl_branch_new`](#dsl_branch_new),[`dsl_branch_new_many`](#dsl_branch_new_many), [`dsl_branch_new_component_add_many`](#dsl_branch_new_component_add_many), and destructed by calling `[dsl_branch_delete`](#dsl_branch_delete), `[dsl_branch_delete_many`](#dsl_branch_delete_many), or [`dsl_branch_delete_all`](#dsl_branch_delete_all). Deleting a Branch will not delete its child components but will unlink then and return to a state of `not-in-use`. The client application is responsible for deleting all child components by calling [`dsl_component_delete`](/docs/api-component.md#dsl_component_delete), [`dsl_component_delete_many`](/docs/api-component.md#dsl_component_delete_many), [`dsl_component_delete_all`](/docs/api-component.md#dsl_component_delete_all), or [`dsl_delete_all`](/docs/overview.md#dsl-delete-all).
Expand Down Expand Up @@ -227,7 +227,8 @@ retval = dsl_branch_component_remove_all('my-branch')
* [Tracker](/docs/api-tracker.md)
* [Segmentation Visualizer](/docs/api-segvisual.md)
* [Tiler](/docs/api-tiler.md)
* [Demuxer, Remxer, and Splitter Tees](/docs/api-tee.md)
* [Demuxer and Splitter Tees](/docs/api-tee.md)
* [Remuxer](/docs/api-remuxer.md)
* [On-Screen Display](/docs/api-osd.md)
* [Sink](/docs/api-sink.md)
* [Pad Probe Handler](/docs/api-pph.md)
Expand Down
4 changes: 3 additions & 1 deletion docs/api-component.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ The Pipeline Component API provides the common services that apply to multiple P
* [Trackers](/docs/api-tracker.md)
* [Segmentation Visualizers](/dos/api-segvisual.md)
* [Splitters and Demuxers](/docs/api-tee.md)
* [Remuxer](/docs/api-remxer.md)
* [2D-Tilers](/docs/api-tiler.md)
* [On Screen Displays](/docs/api-osd.md)
* [Sinks](/docs/api-sink.md)
Expand Down Expand Up @@ -272,7 +273,8 @@ retval = dsl_component_nvbuf_mem_type_set_many(
* [Tracker](/docs/api-tracker.md)
* [Segmentation Visualizer](/docs/api-segvisual.md)
* [Tiler](/docs/api-tiler.md)
* [Demuxer, Remxer, and Splitter Tees](/docs/api-tee.md)
* [Demuxer and Splitter Tees](/docs/api-tee.md)
* [Remuxer](/docs/api-remxer.md)
* [On-Screen Display](/docs/api-osd.md)
* [Sink](/docs/api-sink.md)
* [Pad Probe Handler](/docs/api-pph.md)
Expand Down
3 changes: 2 additions & 1 deletion docs/api-dewarper.md
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,8 @@ retval = dsl_dewarper_num_batch_buffers_set('my-dewarper', 4)
* [Tracker](/docs/api-tracker.md)
* [Segmentation Visualizer](/docs/api-segvisual.md)
* [Tiler](/docs/api-tiler.md)
* [Demuxer, Remxer, and Splitter Tees](/docs/api-tee.md)
* [Demuxer and Splitter Tees](/docs/api-tee.md)
* [Remuxer](/docs/api-remuxer.md)
* [On-Screen Display](/docs/api-osd.md)
* [Sink](/docs/api-sink.md)
* [Pad Probe Handler](/docs/api-pph.md)
Expand Down
3 changes: 2 additions & 1 deletion docs/api-display-type.md
Original file line number Diff line number Diff line change
Expand Up @@ -1006,7 +1006,8 @@ retval = dsl_display_type_meta_add('blue-circle', buffer, frame_meta)
* [Tracker](/docs/api-tracker.md)
* [Segmentation Visualizer](/docs/api-segvisual.md)
* [Tiler](/docs/api-tiler.md)
* [Demuxer, Remxer, and Splitter Tees](/docs/api-tee.md)
* [Demuxer and Splitter Tees](/docs/api-tee.md)
* [Remuxer](/docs/api-remuxer.md)
* [On-Screen Display](/docs/api-osd.md)
* [Sink](/docs/api-sink.md)
* [Pad Probe Handler](/docs/api-pph.md)
Expand Down
38 changes: 21 additions & 17 deletions docs/api-infer.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The DeepStream Services Library (DSL) provides services for Nvidia's two Inferen
Pipelines can have multiple Primary GIE or TIS -- linked in succession to operate on the full frame -- with any number of corresponding Secondary GIEs or TISs (only limited by hardware). Pipelines cannot be created with a mix of GIEs and TISs. Pipelines that have secondary GIEs/TISs but no Primary GIE/TIS will fail to Link and Play. Secondary GIEs/TISs can `infer-on` both Primary and Secondary GIEs/TISs creating multiple levels of inference. **IMPORTANT**: the current release supports up to two levels of secondary inference.

### Construction and Destruction
Primary GIEs and TISs are constructed by calling [`dsl_infer_gie_primary_new`](#dsl_infer_gie_primary_new) and [`dsl_infer_tis_primary_new`](#dsl_infer_tis_primary_new) respectively. Secondary GIEs and TISs are created by calling [`dsl_infer_gie_secondary_new`](#dsl_gie_secondary_new) and [`dsl_infer_tis_secondary_new`](#dsl_infer_tis_secondary_new) respectively. As with all components, Primary and Secondary GIEs/TISs must be uniquely named from all other components created. All GIEs and TIEs are deleted by calling [`dsl_component_delete`](api-component.md#dsl_component_delete), [`dsl_component_delete_many`](api-component.md#dsl_component_delete_many), or [`dsl_component_delete_all`](api-component.md#dsl_component_delete_all).
Primary GIEs and TISs are constructed by calling [`dsl_infer_gie_primary_new`](#dsl_infer_gie_primary_new) and [`dsl_infer_tis_primary_new`](#dsl_infer_tis_primary_new) respectively. Secondary GIEs and TISs are created by calling [`dsl_infer_gie_secondary_new`](#dsl_infer_gie_secondary_new) and [`dsl_infer_tis_secondary_new`](#dsl_infer_tis_secondary_new) respectively. As with all components, Primary and Secondary GIEs/TISs must be uniquely named from all other components created. All GIEs and TIEs are deleted by calling [`dsl_component_delete`](api-component.md#dsl_component_delete), [`dsl_component_delete_many`](api-component.md#dsl_component_delete_many), or [`dsl_component_delete_all`](api-component.md#dsl_component_delete_all).

### Inference Configuration
Both GIEs and TIEs require a Primary or Secondary **Inference Configuration File**. Once created, clients can query both Primary and Secondary GIEs/TIEs for their Config File in-use by calling [`dsl_infer_config_file_get`](#dsl_infer_config_file_get) or change the GIE/TIS's configuration by calling [`dsl_infer_config_file_set`](#dsl_infer_config_file_set).
Expand All @@ -28,6 +28,11 @@ A similar set of Services are used when adding/removing a GIE/TIS to/from a bran

Primary and Secondary GIEs/TISs are deleted by calling [`dsl_component_delete`](/docs/api-component.md#dsl_component_delete), [`dsl_component_delete_many`](/docs/api-component.md#dsl_component_delete_many), or [`dsl_delete_all`](/docs/overview.md#dsl_delete_all).

## Adding/Removing Pad-Probe-handlers
Multiple sink (input) and/or source (output) [Pad-Probe Handlers](/docs/api-pph.md) can be added to any Primary or Secondary GIE or TIS by calling [`dsl_infer_pph_add`](#dsl_infer_pph_add) and removed with [`dsl_infer_pph_remove`](#dsl_infer_pph_remove).

---

## Primary and Secondary Inference API
**Constructors**
* [`dsl_infer_gie_primary_new`](#dsl_infer_gie_primary_new)
Expand All @@ -47,8 +52,8 @@ Primary and Secondary GIEs/TISs are deleted by calling [`dsl_component_delete`](
* [`dsl_infer_config_file_set`](#dsl_infer_config_file_set)
* [`dsl_infer_interval_get`](#dsl_infer_interval_get)
* [`dsl_infer_interval_set`](#dsl_infer_interval_set)
* [`dsl_infer_primary_pph_add`](#dsl_infer_primary_pph_add)
* [`dsl_infer_primary_pph_remove`](#dsl_infer_primary_pph_remove)
* [`dsl_infer_pph_add`](#dsl_infer_pph_add)
* [`dsl_infer_pph_remove`](#dsl_infer_pph_remove)

---
## Return Values
Expand Down Expand Up @@ -435,37 +440,35 @@ retval = dsl_gie_interval_set('my-pgie', 2)

<br>

### *dsl_infer_primary_pph_add*
### *dsl_infer_pph_add*
```C++
DslReturnType dsl_infer_primary_pph_add(const wchar_t* name, const wchar_t* handler, uint pad);
DslReturnType dsl_infer_pph_add(const wchar_t* name, const wchar_t* handler, uint pad);
```
This service adds a [Pad Probe Handler](/docs/api-pph.md) to either the Sink or Source pad of the named Primary GIE or TIS.
This service adds a [Pad Probe Handler](/docs/api-pph.md) to either the Sink or Source pad of the named Primary or Secondary GIE or TIS.
**Parameters**
* `name` - [in] unique name of the Primary GIE or TIS to update.
* `handler` - [in] unique name of Pad Probe Handler to add
* `name` - [in] unique name of the Inference Component to update.
* `handler` - [in] unique name of Pad Probe Handler to add.
* `pad` - [in] to which of the two pads to add the handler: `DSL_PAD_SIK` or `DSL_PAD SRC`
**Returns**
* `DSL_RESULT_SUCCESS` on successful add. One of the [Return Values](#return-values) defined above on failure.
**Python Example**
* Example using Nvidia's pyds lib to handle batch-meta data
```Python
retval = dsl_infer_primary_pph_add('my-primary-gie', 'my-pph-handler', `DSL_PAD_SINK`)
retval = dsl_infer_pph_add('my-primary-gie', 'my-pph-handler', `DSL_PAD_SINK`)
```

<br>

### *dsl_infer_primary_pph_remove*
### *dsl_infer_pph_remove*
```C++
DslReturnType dsl_infer_primary_pph_remove(const wchar_t* name, const wchar_t* handler, uint pad);
DslReturnType dsl_infer_pph_remove(const wchar_t* name, const wchar_t* handler, uint pad);
```
This service removes a [Pad Probe Handler](/docs/api-pph.md) from either the Sink or Source pad of the named Primary GIE or TIS. The service will fail if the named handler is not owned by the Primary GIE
This service removes a [Pad Probe Handler](/docs/api-pph.md) from either the Sink or Source pad of the named Primary or Secondary GIE or TIS. The service will fail if the named handler is not owned by the Inference Component
**Parameters**
* `name` - [in] unique name of the Primary GIE to TIS to update.
* `name` - [in] unique name of the Inference Component to update.
* `handler` - [in] unique name of Pad Probe Handler to remove
* `pad` - [in] to which of the two pads to remove the handler from: `DSL_PAD_SIK` or `DSL_PAD SRC`
Expand All @@ -474,7 +477,7 @@ This service removes a [Pad Probe Handler](/docs/api-pph.md) from either the Sin
**Python Example**
```Python
retval = dsl_infer_primary_pph_remove('my-primary-gie', 'my-pph-handler', `DSL_PAD_SINK`)
retval = dsl_infer_pph_remove('my-primary-gie', 'my-pph-handler', `DSL_PAD_SINK`)
```

<br>
Expand All @@ -493,7 +496,8 @@ retval = dsl_infer_primary_pph_remove('my-primary-gie', 'my-pph-handler', `DSL_P
* [Tracker](/docs/api-tracker.md)
* [Segmentation Visualizer](/docs/api-segvisual.md)
* [Tiler](/docs/api-tiler.md)
* [Demuxer, Remxer, and Splitter Tees](/docs/api-tee.md)
* [Demuxer and Splitter Tees](/docs/api-tee.md)
* [Remuxer](/docs/api-remuxer.md)
* [On-Screen Display](/docs/api-osd.md)
* [Sink](/docs/api-sink.md)
* [Pad Probe Handler](/docs/api-pph.md)
Expand Down
3 changes: 2 additions & 1 deletion docs/api-info.md
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,8 @@ retval = dsl_info_log_function_restore()
* [Tracker](/docs/api-tracker.md)
* [Segmentation Visualizer](/docs/api-segvisual.md)
* [Tiler](/docs/api-tiler.md)
* [Demuxer, Remxer, and Splitter Tees](/docs/api-tee.md)
* [Demuxer and Splitter Tees](/docs/api-tee.md)
* [Remuxer](/docs/api-remuxer.md)
* [On-Screen Display](/docs/api-osd.md)
* [Sink](/docs/api-sink.md)
* [Pad Probe Handler](/docs/api-pph.md)
Expand Down
3 changes: 2 additions & 1 deletion docs/api-mailer.md
Original file line number Diff line number Diff line change
Expand Up @@ -497,7 +497,8 @@ num_mailers = dsl_mailer_list_size()
* [Tracker](/docs/api-tracker.md)
* [Segmentation Visualizer](/docs/api-segvisual.md)
* [Tiler](/docs/api-tiler.md)
* [Demuxer, Remxer, and Splitter Tees](/docs/api-tee.md)
* [Demuxer and Splitter Tees](/docs/api-tee.md)
* [Remuxer](/docs/api-remuxer.md)
* [On-Screen Display](/docs/api-osd.md)
* [Sink](/docs/api-sink.md)
* [Pad Probe Handler](/docs/api-pad-probe-handler.md)
Expand Down
3 changes: 2 additions & 1 deletion docs/api-msg-broker.md
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,8 @@ size = dsl_message_broker_list_size()
* [Tracker](/docs/api-tracker.md)
* [Segmentation Visualizer](/docs/api-segvisual.md)
* [Tiler](/docs/api-tiler.md)
* [Demuxer, Remxer, and Splitter Tees](/docs/api-tee.md)
* [Demuxer and Splitter Tees](/docs/api-tee.md)
* [Remuxer](/docs/api-remuxer.md)
* [On-Screen Display](/docs/api-osd.md)
* [Sink](/docs/api-sink.md)
* [Pad Probe Handler](/docs/api-pph.md)
Expand Down
3 changes: 2 additions & 1 deletion docs/api-ode-action.md
Original file line number Diff line number Diff line change
Expand Up @@ -1862,7 +1862,8 @@ size = dsl_ode_action_list_size()
* [Tracker](/docs/api-tracker.md)
* [Segmentation Visualizer](/docs/api-segvisual.md)
* [Tiler](/docs/api-tiler.md)
* [Demuxer, Remxer, and Splitter Tees](/docs/api-tee.md)
* [Demuxer and Splitter Tees](/docs/api-tee.md)
* [Remuxer](/docs/api-remuxer.md)
* [On-Screen Display](/docs/api-osd.md)
* [Sink](/docs/api-sink.md)
* [Pad Probe Handler](/docs/api-pph.md)
Expand Down
3 changes: 2 additions & 1 deletion docs/api-ode-area.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,8 @@ size = dsl_ode_area_list_size()
* [Tracker](/docs/api-tracker.md)
* [Segmentation Visualizer](/docs/api-segvisual.md)
* [Tiler](/docs/api-tiler.md)
* [Demuxer, Remxer, and Splitter Tees](/docs/api-tee.md)
* [Demuxer and Splitter Tees](/docs/api-tee.md)
* [Remuxer](/docs/api-remuxer.md)
* [On-Screen Display](/docs/api-osd.md)
* [Sink](/docs/api-sink.md)
* [Pad Probe Handler](/docs/api-pph.md)
Expand Down
3 changes: 2 additions & 1 deletion docs/api-ode-heat-mapper.md
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,8 @@ size = dsl_ode_heat_mapper_list_size()
* [Tracker](/docs/api-tracker.md)
* [Segmentation Visualizer](/docs/api-segvisual.md)
* [Tiler](/docs/api-tiler.md)
* [Demuxer, Remxer, and Splitter Tees](/docs/api-tee.md)
* [Demuxer and Splitter Tees](/docs/api-tee.md)
* [Remuxer](/docs/api-remuxer.md)
* [On-Screen Display](/docs/api-osd.md)
* [Sink](/docs/api-sink.md)
* [Pad Probe Handler](/docs/api-pph.md)
Expand Down
3 changes: 2 additions & 1 deletion docs/api-ode-trigger.md
Original file line number Diff line number Diff line change
Expand Up @@ -2241,7 +2241,8 @@ size = dsl_ode_trigger_list_size()
* [Tracker](/docs/api-tracker.md)
* [Segmentation Visualizer](/docs/api-segvisual.md)
* [Tiler](/docs/api-tiler.md)
* [Demuxer, Remxer, and Splitter Tees](/docs/api-tee.md)
* [Demuxer and Splitter Tees](/docs/api-tee.md)
* [Remuxer](/docs/api-remuxer.md)
* [On-Screen Display](/docs/api-osd.md)
* [Sink](/docs/api-sink.md)
* [Pad Probe Handler](/docs/api-pph.md)
Expand Down
3 changes: 2 additions & 1 deletion docs/api-osd.md
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,8 @@ retval = dsl_osd_pph_remove('my-osd', 'my-pph-handler', `DSL_PAD_SINK`)
* [Tracker](/docs/api-tracker.md)
* [Segmentation Visualizer](/docs/api-segvisual.md)
* [Tiler](/docs/api-tiler.md)
* [Demuxer, Remxer, and Splitter Tees](/docs/api-tee.md)
* [Demuxer and Splitter Tees](/docs/api-tee.md)
* [Remuxer](/docs/api-remuxer.md)
* **On-Screen Display**
* [Sink](/docs/api-sink.md)
* [Pad Probe Handler](/docs/api-pph.md)
Expand Down
Loading

0 comments on commit b9a2e60

Please sign in to comment.