Skip to content
Merged

3.3.0 #1112

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
27f1de5
nginx: proxy.conf: remove ssl_early_data
Azkali Jul 24, 2025
76f392c
Use the FFmpeg implementation from switchroot instead of Nvidia's
Azkali Jul 24, 2025
2431c0a
Merge pull request #1061 from Azkali/patch-1
roflcoopter Jul 29, 2025
de3c011
Merge pull request #1062 from Azkali/switchroot/ffmpeg
roflcoopter Jul 29, 2025
d642406
improve perfomance of events page date picker
roflcoopter Jul 31, 2025
6c624b3
reduce image size for amd64 by not installing CUDA libraries
roflcoopter Jul 31, 2025
e22a0e9
Merge pull request #1065 from roflcoopter/feature/amd64-image-size
roflcoopter Jul 31, 2025
9796cd8
Merge pull request #1064 from roflcoopter/feature/events-date-picker-…
roflcoopter Jul 31, 2025
fe94493
smarter calculation of when to end an hls playlist
roflcoopter Jul 31, 2025
91c1060
Merge pull request #1066 from roflcoopter/feature/hls-generation-impr…
roflcoopter Aug 1, 2025
f0d5c09
add additional error message for tier check worker
roflcoopter Aug 3, 2025
eda7efb
Merge pull request #1072 from roflcoopter/master
roflcoopter Aug 3, 2025
a560f3a
Merge pull request #1071 from roflcoopter/feature/check-tier-error-me…
roflcoopter Aug 3, 2025
f38cbc2
add page to view dispatched system events
roflcoopter Aug 5, 2025
bc451f8
suggest dispatched events in the system event viewer
roflcoopter Aug 11, 2025
ee6f677
Merge pull request #1078 from roflcoopter/feature/system-event-viewer
roflcoopter Aug 11, 2025
6876981
go2rtc component doc updates
roflcoopter Aug 11, 2025
31a791c
Merge pull request #1079 from roflcoopter/feature/go2rtc-config-docs
roflcoopter Aug 11, 2025
5fbbe52
fix jetson nano ffmpeg builds
roflcoopter Aug 12, 2025
fcbc6a3
Merge pull request #1080 from roflcoopter/feature/fix-jetson-nano-builds
roflcoopter Aug 12, 2025
c588a04
add jinja2 templating engine
roflcoopter Aug 15, 2025
1641c14
Merge pull request #1081 from roflcoopter/feature/add-jinja-templating
roflcoopter Aug 15, 2025
1674cbb
implement webhook component
roflcoopter Aug 15, 2025
4d41c37
Merge pull request #1082 from roflcoopter/feature/webhook-component
roflcoopter Aug 15, 2025
3942f87
add docs on templating
roflcoopter Aug 15, 2025
a5a73ce
Merge pull request #1084 from roflcoopter/feature/templating-docs
roflcoopter Aug 15, 2025
840a903
improve shutdown sequence when DomanNotReady is raised
roflcoopter Aug 15, 2025
4f84cc3
add link to templating docs from component configuration generator
roflcoopter Aug 15, 2025
9e06cc3
Merge pull request #1086 from roflcoopter/feature/jinja-docs-link
roflcoopter Aug 15, 2025
1b2aa56
Merge pull request #1085 from roflcoopter/feature/improve-shutdown
roflcoopter Aug 15, 2025
b513551
improve startup retry logic for ffprobe
roflcoopter Aug 15, 2025
3837932
Merge pull request #1087 from roflcoopter/feature/ffprobe-retry-logic
roflcoopter Aug 15, 2025
0ea6c98
remove motion contours from motion detected event
roflcoopter Aug 15, 2025
132e8f7
Merge pull request #1088 from roflcoopter/feature/event-motion-contours
roflcoopter Aug 15, 2025
173331a
add pcm_s16be to unsupported codecs
roflcoopter Aug 18, 2025
e47fc30
Merge pull request #1089 from roflcoopter/feature/pcm_s16be-unsupported
roflcoopter Aug 18, 2025
7f3f3ed
attempt to free up space on azure agent
roflcoopter Aug 19, 2025
ac03221
Merge pull request #1090 from roflcoopter/feature/azure-free-more-space
roflcoopter Aug 19, 2025
61832ba
fix race condition when stopping and starting a camera rapidly
roflcoopter Aug 20, 2025
816da95
Merge pull request #1091 from roflcoopter/feature/ffmpeg-reconnect-race
roflcoopter Aug 20, 2025
99bb180
add websocket command to render template
roflcoopter Aug 18, 2025
aede3c8
add jinja template editor
roflcoopter Aug 20, 2025
773fd79
create tests for useDebouncedTemplateRender
roflcoopter Aug 20, 2025
f9225a9
add template editor screenshot to docs
roflcoopter Aug 20, 2025
beb2618
log template errors as debug messages
roflcoopter Aug 21, 2025
6beef8e
fix call signature in template tests
roflcoopter Aug 21, 2025
6aac1e1
Merge pull request #1092 from roflcoopter/feature/template-editor
roflcoopter Aug 21, 2025
5ea4ca7
make all processes and subprocs create new sessions
roflcoopter Aug 22, 2025
b880821
Merge pull request #1093 from roflcoopter/feature/process-sessions
roflcoopter Aug 22, 2025
4616def
give file moves and deletes priority over tier check in storage subpr…
roflcoopter Aug 22, 2025
b2bda92
Merge pull request #1094 from roflcoopter/feature/storage-file-operat…
roflcoopter Aug 22, 2025
4edf7cd
add cleanup job that checks for files with zero size
roflcoopter Aug 22, 2025
6c24e76
Merge pull request #1095 from roflcoopter/feature/zero-size-cleanup-job
roflcoopter Aug 23, 2025
6de1229
run aarch64 builds on self hosted agent
roflcoopter Aug 24, 2025
aac608a
self hosted aarch64 azure agent
roflcoopter Aug 25, 2025
677d343
conditional cross builds for aarch64 based devices
roflcoopter Aug 25, 2025
08de632
Merge pull request #1099 from roflcoopter/feature/azure-self-hosted-a…
roflcoopter Aug 25, 2025
4644739
hailo8 binary and wheel build
roflcoopter Sep 1, 2025
62b1595
add support for Url and PathExists in gen_docs
roflcoopter Sep 8, 2025
3b176ea
add hailo component
roflcoopter Sep 10, 2025
187138f
bump docker base version to 1.9.0
roflcoopter Sep 10, 2025
41a4d25
bump wheels version to 1.8
roflcoopter Sep 10, 2025
ea89c0f
Implement timelapse frame extractions
matvey00z Sep 11, 2025
3e20c52
Minor fixes
matvey00z Sep 11, 2025
9f8c3c8
Regen docs
matvey00z Sep 12, 2025
e571558
Fix default config in test
matvey00z Sep 12, 2025
3070606
Fix flake8
matvey00z Sep 12, 2025
8c5169d
upload hailo wheels to azure artifacts
roflcoopter Sep 12, 2025
84912c6
install hailort in ci from azure artifacts
roflcoopter Sep 12, 2025
b9525b9
publish libhailort to azure artifacts
roflcoopter Sep 12, 2025
37ce8bc
Merge pull request #1104 from matvey00z/timelapse
roflcoopter Sep 15, 2025
a307f6e
install libhailort in ci
roflcoopter Sep 15, 2025
2140258
Merge pull request #1103 from roflcoopter/feature/hailo-detector
roflcoopter Sep 15, 2025
2469b56
extract timelapse frames to temp folder
roflcoopter Sep 16, 2025
5277d2e
fix timelapse interval when using seconds
roflcoopter Sep 16, 2025
4f4bf08
add timelapse path to cleanup jobs
roflcoopter Sep 16, 2025
29418ae
add docs on timelapse path
roflcoopter Sep 16, 2025
c1e043f
Merge pull request #1108 from roflcoopter/feature/timelapse-improvements
roflcoopter Sep 19, 2025
f362b48
detect if running on rpi, currently no automatic hwaccel is done
roflcoopter Sep 19, 2025
b942ae9
Merge pull request #1109 from roflcoopter/feature/rpi5-ffmpeg-libraries
roflcoopter Sep 20, 2025
0a5148d
fix object detector zone examples in the docs
roflcoopter Sep 24, 2025
8803809
Merge branch 'master' into dev
roflcoopter Sep 24, 2025
17e2f7f
add /ffmpeg/lib to path
roflcoopter Sep 24, 2025
114c85a
fix instructions to store segments in memory
roflcoopter Sep 25, 2025
2ea4866
Merge pull request #1114 from roflcoopter/feature/ffmpeg-lib-path
roflcoopter Sep 25, 2025
7035999
Merge pull request #1113 from roflcoopter/feature/object-detector-zon…
roflcoopter Sep 25, 2025
fe6d275
Merge pull request #1115 from roflcoopter/feature/ffmpeg-segments-mem…
roflcoopter Sep 25, 2025
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
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
!requirements.txt
!requirements_test.txt
!requirements-3.9.txt
!docker/azure-agent-start.sh
!docker/opencv-python-headless-setup.py
!docker/jetson-nano/opencv-tuple.patch
!rootfs/
Expand Down
17 changes: 16 additions & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
uses: ./.github/templates/run_in_venv
with:
command: |
pip3 install --extra-index-url https://download.pytorch.org/whl/cpu -r requirements.txt -r requirements_test.txt -r requirements_ci.txt && \
pip3 install --extra-index-url https://download.pytorch.org/whl/cpu --extra-index-url https://pkgs.dev.azure.com/viseron/Viseron%20Pipelines/_packaging/viseron-wheels/pypi/simple -r requirements.txt -r requirements_test.txt -r requirements_ci.txt && \
pre-commit install

