libavdevice provides a demuxer-like abstraction to captures, it behaves exactly like a demuxer with the difference it uses commonly external libraries and it is quite OS dependent and it is not seekable.
Makefile changes to enable the component
Dependencies across different components can be described using _select and _dep.
_dep will disable the option if the components listed aren't already enabled.
_select will enable the components listed.
The structure is the same as the one described for the demuxer. There are few caveats in how the timestamps are generated and usually they depends on external libraries so the build system configure has to be updated accordingly.
The capture devices are normally considered working in realtime. To make sure they are kept in sync the timestamp should match the wallclock.