diff --git a/utils/codegen/ipc/generators/libcamera_templates/definition_functions.tmpl b/utils/codegen/ipc/generators/libcamera_templates/definition_functions.tmpl
index 8b8509f3ded6..31c70e152d4f 100644
--- a/utils/codegen/ipc/generators/libcamera_templates/definition_functions.tmpl
+++ b/utils/codegen/ipc/generators/libcamera_templates/definition_functions.tmpl
@@ -36,12 +36,12 @@ public:
 
 	{{struct.mojom_name}}(
 {%- for field in struct.fields -%}
-{{"const " if not field|is_pod}}{{field|name}} {{"&" if not field|is_pod}}_{{field.mojom_name}}{{", " if not loop.last}}
+{{field|name}} _{{field.mojom_name}}{{", " if not loop.last}}
 {%- endfor -%}
 )
 		:
 {%- for field in struct.fields -%}
-{{" " if loop.first}}{{field.mojom_name}}(_{{field.mojom_name}}){{", " if not loop.last}}
+{{" " if loop.first}}{{field.mojom_name}}({{"std::move(" if not field|is_pod}}_{{field.mojom_name}}{{")" if not field|is_pod}}){{", " if not loop.last}}
 {%- endfor %}
 	{
 	}