prepare-pre-commit:
Expand Down Expand Up @@ -488,6 +488,21 @@ jobs:
sudo add-apt-repository "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main"
sudo apt-get update
sudo apt-get install -y --no-install-recommends libedgetpu1-std python3-gi python3-gst-1.0
- name: Install libhailort for hailo docs
env:
AZURE_DEVOPS_EXT_PAT: ${{ secrets.AZURE_DEVOPS_EXT_PAT }}
run: |
set -e
HAILO_VERSION=$(grep '^HAILO_VERSION=' azure-pipelines/.env | cut -d'"' -f2)
echo "Logging in to Azure DevOps"
echo "$AZURE_DEVOPS_EXT_PAT" | az devops login --organization https://dev.azure.com/viseron || true
echo "Downloading libhailort-amd64 version $HAILO_VERSION"
az artifacts universal download --organization https://dev.azure.com/viseron/ --project="Viseron Pipelines" --scope project --feed viseron-binaries --name libhailort-amd64 --version "$HAILO_VERSION" --path libhailort_pkg
echo "Installing libhailort to /usr/local/lib"
sudo cp libhailort_pkg/libhailort.so.* /usr/local/lib/
sudo ldconfig
ls -l /usr/local/lib/libhailort.so.*
az devops logout
- name: Run script to check generated docs
uses: ./.github/templates/run_in_venv
with:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,12 @@
!/docker/jetson-nano/tflite_runtime-2.5.0.post1-cp38-cp38-linux_aarch64.whl
!/docker/rpi3
!/docker/rpi3/Dockerfile*
!/docker/rpi5
!/docker/rpi5/Dockerfile*
!/docker/ffprobe_wrapper
!/docker/ffmpeg_wrapper
!/docker/yolov4*.cfg
!/docker/azure-agent-start.sh
!/docker/opencv-python-headless-setup.py
!/docker/jetson-nano/opencv-tuple.patch
!/rootfs/
Expand Down
6 changes: 6 additions & 0 deletions .mypy.ini
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,15 @@ ignore_missing_imports = true
[mypy-gi.repository.*]
ignore_missing_imports = true

