Changelog¶
Version 0.11.0¶
Changes¶
Lower the amount of V4L2 buffers needed and requested by default. This is to reduce the memory requirements.
In C++ allow
conststring format names forset_formatandget_framerates.
Version 0.10.0¶
Changes¶
Allow floating point timeouts in
get_frame(). Instead of only integer seconds.
Fixes¶
Fix some compile issues for different kernel versions.
Version 0.9.0¶
New¶
Added
V4L2BusyExceptionto signalEBUSYerrors.Added minimal support for newer V4L2 controls types, e.g.
AV1control types.Now adding -qtec to the
__version__field if the module is built with Qtec headers.
Changes¶
No longer stop and restart stream in functions where it could be necessary for the function to succeed, rather let the user handle the exception.
Version 0.8.0¶
New¶
Add
DeviceInfoto hold some V4L2 driver information for the device.Exposure
TriggerSequenceValuein non-Qtec builds.
Fixes¶
Add missing fields to
BaseEvent.Fix an issue with not freeing buffers if we fail to start the stream.
Allow opening a camera device without needing format IOCTLs to function.
Fix
set_crop()to only doset_resolution()if necessary.
Version 0.7.3¶
New¶
Added
device_infoandDeviceInfo.
Fixes¶
Made the
Cameraconstructor a bit more accepting of video devices that are not fully V4L2 compliant.
Version 0.7.2¶
Fixes¶
Fix duplicated line causing an import error.
Version 0.7.1¶
Fixes¶
Fix not being able to start the stream if starting the stream previously failed due to the device being busy.
Version 0.7.0¶
Changes¶
Do control name mapping for the keys of the dictionary returned by
list_controls()and the control name arguments forget_control(),set_control(),get_controls(), andset_controls()will be mapped similarly tov4l2-ctl.
Fixes¶
Fix
qamlib.ArrayControlValue.to_json()flattening JSON array, it now outputs the values in the correct dimensions.No longer try to flip croppings if horizontal or vertical flip is set in
set_control().
Version 0.6.0¶
Fixes¶
Fix
list_controls()not getting updated control information at every call, since this information could be out of date.Fix
get_frame()not aborting onSIGINT(Ctrl-C) from Python.
Version 0.5.0¶
New¶
Added
default_valueargument toget_ext_control()andget_controls(), to make it possible to get the default value of extended controls.
Fixes¶
Fix FourCC’s not being stripped of trailing space.
Version 0.4.0¶
New¶
Added example of using the
EventDeviceclass
Changes¶
Deprecate
TriggerSequenceValue.add_sequencein favor ofTriggerSequenceValue.add_exposureImproved the C++ interface by adding namespaces and fixing the
meson.buildto work again and produce a static library.Changed the get/set control functions to work better for C++
Made
ArrayControlValueusable from C++ by using OpenCV’sMatclass to get and set the value.
Fixes¶
Fix
get_framerate()to return fractional framerates (eg. 23.6)
Version 0.3.0¶
New¶
Implement buffering of frames.
Let user get a buffered frame with
get_frame(buffered=True),get_frame()will still get the newest frame.Add
DroppedFrameExceptionto signal ifbuffered=Trueand we detect that frames have been dropped. The exception can be disabled withCamera(overflow_exception=False)A
runtime_errorwill be thrown if we detect thatqamlibcan’t keep up with the driver
Version 0.2.0¶
New¶
Support multi-crop (Qtec builds)
Support extended controls (integer, string, array and trigger sequence)
Added functions
get_ext_controlandset_ext_controlAdded functions
get_controlsandset_controlsthat allows getting/setting multiple controls at once.Added support classes
IntegerControlValue,StringControlValue,ArrayControlValueandTriggerSequenceValue.
Add
to_jsonfor data structures to allow JSON serializationSupport V4L2 events on a device, with new
EventDeviceclassAlso added support classes (
BaseEvent,ControlEventandSourceEvent) for the events.
Added optional timeout to
Camera.get_frame()Add option of requesting a different amount of V4L2 buffers with a
buffers=10argument in constructors
Fixes¶
Fix flipping selections even when the value of the flip control does not change
Fix sometimes giving an old frame, when the stream is started again. When a frame from a previous stream start, was not retrieved (
get_frame)Fix FPS resolution not allowing fractional framerates, e.g.
19.3