@@ -76,7 +76,7 @@ def _return_thread(self):
7676 future .set_result (result )
7777 request .release ()
7878
79- def send (self , request : picamera2 .request .CompletedRequest ):
79+ def send (self , request : picamera2 .request .CompletedRequest , ** kwargs ):
8080 """
8181 Sends a request to the child process.
8282
@@ -85,7 +85,7 @@ def send(self, request: picamera2.request.CompletedRequest):
8585 """
8686 future = Future ()
8787 request .acquire ()
88- remote = RemoteRequest (request )
88+ remote = RemoteRequest (request , ** kwargs )
8989 self ._send_queue .put (remote )
9090 self ._requests_sent .append ((request , future ))
9191 return future
@@ -141,7 +141,7 @@ def run(self):
141141 """Main loop of the child process."""
142142 self ._child_init ()
143143 while (request := self ._capture_request ()) is not None :
144- value = self ._run (request )
144+ value = self ._run (request , ** request . _kwargs )
145145 self ._return_request (value )
146146
147147 def _map_fd (self , picam2_fd : int ):
@@ -222,7 +222,7 @@ class RemoteRequest:
222222 request: The CompletedRequest object
223223 """
224224
225- def __init__ (self , request : picamera2 .request .CompletedRequest ):
225+ def __init__ (self , request : picamera2 .request .CompletedRequest , ** kwargs ):
226226 """Initializes and serializes the request."""
227227 self .request = request
228228 self ._metadata = request .get_metadata ()
@@ -240,6 +240,8 @@ def __init__(self, request: picamera2.request.CompletedRequest):
240240 else :
241241 self ._buffers_fd [name ] = self ._serialize_stream (name )
242242
243+ self ._kwargs = kwargs
244+
243245 del self .request
244246
245247 def _serialize_stream (self , stream_name : str ):
@@ -410,7 +412,7 @@ def __enter__(self):
410412 def __exit__ (self , exc_type , exc_value , exc_traceback ):
411413 self .close ()
412414
413- def send (self , request : picamera2 .request .CompletedRequest ):
415+ def send (self , request : picamera2 .request .CompletedRequest , ** kwargs ):
414416 """Sends a request to the child process."""
415417 process = min (
416418 enumerate (self ._processes ),
@@ -421,7 +423,7 @@ def send(self, request: picamera2.request.CompletedRequest):
421423 )[1 ]
422424 self ._process_index = (self ._process_index + 1 ) % self ._process_count
423425
424- return process .send (request )
426+ return process .send (request , ** kwargs )
425427
426428 def close (self ):
427429 """Closes the Pool."""
0 commit comments