mirror of
https://github.com/scottlamb/moonfire-nvr.git
synced 2024-12-26 15:15:56 -05:00
307a3884a0
* switch the config interface over to use Retina and make the test button honor rtsp_transport = udp. * adjust the threading model of the Retina streaming code. Before, it spawned a background future that read from the runtime and wrote to a channel. Other calls read from this channel. After, it does work directly from within the block_on calls (no channels). The immediate motivation was that the config interface didn't have another runtime handy. And passing in a current thread runtime deadlocked. I later learned this is a difference between Runtime::block_on and Handle::block_on. The former will drive IO and timers; the latter will not. But this is also more efficient to avoid so many thread hand-offs. Both the context switches and the extra spinning that tokio appears to do as mentioned here: https://github.com/scottlamb/retina/issues/5#issuecomment-871971550 This may not be the final word on the threading model. Eventually I may not have per-stream writing threads at all. But I think it will be easier to look at this after getting rid of the separate `moonfire-nvr config` subcommand in favor of a web interface. * in tests, read `.mp4` files via the `mp4` crate rather than ffmpeg. The annoying part is that this doesn't parse edit lists; oh well. * simplify the `Opener` interface. Formerly, it'd take either a RTSP URL or a path to a `.mp4` file, and they'd share some code because they both sometimes used ffmpeg. Now, they're totally different libraries (`retina` vs `mp4`). Pull the latter out to a `testutil` module with a different interface that exposes more of the `mp4` stuff. Now `Opener` is just for RTSP. * simplify the h264 module. It had a lot of logic to deal with Annex B. Retina doesn't use this encoding. Fixes #36 Fixes #126
35 lines
894 B
Bash
Executable File
35 lines
894 B
Bash
Executable File
#!/bin/bash
|
|
# This file is part of Moonfire NVR, a security camera network video recorder.
|
|
# Copyright (C) 2021 The Moonfire NVR Authors; see AUTHORS and LICENSE.txt.
|
|
# SPDX-License-Identifier: GPL-v3.0-or-later WITH GPL-3.0-linking-exception.
|
|
|
|
# Build the "deploy" target. See Dockerfile.
|
|
|
|
set -o errexit
|
|
set -o pipefail
|
|
set -o xtrace
|
|
|
|
mkdir -p /docker-build-debug/deploy
|
|
exec > >(tee -i /docker-build-debug/deploy/output) 2>&1
|
|
ls -laFR /var/cache/apt \
|
|
> /docker-build-debug/deploy/var-cache-apt-before
|
|
|
|
date
|
|
uname -a
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
time apt-get update
|
|
time apt-get install --assume-yes --no-install-recommends \
|
|
libncurses6 \
|
|
libncursesw6 \
|
|
locales \
|
|
sudo \
|
|
sqlite3 \
|
|
tzdata \
|
|
vim-nox
|
|
rm -rf /var/lib/apt/lists/*
|
|
ln -s moonfire-nvr /usr/local/bin/nvr
|
|
|
|
ls -laFR /var/cache/apt \
|
|
> /docker-build-debug/deploy/var-cache-apt-after
|
|
date
|