prominenceai / deepstream-services-library

A shared library of on-demand DeepStream Pipeline Services for Python and C/C++

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GitHub release (latest by date including pre-releases) GitHub license Documentation Status Ask Me Anything! Discord

DeepStream Services Library

Intelligent Audio and Video Analytics (IAVA)

A library of on-demand DeepStream Pipeline services. Written in C++ 17 with an extern "C" API, The DeepStream Services Library (DSL) can be called from both C/C++ and Python applications.

Examples

C++

#include <DslApi.h>

// New V4L2 Source
uint retval = dsl_source_v4l2_new(L"my-web-cam-1", L"/dev/video0");

Python3

from dsl import *

# New V4L2 Source
retval = dsl_source_v4l2_new('my-web-cam-1', '/dev/video0')

DSL is built on the NVIDIA® DeepStream SDK, "A complete streaming analytics toolkit for AI-based video and image understanding, as well as multi-sensor processing.",

The DeepStream SDK and DSL use the open source GStreamer,  "An extremely powerful and versatile framework for creating streaming media applications".


Important Bulletins

The latest releases (v0.28.alpha and v0.29.alpha) were developed to support DeepSteam 6.3 and 6.4. However, there are several critical NVIDIA bugs that affect DSL's behavior. We are currently waiting on an ETA for a new DeepStream release (hopefully for NVIDIA GTC 2024 | March 18–21). Issues include:

  1. Pipelines with new nvstreammux and nvstreamdemux fail to play correctly in DS 6.3
  2. Unable to record with deepstream-testsr example on Jetson Orin Nano with DeepStream 6.4
  3. Pipelines with jpegenc and multifilesink produce invalid jpeg files in DS 6.4
  4. DeepStream can’t decode certain H265 streams properly
  5. There are other New nvstreammux issues that still need to be reported.

IMPORANT! There are breaking changes in the most recent release. Please read the Release Notes carefully.

Contributing

DSL is released under the MIT License. Contributions are welcome and greatly appreciated. Please review our code of conduct.

Please report issues!

DSL Branching Workflow

DSL Git Branching Workflow

  1. Master is always the latest release and is only updated once per release.
  2. Develop is the next release currently in development. The branch will be named with the next release label.
  3. Feature all work is done on feature branches, named for the feature under development.

All pull requests should be made against the current Develop branch.

Discord

Come join us on Discord, an informal place to chat, ask questions, discuss ideas, etc.

DSL Users Guide

About

A shared library of on-demand DeepStream Pipeline Services for Python and C/C++

License:MIT License


Languages

Language:C++ 89.0%Language:C 6.8%Language:Python 4.1%Language:Makefile 0.1%