Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
21b7322
Update revision to v0.30.alpha.dev
rjhowell44 Mar 24, 2024
ebcb895
Implement new GST Element & Bin API
rjhowell44 Mar 26, 2024
6140e74
Implement new GST Element & Bin API
rjhowell44 Mar 27, 2024
6855d01
Implement GST Element API
rjhowell44 Mar 27, 2024
1deeb5c
Implement GstBintr - Custom Pipeline Component
rjhowell44 Mar 28, 2024
3ab5221
Implement GstBintr - Custom Pipeline Component
rjhowell44 Mar 28, 2024
4ccc188
Implement GST Bin - Custom Pipeline Component
rjhowell44 Mar 29, 2024
5ff8a1a
Implement GST Bin - Custom Pipeline Component
rjhowell44 Mar 30, 2024
876825e
Implement DSL GST API - Custom Pipeline Components
rjhowell44 Apr 1, 2024
fb1b52a
Support linking by position and by order
rjhowell44 Apr 3, 2024
338f011
Support linking by position and by order
rjhowell44 Apr 5, 2024
5615846
Simplify inclusion hierarchy
rjhowell44 Apr 6, 2024
2ade8af
Move pph add/remove services to GstNoder up from Bintr
rjhowell44 Apr 6, 2024
33dc8cb
Implement dsl_gst_element_pph_add/remove services
rjhowell44 Apr 6, 2024
86c3785
Document Custom Components - GST API
rjhowell44 Apr 12, 2024
c5262c3
Example - Custom Components - GST API
rjhowell44 Apr 12, 2024
62f9966
Minor updates to the public API
rjhowell44 Apr 12, 2024
730c762
Fix corrupt value for DSL_1K_HD_WIDTH
rjhowell44 Apr 13, 2024
04d847f
Custom Component - GST API Examples
rjhowell44 Apr 14, 2024
d2b4ce9
Update all docs with link to new GST API Reference
rjhowell44 Apr 14, 2024
cd6d5d3
Reorder links in README.md
rjhowell44 Apr 14, 2024
0e6452e
Add files via upload
rjhowell44 Apr 15, 2024
a5d3a3f
Rename symbolic constant
rjhowell44 Apr 16, 2024
9d65b7f
Document link-method and GST API
rjhowell44 Apr 16, 2024
bbba382
Fix Custom Components section
rjhowell44 Apr 16, 2024
54b2c86
Update api-gst.md -minor fixes
rjhowell44 Apr 16, 2024
7b755d1
Merge pull request #1178 from prominenceai/gst_api
rjhowell44 Apr 16, 2024
a7f966f
Fix unintended replace all error
rjhowell44 Apr 17, 2024
6002545
Merge pull request #1179 from prominenceai/fix_dslapi
rjhowell44 Apr 17, 2024
2f2fd01
Remove unrequired input queue from branch
rjhowell44 Apr 17, 2024
dc0cd75
Merge pull request #1181 from prominenceai/remove_queue
rjhowell44 Apr 17, 2024
c961232
Fix missing symbolic constant - cut error
rjhowell44 Apr 17, 2024
f220ea8
add dsl_ode_action_bbox_style_corners_new to dsl.py
rjhowell44 Apr 20, 2024
f245c35
Merge pull request #1183 from prominenceai/style_bbox
rjhowell44 Apr 20, 2024
a0bea0a
Update Triton examples to use traficcamnet models
rjhowell44 Apr 21, 2024
42b7fe7
Merge pull request #1185 from prominenceai/update_tis_examples
rjhowell44 Apr 21, 2024
52cc2f3
Update tracked-objects - support missing from frame max
rjhowell44 Apr 22, 2024
b1633f3
Merge pull request #1187 from prominenceai/fix_tracked_objects
rjhowell44 Apr 22, 2024
b95173e
Add missing dsl_ode_action_label_offset_new
rjhowell44 Apr 23, 2024
18fee6a
Merge pull request #1189 from prominenceai/dslpy_fix
rjhowell44 Apr 23, 2024
48c0024
Implement dsl_ode_action_label_snap_to_grid_new
rjhowell44 Apr 24, 2024
ad14e60
Implement dsl_ode_action_label_connect_to_bbox_new
rjhowell44 Apr 25, 2024
5930242
Merge pull request #1193 from prominenceai/connect_label
rjhowell44 Apr 25, 2024
0f0b7b4
Change cols/rows to moduleWidth/moduleHeight - snap-label-action
rjhowell44 Apr 25, 2024
a48bd99
Fix connect object label to bbox algorithm
rjhowell44 Apr 25, 2024
0b5a81d
Document new ODE Label Actions
rjhowell44 Apr 25, 2024
7098b6f
Merge pull request #1194 from prominenceai/fix_actions
rjhowell44 Apr 25, 2024
3b6a892
Update ODE Actions to parse classifier_meta_list
rjhowell44 Apr 27, 2024
7508ddd
Fix exception on ODE Monitor Action
rjhowell44 Apr 27, 2024
9c4785b
Merge pull request #1196 from prominenceai/classifier_labels
rjhowell44 Apr 27, 2024
3f7ba88
Implement dsl_sink_message_payload_debug_dir_get/set services
rjhowell44 Apr 29, 2024
af37931
Merge pull request #1200 from prominenceai/debug_dir
rjhowell44 May 1, 2024
4a54cc6
Message Sink updates
rjhowell44 May 6, 2024
fa59789
Remove tee and fake sink from Message Sink
rjhowell44 May 6, 2024
6521cd8
Merge pull request #1205 from prominenceai/sink_updates
rjhowell44 May 6, 2024
5337c65
Implement new LiveKit WebRTC Sink
rjhowell44 May 15, 2024
7b0aa0a
Add missing Payload Type constant
rjhowell44 May 16, 2024
6dfe342
Add minimal test coverage for the LiveKit WebRTC Sink
rjhowell44 May 19, 2024
b9854bf
Merge branch 'livekitwebrtcsink' of https://github.com/prominenceai/d…
rjhowell44 May 19, 2024
396b21b
Merge pull request #1207 from prominenceai/livekitwebrtcsink
rjhowell44 May 19, 2024
b8ecff0
Add dsl_sink_webrtc_livekit_new to dsl.py
rjhowell44 May 20, 2024
e37da96
Merge pull request #1208 from prominenceai/livekitwebrtcsink
rjhowell44 May 20, 2024
47303a9
Add new Python opencv Custom PPH example
rjhowell44 May 21, 2024
cda6ff1
Complete/document the cpp opencv example
rjhowell44 May 22, 2024
8527929
Complete/document the opencv examples
rjhowell44 May 22, 2024
d72edd4
Add Overview serction on working with OpenCV
rjhowell44 May 22, 2024
ac1211d
Update overview.md
rjhowell44 May 22, 2024
b751ff9
Merge pull request #1210 from prominenceai/opencv
rjhowell44 May 22, 2024
65c8f8e
Set default link method to by-add-order
rjhowell44 May 23, 2024
9485c57
Merge pull request #1213 from prominenceai/link_method
rjhowell44 May 23, 2024
d596438
Fix duplicate source test cases
rjhowell44 May 23, 2024
c7c2836
Merge pull request #1214 from prominenceai/fix_tests
rjhowell44 May 23, 2024
d403445
document drop_frame_interval param for RTSP Source
rjhowell44 May 23, 2024
46156fd
Update api-reference-list.md
rjhowell44 May 23, 2024
a100a0f
WIP writeup v0.30.alpha.md
rjhowell44 May 23, 2024
baf007f
Review/clean-up new api-gst.md
rjhowell44 May 23, 2024
43361a7
Update default pipeline link-method to by-add-order
rjhowell44 May 23, 2024
effe3aa
Update comments in DslApi.h
rjhowell44 May 23, 2024
7be0969
Add dsl_sink_message_payload_debug_get/set services
rjhowell44 May 23, 2024
cc712d5
Add dsl_sink_message_payload_debug_get/set services
rjhowell44 May 23, 2024
3559978
WIP write-up v0.30.alpha.md release notes
rjhowell44 May 23, 2024
46ee6e8
Update installing-dependencies.md for DS 7.0
rjhowell44 May 25, 2024
5f170ee
Merge pull request #1215 from prominenceai/v0.30.alpha.docs
rjhowell44 May 26, 2024
7d8a1bc
Updates required to build WebRTC Sink GST 1.20
rjhowell44 May 27, 2024
6a6ff9e
Merge pull request #1218 from prominenceai/webrtc_build
rjhowell44 May 27, 2024
003b782
Complete the "Working with Buffer-Surfaces and OpenCV" section
rjhowell44 May 28, 2024
5b70d78
Remove unused code
rjhowell44 May 28, 2024
672716b
Fix link in api-reference-list.md
rjhowell44 May 28, 2024
9e5e80d
WIP Create v0.30.alpha Release Notes
rjhowell44 May 28, 2024
e0a037e
Fix V4L2 Source - failing on dGPU build
rjhowell44 May 29, 2024
c73ed77
Merge pull request #1220 from prominenceai/v4l2_source
rjhowell44 May 29, 2024
1560468
Create the v0.30.alpha release notes
rjhowell44 May 29, 2024
8ab7dd8
Add v0.30.alpha release
rjhowell44 May 29, 2024
687cd40
Merge pull request #1221 from prominenceai/v0.30.alpha.docs
rjhowell44 May 29, 2024
d77faf5
Update version to v0.30.alpha
rjhowell44 May 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Updates required to build WebRTC Sink GST 1.20
  • Loading branch information
