diff --git a/include/libcamera/internal/converter.h b/include/libcamera/internal/converter.h
index ead465170d01..035e6ffff135 100644
--- a/include/libcamera/internal/converter.h
+++ b/include/libcamera/internal/converter.h
@@ -116,8 +116,17 @@ public:
 	}
 };
 
-#define REGISTER_CONVERTER(name, converter, compatibles) \
+#define __REGISTER_CONVERTER(name, converter, compatibles, features) \
 	static ConverterFactory<converter> global_##converter##Factory(name, compatibles, \
-								       Converter::Feature::None);
+								       features);
+#define __REGISTER_CONVERTER_NO_FEAT(name, converter, compatibles) \
+	__REGISTER_CONVERTER(name, converter, compatibles, Converter::Feature::None);
+
+#define __register_converter_expand(_1, _2, _3, _4, EXT, ...)		\
+	__REGISTER_CONVERTER ## EXT
+
+#define REGISTER_CONVERTER(name, converter, compatibles, ...)						\
+	__register_converter_expand(name, converter, compatibles, ##__VA_ARGS__, , _NO_FEAT)		\
+				   (name, converter, compatibles, ##__VA_ARGS__)
 
 } /* namespace libcamera */