[mypy-hailo_platform.*]
ignore_missing_imports = true

[mypy-imutils.*]
ignore_missing_imports = true

[mypy-jinja2.*]
ignore_missing_imports = true

[mypy-path.*]
ignore_missing_imports = true

Expand Down
7 changes: 4 additions & 3 deletions azure-pipelines/.env
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
UBUNTU_VERSION="jammy"
UBUNTU_VERSION_NUMBER="22.04"
BASE_VERSION="1.8.0"
BASE_VERSION="1.9.0"
OPENCV_VERSION="4.10.0"
OPENVINO_VERSION="2024.0.0"
FFMPEG_VERSION="5.1.2"
DLIB_VERSION="19.24.4"
HAILO_VERSION="4.22.0"
SKLEARN_VERSION="1.2.2"
WHEELS_VERSION="1.7"
WHEELS_VERSION="1.8"
S6_OVERLAY_VERSION="2.1.0.2"
CMAKE_VERSION=3.20.0
MAKEFLAGS="-j 5"
Expand All @@ -23,7 +24,7 @@ JETPACK_VERSION_MAJOR=32
JETPACK_VERSION_MINOR=6
JETPACK_VERSION_PATCH=1
JETSON_NANO_FFMPEG_VERSION="4.2.2"
JETSON_NANO_FFMPEG_APT_VERSION="7:4.2.2-nvidia"
JETSON_NANO_FFMPEG_APT_VERSION="9:3.4.11-2ubuntu0.1l4t"
CUDA_VERSION=12.3.2
DARKNET_COMMIT=27b37bf
GPAC_VERSION=2.4.0
Expand Down
83 changes: 83 additions & 0 deletions azure-pipelines/azure-pipelines-tools.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,86 @@ jobs:
architectures:
- amd64-cuda
- jetson-nano
- template: templates/build.yaml
parameters:
image: hailo
noCache: ${{ parameters.noCache }}
architectures:
- amd64
- aarch64