rjhowell44 committed May 27, 2024
commit 7d8a1bc2b31bf05c9c0b5909992da2abadb177c2
19 changes: 11 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,8 @@ CXX_VERSION:=c++17
DSL_VERSION:='L"v0.30.alpha.dev"'
GLIB_VERSION:=2.0

# Update GStreamer sub-version to 20 to enabled the WebRtcSink
GSTREAMER_VERSION:=1.0
GSTREAMER_SUB_VERSION:=18
GSTREAMER_SUB_VERSION:=20
GSTREAMER_SDP_VERSION:=1.0
GSTREAMER_WEBRTC_VERSION:=1.0
LIBSOUP_VERSION:=2.4
Expand All @@ -60,7 +59,11 @@ BUILD_WITH_OPENCV:=false
# - set BUILD_INTER_PIPE:=true
BUILD_INTER_PIPE:=false

# To enable the LiveKit WebRTC Sink component (requires GSTREAMER_SUB_VERSION > 22)
# To enable the WebRTC Sink component (requires GStreamer >= 1.20)
# - set BUILD_WEBRTC:=true
BUILD_WEBRTC:=false

# To enable the LiveKit WebRTC Sink component (requires GStreamer >= 1.22)
# - set BUILD_LIVEKIT_WEBRTC:=true
BUILD_LIVEKIT_WEBRTC:=false

