This change adds a file watcher and then uses this file watcher
to perform updates based on changes in a configuration file. This
configuration file contains logging parameters for the time being
in the hope that it will help with debugging.
Testing was also added for this functionality.
This change bumps the required iot tag and adds functional option
variadic parameters to the httpSender constructor so that we can
provide the HTTPAddress config variable and modify the httpSend
destination address. In addition to this, we have added an option
for the report callback.
This change adds functionality for broadcastManager state save.
This is done by marshalling the broadcastManager and saving to a
file. Loading is performed by unmarshalling an re-populating a
broadcastManager value. Testing has been added for this
functionality. Other functionality has been added a side effect.
Interface the function with pre-existing data structures. The filters can now be generated into a filter type using a generic Generate function.
This generates a filter off of the specifications within the filter struct. There is a generic Apply function which takes in a buffer of PCM data (defined in pcm.go),
and outputs to a []byte.
This change adds a "watchdog notifier" utility which tracks the
health of request handlers and notifies an external systemd
watchdog if everything looks good. This allows us to cause a
termination if any request handlers get hung.
If no config is given as arguments or file, then a default config is used. This is file input (25 FPS) with MPEG-TS packetization and RTP output. If RTP output is selected, a VLC window to receive the
stream is opened.
av/device/device.go now contains the AVDevice interface and implementations of this
interface, namely, raspivid, geovision, webcam and file are contained in the packages
av/device/raspivid, av/device/geovision, av/device/webcam and av/device/file
respctively. config.go and testing was also moved to a new package called config.go in
order to remove would be circular dependency between AVDevice implementations and revid.
Modifications were made elsewhere expecting config.Config to be part of the revid package.