- changed cpp-httplib git submodule path to https://github.com/bondagit/cpp-httplib.git
- removed compilation warning related to the usage of Boost bind global placeholders
- updated daemon version to 2.0.2
Previously, since the introduction of the streamer support in version 2.0.0,
it was impossible to compile the daemon without a dependency on libfaac.
This prevented the daemon from being built on Debian systems without `non-free`
repositories enabled. It seems the issue with libfaac is that it is based on
code with a non-DFSG compliant license.
This commit introduces a new config option WITH_STREAMER which is ON by default,
causing the behaviour to stay backwards-compatible with the one before this
commit. It is newly possible to pass `-DWITH_STREAMER=OFF` to cmake to build
without streamer support and without the dependency on libfaac.
Disabled daemon parallel builds in build.sh (option -j) as this can cause hangs on some platforms
Disabled streamer in daemon configuration used by platform and latency tests
Changed daemon version to 2.0.1
This fixes the stuckness in the newer versions of httplib. I compiled
and ran the daemon using
c8bcaf8a91
which is the newest cpp-httplib version at the time of writing.
I followed the instructions and copy/pasted the code snippets. Here's a small convenience change: after inserting the module, we can go back to the main directory instead of trying to cd into `3rdparty/ravenna-alsa-lkm/driver/daemon`.
The compilation can be a bit slow when done sequentially. The `-j`
option automatically picks the number of parallel build jobs based on
the number of available cores.
The parallelization might be a concern then building on systems with a
small amount of RAM, that can be addressed when such occasion arises.
As a side note, in many build systems, we leave the `make` stage to be
executed separately by the user, so that the user can pick the level of
parallelization. There are a few invocations of `make` in the build.sh
script, I'm adding the `-j` flag only to the one that was slow in
practice.
The HTTP Streamer can be enabled via the _streamer_enabled_ daemon parameter.
When the Streamer is active the daemon starts capturing the configured _Sinks_ up to the maximum number of channels configured by the _streamer_channels_ parameters.
The captured PCM samples are split into _streamer_files_num_ files of _streamer_file_duration_ duration (in seconds) for each sink, compressed using AAC LC codec and served via HTTP.
The HTTP streamer requires the libfaac-dev package to compile.
Please note that since the HTTP Streamer uses the RAVENNA ALSA device for capturing it's not possible to use such device for other audio captures.