[libcamera-devel] [PATCH v2 00/14] Python bindings event handling
Tomi Valkeinen
tomi.valkeinen at ideasonboard.com
Wed Jun 29 09:18:30 CEST 2022
On 29/06/2022 10:04, Tomi Valkeinen wrote:
> Hi,
>
> v2 of the event handling series. Plenty of changes to v1:
>
> - (Hopefully) most of the review comments addressed
> - PyCameraManager no longer inherits CameraManager. This also fixes the
> camera added/removed events.
> - 7 new patches
> - API CHANGE: The eventfd is now always non-blocking. This causes an API
> change only if you relied on the blocking read.
> - API CHANGE: many of the methods exposed to Python no longer return an
> error code, but raise an exception on error.
>
> The patches up to and including "py: Switch to non-blocking eventfd" can
> be considered for merging.
>
> The new event handling still needs more thought, I believe. I'm still
> not sure if we should go with the dispatching method implemented now, or
> instead returning a list of events which the user needs to process (a
> bit more like what we have now with the get_ready_requests). I'm also
> not quite sure how to go with the camera.stop(), but there's an attempt
> to solve that in this series.
One more thing about the camera.stop(). I considered implementing the
feature on top of the of the current get_ready_request, without the new
event handling, so that we could get it merged before the new event
handling. But that has a few issues/questions:
- I'd need to rewrite the request handling somewhat, as currently we
only store the Request, and we don't know for which camera it is. This
change wouldn't be a difficult change, but it would be dropped when we
move to the new event handling.
- A similar question to the camera.stop() with the new event handling:
what should it do? 1) Discard Request related events for that camera 2)
Return the Requests for that camera 3) Return all requests (similar to
get_ready_requests)
- If the camera.stop() would return Requests, moving to the new event
handling would change the API for camera.stop().
Tomi
More information about the libcamera-devel
mailing list