# Publish hailo wheels and libhailort packages
- job: publish_hailo_artifacts
displayName: Publish Hailo artifacts
dependsOn:
- build_hailo_amd64
- build_hailo_aarch64
condition: succeeded()
strategy:
maxParallel: 1
matrix:
amd64:
ARCH: amd64
aarch64:
ARCH: aarch64
pool:
vmImage: ubuntu-latest
steps:
- task: Docker@2
displayName: Login to Docker Hub
inputs:
command: login
containerRegistry: "Docker Hub"
- script: |
set -e
ARCH=$(ARCH)
HAILO_VERSION=$(grep '^HAILO_VERSION=' azure-pipelines/.env | cut -d'"' -f2)
if [ -z "$HAILO_VERSION" ]; then
echo "Failed to determine HAILO_VERSION" >&2
exit 1
fi
IMAGE_NAME="roflcoopter/${ARCH}-hailo:${HAILO_VERSION}"
echo "Pulling $IMAGE_NAME"
docker pull $IMAGE_NAME
CID=$(docker create "$IMAGE_NAME" bash)

mkdir -p hailo-wheels/${ARCH}
docker cp $CID:/wheels/. hailo-wheels/${ARCH}/

# Prepare libhailort universal package directory per architecture
mkdir -p libhailort-dist-${ARCH}
docker cp $CID:/usr/local/lib/libhailort.so.${HAILO_VERSION} libhailort-dist-${ARCH}/

