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)
