From 6660eb54131e66418ae3adf073904babad6c4059 Mon Sep 17 00:00:00 2001 From: Sam Tygier Date: Sun, 3 Mar 2019 21:24:20 +0000 Subject: [PATCH] MMALPortParams.__setitem__() do conversions to int If the datatype is MMAL_PARAMETER_UINT32_T, do a conversion to int. This prevents a ctypes.ArgumentError if for example a float is passed in, e.g. camera.shutter_speed = 200 * 1e3 # 200 ms --- picamera/mmalobj.py | 1 + 1 file changed, 1 insertion(+) diff --git a/picamera/mmalobj.py b/picamera/mmalobj.py index ec167f2f..66ea72fa 100644 --- a/picamera/mmalobj.py +++ b/picamera/mmalobj.py @@ -1559,6 +1559,7 @@ def __setitem__(self, key, value): mmal.MMAL_PARAMETER_RATIONAL_T: lambda v: to_rational(v), mmal.MMAL_PARAMETER_BOOLEAN_T: lambda v: mmal.MMAL_TRUE if v else mmal.MMAL_FALSE, mmal.MMAL_PARAMETER_STRING_T: lambda v: v.encode('ascii'), + mmal.MMAL_PARAMETER_UINT32_T: lambda v: int(v), }.get(dtype, lambda v: v) if func == mmal.mmal_port_parameter_set: mp = conv(value)