docker rm $CID
echo "Extracted files:"; ls -1 hailo-wheels/${ARCH}
echo "libhailort files:"; ls -1 libhailort-dist-${ARCH}
echo "##vso[task.setvariable variable=HAILO_VERSION]$HAILO_VERSION"
displayName: Extract wheels
- task: TwineAuthenticate@1
displayName: Authenticate to Azure Artifacts (Python feed)
inputs:
artifactFeed: "Viseron Pipelines/viseron-wheels"
- script: |
set -e
ARCH=$(ARCH)
python3 -m pip install --upgrade pip
python3 -m pip install --no-cache-dir twine==6.1.0
echo "Uploading wheels to Azure Artifacts feed 'viseron-wheels'"
python3 -m twine upload --skip-existing --config-file $(PYPIRC_PATH) -r viseron-wheels hailo-wheels/${ARCH}/*.whl
displayName: Upload wheels
- task: UniversalPackages@0
displayName: Publish libhailort universal package
inputs:
command: publish
publishDirectory: libhailort-dist-$(ARCH)
vstsFeedPublish: "Viseron Pipelines/viseron-binaries"
vstsFeedPackagePublish: libhailort-$(ARCH)
versionOption: custom
versionPublish: $(HAILO_VERSION)
packagePublishDescription: "libhailort shared library ($(ARCH)) for Hailo version $(HAILO_VERSION)"
- task: Docker@2
displayName: Logoff Docker Hub
inputs:
command: logout
containerRegistry: "Docker Hub"
condition: always()
40 changes: 40 additions & 0 deletions azure-pipelines/docker-compose-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,18 @@ services:
- roflcoopter/amd64-dlib:$DLIB_VERSION
image: roflcoopter/amd64-dlib:$DLIB_VERSION

amd64-hailo:
build:
context: ..
dockerfile: ./docker/Dockerfile.hailo
args:
BUILD_FROM: ubuntu:$UBUNTU_VERSION
MAKEFLAGS: "$MAKEFLAGS"
HAILO_VERSION: "$HAILO_VERSION"
cache_from:
- roflcoopter/amd64-hailo:$HAILO_VERSION
image: roflcoopter/amd64-hailo:$HAILO_VERSION

amd64-wheels:
build:
context: ..
Expand All @@ -86,6 +98,7 @@ services:
ARCH: amd64
BUILD_FROM: ubuntu:$UBUNTU_VERSION
DLIB_VERSION: "$DLIB_VERSION"
EXTRA_PIP_ARGS: --extra-index-url https://download.pytorch.org/whl/cpu
OPENCV_VERSION: "$OPENCV_VERSION"
cache_from:
- roflcoopter/amd64-wheels:$WHEELS_VERSION
Expand All @@ -102,6 +115,7 @@ services:
IGC_VERSION: "$IGC_VERSION"
LEVEL_ZERO_GPU: "$LEVEL_ZERO_GPU"
OPENCL_SHA256_FILENAME: "$OPENCL_SHA256_FILENAME"
HAILO_VERSION: "$HAILO_VERSION"
context: ..
dockerfile: ./docker/amd64/Dockerfile.base
cache_from:
Expand Down Expand Up @@ -245,6 +259,7 @@ services:
IGC_VERSION: "$IGC_VERSION"
LEVEL_ZERO_GPU: "$LEVEL_ZERO_GPU"
OPENCL_SHA256_FILENAME: "$OPENCL_SHA256_FILENAME"
HAILO_VERSION: "$HAILO_VERSION"
cache_from:
- roflcoopter/amd64-cuda-base:$BASE_VERSION
image: roflcoopter/amd64-cuda-base:$BASE_VERSION
Expand Down Expand Up @@ -416,6 +431,17 @@ services:
- roflcoopter/aarch64-dlib:$DLIB_VERSION
image: roflcoopter/aarch64-dlib:$DLIB_VERSION

aarch64-hailo:
build:
context: ..
dockerfile: ./docker/Dockerfile.hailo
args:
BUILD_FROM: ubuntu:$UBUNTU_VERSION
MAKEFLAGS: "$MAKEFLAGS"
HAILO_VERSION: "$HAILO_VERSION"
cache_from:
- roflcoopter/aarch64-hailo:$HAILO_VERSION
image: roflcoopter/aarch64-hailo:$HAILO_VERSION
aarch64-wheels:
build:
context: ..
Expand All @@ -436,6 +462,7 @@ services:
args:
UBUNTU_VERSION: "$UBUNTU_VERSION"
FFMPEG_VERSION: "$FFMPEG_VERSION"
HAILO_VERSION: "$HAILO_VERSION"
cache_from:
- roflcoopter/aarch64-base:$BASE_VERSION
image: roflcoopter/aarch64-base:$BASE_VERSION
Expand Down Expand Up @@ -615,6 +642,19 @@ services:
- roflcoopter/jetson-nano-viseron:dev
image: roflcoopter/jetson-nano-viseron:dev

################ RaspberryPi 5 #####################################
rpi5-azure-agent:
build:
context: ..
dockerfile: ./docker/rpi5/Dockerfile.azure
args:
TARGETARCH: "linux-arm64"
UBUNTU_VERSION: "$UBUNTU_VERSION"
cache_from:
- roflcoopter/rpi5-azure-agent:latest
image: roflcoopter/rpi5-azure-agent:latest

################### Other ##########################################
models:
build:
context: ..
Expand Down
Loading
Loading