如何在 qml 中向 QAbstractVideoFilter 发送参数?

How to send a parameter to QAbstractVideoFilter in qml?

我想要多个相机通过独特的过滤器进行处理,并且所有相机过滤器都必须访问内存中的独特数组(不应将数组的副本传递给每个过滤器)。

你有什么想法吗?我的解决方案是通过参数将数组发送到 QAbstractVideoFilter,但不知道该怎么做以及如何实现?

您将需要重新实现 QAbstractVideoFilter::createFilterRunnable,这将 return 您的自定义过滤器 class 继承自 QVideoFilterRunnable。这允许您在 class 中声明和实现任何接口、参数和通信,这将影响视频 filtering/processing。

因此,您将拥有两个自己的 classes:

  1. 继承自 QAbstractVideoFilter
  2. 继承自QVideoFilterRunnable

您可以对每一个进行更改,但我建议您在 QAbstractVideoFilter 中制作您的界面,然后转发到生成的 QVideoFilterRunnable

要让您的界面在 QML 中工作,您应该:

  • qmlRegisterType
  • 注册您的 class
  • 使用 QML 兼容类型(or/and 为 QML 注册这些类型)
  • 在需要的地方使用Q_PROPERTYQ_INVOKABLE