Virtual camera drivers
This is the feature that consumed most part of the development time. The virtual camera for GNU/Linux, Mac and Windows was rewritten from scratch.
For GNU/Linux, in addition to v4l2loopback support, there was also added support for akvcam driver. akvcam is an in-house v4l2 driver for Linux designed to offer the same exact features offered by Mac and Windows drivers, like for example:
- Persistent configuration.
- Emulated camera controls (brightness, contrast, saturation, etc.).
- Configurable default picture in case no input signal available.
There are more advantages of this driver, you can check the wiki for more information.
In previous versions of Webcamoid, the virtual camera for Mac was implemented using Syphon, this was far from ideal since the capturing program need to implement a Syphon client and AVFoundation (the default video capture API for OS X) capable programs can't capture from a Syphon server. Since Webcamoid 8.5.0, the virtual camera is implemented as a CoreMediaIO plugin, so now this is can be detected by any AVFoundation capable program.
Note: since OS X 10.14, the virtual camera plugin need to be signed, otherwise some programs (mostly from App Store) will not be able to detect the camera.
Windows virtual camera also received many improvements. Old version was based on DirectShow BaseClasses which had an ambiguous license, so it made quite hard to distribute the code, later Microsoft re-licensed the code of BaseClasses to a clear very well known MIT license, so licensing is not a problem now, but some technical and portability problems still persisted. The code had many problems keeping track of new changes in MSVC and MinGW, it depended on certain libraries to be loaded dynamically on run-time, 32 bits programs where not able to see the webcam from 64 bits Webcamoid and vice-versa, it was not possible to create more than one virtual camera at same time, and only one instance of Webcamoid was able to send frames to the virtual camera at time. All those problems are solved in Webcamoid 8.5.0.
Note: many programs based on DirectShow may be able to detect and use the camera, but those programs based on Microsoft Media Foundation will not work.
You can see a full compatibility here.
QtQuick Controls 2
With Qt deprecating QQC1 it was necessary to port the UI to QQC2, there is not any remarkable visual difference between the old and the new UI, that was only an API change. Some bugs and glitches may appears, but is too late to go back to QQC1 or rewrite the UI completely, despite of this, most of them can be worked around.
In certain cases when you tried to record a video with audio enabled, it crashed, it happened because the alignment of the samples was not taken into account. In Windows, audio was not recorded at all, this bug was caused because the supported formats were not read and set properly.
When you changed the capture resolution of the webcam, Webcamoid was not aware of the change and it was still recording in the default resolution (640x480 in most cases). Also, default video bit rate is now 1.5 Mbps instead of 200 kbps for better video quality.
All this bugs were fixed with this release.
Crash on launch fixed
In some platforms when you tried to run Webcamoid it crashed straightforward, it was caused by certain combination of Qt and the used compiler, the cause is unknown but anyway it was fixed.
Microsoft Media Foundation
MMF is the new multimedia framework created by Microsoft and is intended to supersede DirectShow, support for MMF is enabled if you compile Webcamoid with MSVC. MMF is not yet supported in MinGW.