Expand Down Expand Up @@ -119,7 +122,7 @@ INCS+= $(wildcard ./test/*.hpp)
TEST_OBJS+= $(wildcard ./test/api/*.o)
TEST_OBJS+= $(wildcard ./test/unit/*.o)

ifeq ($(shell test $(GSTREAMER_SUB_VERSION) -gt 18; echo $$?),0)
ifeq ($(BUILD_WEBRTC),true)
SRCS+= $(wildcard ./src/webrtc/*.cpp)
SRCS+= $(wildcard ./test/webrtc/*.cpp)
INCS+= $(wildcard ./src/webrtc/*.h)
Expand Down Expand Up @@ -153,8 +156,8 @@ CFLAGS+= -I$(INC_INSTALL_DIR) \
-DDSL_LOGGER_IMP='"DslLogGst.h"'\
-DBUILD_WITH_FFMPEG=$(BUILD_WITH_FFMPEG) \
-DBUILD_WITH_OPENCV=$(BUILD_WITH_OPENCV) \
-DGSTREAMER_SUB_VERSION=$(GSTREAMER_SUB_VERSION) \
-DBUILD_INTER_PIPE=$(BUILD_INTER_PIPE) \
-DBUILD_WEBRTC=$(BUILD_WEBRTC) \
-DBUILD_LIVEKIT_WEBRTC=$(BUILD_LIVEKIT_WEBRTC) \
-DBUILD_NMP_PPH=$(BUILD_NMP_PPH) \
-DBUILD_MESSAGE_SINK=$(BUILD_MESSAGE_SINK) \
Expand All @@ -181,7 +184,7 @@ ifeq ($(BUILD_LIVEKIT_WEBRTC),true)
CFLAGS+= -I./test/livekitwebrtc
endif

ifeq ($(shell test $(GSTREAMER_SUB_VERSION) -gt 18; echo $$?),0)
ifeq ($(BUILD_WEBRTC),true)
CFLAGS+= -I/usr/include/libsoup-$(LIBSOUP_VERSION) \
-I/usr/include/json-glib-$(JSON_GLIB_VERSION) \
-I./src/webrtc
Expand Down Expand Up @@ -220,7 +223,7 @@ LIBS+= -L$(LIB_INSTALL_DIR) \
-L/usr/local/cuda/lib64/ -lcudart \
-Wl,-rpath,$(LIB_INSTALL_DIR)

ifeq ($(shell test $(GSTREAMER_SUB_VERSION) -gt 18; echo $$?),0)
ifeq ($(BUILD_WEBRTC),true)
LIBS+= -Lgstreamer-sdp-$(GSTREAMER_SDP_VERSION) \
-Lgstreamer-webrtc-$(GSTREAMER_WEBRTC_VERSION) \
-Llibsoup-$(LIBSOUP_VERSION) \
Expand All @@ -242,7 +245,7 @@ PKGS:= gstreamer-$(GSTREAMER_VERSION) \
gstreamer-rtsp-server-$(GSTREAMER_VERSION) \
x11

ifeq ($(shell test $(GSTREAMER_SUB_VERSION) -gt 18; echo $$?),0)
ifeq ($(BUILD_WEBRTC),true)
PKGS+= gstreamer-sdp-$(GSTREAMER_SDP_VERSION) \
gstreamer-webrtc-$(GSTREAMER_WEBRTC_VERSION) \
libsoup-$(LIBSOUP_VERSION) \
Expand Down
28 changes: 9 additions & 19 deletions docs/building-dsl.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@ The DSL shared library is built using GCC and GNU Make. The MakeFile is located
1. Clone this repository to pull down all source
2. Use the make (all) default to build the `dsl-test-app` executable
3. Use the `sudo make install` option to build the object files into `libdsl.so` and intall the lib
4. Generate caffemodel engine files (optional)
4. Generate trafficcamnet engine files (optional)
5. Import the shared lib using Python3
6. Run the `dsl-test-app` to verify DSL changes (optional)

### Clone the Repository
Clone the repository to pull all source code required to build the DSL test application - then navigate to the `deepstream-services-library` root folder.
Expand All @@ -23,13 +22,8 @@ cd deepstream-services-library
Invoke the standard make (all) to compile all source code and test scenarios into objects files, and link them into a [Catch2](https://github.com/catchorg/Catch2) test application. On successful build, the `dsl-test-app` will be found under the same root folder.

```bash
make -j <num-cores>
make -j$(nproc)
```
For example:
```bash
make -j 4
```
to use 4 CPU cores for the parallel.

### Make and install the shared library and install dsl.py
Once the dsl-test-app.exe has been created, the source-only objects can be re-linked into the `libdsl.so` with the make install option. Root level privileges are required for the Makefile to copy the lib to `/usr/local/lib` once built.
Expand All @@ -40,23 +34,19 @@ The DSL Python bindings file (dsl.py) is also copied to `.local/lib/python3.6/si
sudo make install
```

### Generate caffemodel engine files (optional)
Enable DSL logging if you wish to monitor the process (optional).
```bash
export GST_DEBUG=1,DSL:4
```
### Generate trafficcamnet engine files (optional)

execute the python script in the `deepstream-services-library` root folder.
```bash
sudo python3 make_caffemodel_engine_files.py
sudo python3 make_trafficcamnet_engine_files.py
```
**Note:** this script can take several minutes to run.

The following files are generated (Jetson Nano versions by default)
The following files are generated
```
/opt/nvidia/deepstream/deepstream/samples/models/Primary_Detector_Nano/resnet10.caffemodel_b8_gpu0_fp16.engine
/opt/nvidia/deepstream/deepstream/samples/models/Secondary_CarColor/resnet18.caffemodel_b8_gpu0_fp16.engine
/opt/nvidia/deepstream/deepstream/samples/models/Secondary_CarMake/resnet18.caffemodel_b8_gpu0_fp16.engine
/opt/nvidia/deepstream/deepstream/samples/models/Secondary_VehicleTypesresnet18.caffemodel_b8_gpu0_fp16.engine
/opt/nvidia/deepstream/deepstream/samples/models/Primary_Detector/resnet18_trafficcamnet.etlt_b8_gpu0_int8.engine
/opt/nvidia/deepstream/deepstream/samples/models/Secondary_VehicleMake/resnet18_vehiclemakenet.etlt_b8_gpu0_int8.engine
/opt/nvidia/deepstream/deepstream/samples/models/Secondary_VehicleTypes/resnet18_vehicletypenet.etlt_b8_gpu0_int8.engine
```
Update the Primary detector path specification in the script to generate files for other devices.

Expand Down
43 changes: 34 additions & 9 deletions docs/installing-dependencies.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Installing DSL Dependencies
The DeepStream Services Library (DSL) is built on the NVIDIA® [DeepStream SDK](https://developer.nvidia.com/deepstream-sdk) and requires all SDK components to be installed and verified.
The DeepStream Services Library (DSL) is built on the NVIDIA® [DeepStream SDK](https://developer.nvidia.com/deepstream-sdk) and requires all SDK components and prerequisites to be installed and verified.

Please consult the [NVIDIA DeepStream Quick Start Guide](https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_Quickstart.html) for complete Installation Instructions.

> The following instructions are for NVIDIA DeepStream Versions 6.4 and 7.0 on Ubuntu 22.04.
> The following installation instructions are specific to NVIDIA® DeepStream Versions 6.4 and 7.0 on Ubuntu 22.04.

## Contents
* [Base Install - Jetson and dGPU](#base-install---jetson-and-dgpu)
* [Additional WebRTC Dependencies](#additional-webrtc-dependencies---deepstream-64--gstreamer-120)
* [Additional WebRTC Sink Dependencies](#additional-webrtc-sink-dependencies)
* [Enabling Extended Image Services (Optional)](#enabling-extended-image-services-optional)
* [Enabling Interpipe Services (Optional)](#enabling-interpipe-services-optional)
* [Documentation and Debug Dependencies (Optional)](#documentation-and-debug-dependencies-optional)
Expand Down Expand Up @@ -43,19 +43,43 @@ apt update && apt-get install \
libcurl4-openssl-dev
```

## Additional WebRTC Dependencies - DeepStream 6.4 / GStreamer 1.20
Enter the following command to install the additional WebRTC
## Additional WebRTC Sink Dependencies
### Native Install
Enter the following command to install the additional WebRTC Sink dependencies.
```bash
sudo apt-get install \
libjson-glib-dev \
libsoup-gnome2.4-dev
libsoup-gnome2.4-dev \
libgstreamer-plugins-bad1.0-dev \
libnice-dev \
gstreamer1.0-nice
```
### Container Install
The same as above, but without using sudo
```bash
apt-get install \
libjson-glib-dev \
libsoup-gnome2.4-dev \
libgstreamer-plugins-bad1.0-dev \
libnice-dev \
gstreamer1.0-nice
```

### Post Install
After installation, enter the following command to update the json-glib-1.0 package.
```bash
pkg-config --cflags json-glib-1.0
```
### Updating the Makefile
To enable the WebRTC Sink Component, search for the following section in the DSL Makefile and set the BUILD flag to true.
```makefile
# To enable the WebRTC Sink component (requires GStreamer >= 1.20)
# - set BUILD_WEBRTC:=true
BUILD_WEBRTC:=true
```

---

## Enabling Extended Image Services (Optional)
DSL provides a choice of using [FFmpeg](https://ffmpeg.org/) or [OpenCV](https://opencv.org/) to implement the Extended Images Services, which include:
* [Streaming Image Source](/docs/api-source.md#dsl_source_image_stream_new)
Expand Down Expand Up @@ -93,7 +117,7 @@ There are insufficient dependencies in the Docker container to install and use l

### Updating the Makefile
To enable the Extended Image Services, search for the following section in the DSL Makefile and set the appropriate BUILD_WITH flag to true.
```
```makefile
# To enable the extended Image Services, install either the FFmpeg or OpenCV
# development libraries (See /docs/installing-dependencies.md), and
# - set either BUILD_WITH_FFMPEG or BUILD_WITH_OPENCV:=true (NOT both)
Expand Down Expand Up @@ -145,15 +169,16 @@ sudo apt-get install doxygen
* [On-Screen Display](/docs/api-osd.md)
* [Demuxer and Splitter Tees](/docs/api-tee)
* [Sink](/docs/api-sink.md)
* [Branch](/docs/api-branch.md)
* [Component](/docs/api-component.md)
* [Custom Component](/docs/api-gst.md)
* [Pad Probe Handler](/docs/api-pph.md)
* [ODE Trigger](/docs/api-ode-trigger.md)
* [ODE Accumulator](/docs/api-ode-accumulator.md)
* [ODE Action ](/docs/api-ode-action.md)
* [ODE Area](/docs/api-ode-area.md)
* [ODE Heat-Mapper](/docs/api-ode-heat-mapper.md)
* [Display Type](/docs/api-display-type.md)
* [Branch](/docs/api-branch.md)
* [Component](/docs/api-component.md)
* [Mailer](/docs/api-mailer.md)
* [WebSocket Server](/docs/api-ws-server.md)
* [Message Broker](/docs/api-msg-broker.md)
Expand Down
Loading