[libcamera-devel] [PATCH] py: cam.py: Fix duplicate metadata output if more than one steam

Daniel Oakley daniel.oakley at ideasonboard.com
Thu Jan 12 18:34:11 CET 2023


Currently, if there are multiple steams, the --metadata flag will
print the metadata for each request multiple times.

Moving the metadata print logic outside the steam for loop this will
no longer occur.

Signed-off-by: Daniel Oakley <daniel.oakley at ideasonboard.com>
---
 src/py/cam/cam.py | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/py/cam/cam.py b/src/py/cam/cam.py
index 2701d937..967a72f5 100755
--- a/src/py/cam/cam.py
+++ b/src/py/cam/cam.py
@@ -266,6 +266,11 @@ class CaptureState:
         ctx.last = ts
         ctx.fps = fps
 
+        if ctx.opt_metadata:
+            reqmeta = req.metadata
+            for ctrl, val in reqmeta.items():
+                print(f'\t{ctrl} = {val}')
+
         for stream, fb in buffers.items():
             stream_name = ctx.stream_names[stream]
 
@@ -284,11 +289,6 @@ class CaptureState:
                           '/'.join([str(p.bytes_used) for p in meta.planes]),
                           crcs))
 
-            if ctx.opt_metadata:
-                reqmeta = req.metadata
-                for ctrl, val in reqmeta.items():
-                    print(f'\t{ctrl} = {val}')
-
             if ctx.opt_save_frames:
                 with libcamera.utils.MappedFrameBuffer(fb) as mfb:
                     filename = 'frame-{}-{}-{}.data'.format(ctx.id, stream_name, ctx.reqs_completed)
-- 
2.38.2



More information about the libcamera-devel mailing list