### Added
* The software is released now as a single `.deb` package for Ubuntu 20.04 which
includes the main applications (Braid and Strand Camera) in addition to
numerous smaller utility programs.
* New program `braid-process-video` to process multiple simultaneously recorded
MKV and FMF videos. Optionally, when a simultaneously recorded .braidz file is
available, the data in the .braidz is used to directly indicated temporally
synchronized frames. Without the .braidz file, an algorithm attempts to match
frames acquired exactly synchronously, but the algorithm is imperfect.
* MKV videos now save timestamps with microsecond precision. (Previously was
millisecond precision.)
* Support for "remote cameras" in Braid. A remote camera can be used to connect
cameras on separate computers over the network to an instance of Braid. One or
more instances of Strand Camera can thus run on computers other than the
computer on which Braid is running.
* Implement loading all camera node map settings from a file. For Braid, this is
specified in the `[[cameras]]` section with the `camera_settings_filename`
key. For Strand Cam, set this with the `--camera-settings-filename`
command-line argument.
* Braid stores the camera settings for each camera determined with Strand Camera
was started into the newly created `cam_settings` directory inside the
`.braidz` file.
* Braid stores the feature detection settings for each camera determined with
Strand Camera was started into the newly created `feature_detect_settings`
directory inside the `.braidz` file.
* On linux, Basler Pylon backend checks for resource limits for USB memory
(`/sys/module/usbcore/parameters/usbfs_memory_mb`) and file descriptors
(`ulimit`) warns if they are likely too low and suggests how to increase
limits.
* MKV videos now save the camera name as metadata in the segment title field.
* MKV, FMF, and uFMF videos have the camera name in the filename when saved with
Braid.
* When saving MKV videos, automatically trim pixels to fit divisible-by-two
requirements for VPX video encoders.
* Backport to Pylon 5 for Basler cameras. This is not enabled by default but can
be useful to debug issues dependent on driver version.
* Validate that triggerbox works in Windows.
* April Tag detection works in Windows.
* For debugging, enable ability to capture raw feature detections directly from
Strand Cam in Braid by the new configuration parameter
`packet_capture_dump_fname` which specifies a filename into which the data is
stored.
* Basler cameras automatically set the stream grabber `MaxTransferSize`
parameter to its maximum possible value. This can be disabled by setting the
`DISABLE_SET_MAX_TRANSFER_SIZE` environment variable.
### Fixed
* Fixed computation of triggerbox pulse time and consequently estimated latency.
There were two problems in the previous implementation, and both are now
fixed. First, the triggerbox firmware has a bug in which two pulses are
counted before electrical pulses were actually, physically emitted from the
device. Secondly, the braid-triggerbox crate prior to 0.2.1 mis-calculated the
estimated time at which the trigger pulse counter was read.
* Fixed segmentation fault that sometimes happened on program exit.
### Changed
* Removed runtime compatibility with old flydra v1 camera nodes and mainbrain.
This had not been tested in many releases and likely didn't work anyway. This
required some custom serialization and deserialization code, which has now
been removed. (Braid communication between Strand Cam and the mainbrain is
currently done with CBOR encoded data.)