如何在 qml 中向 QAbstractVideoFilter 发送参数?
How to send a parameter to QAbstractVideoFilter in qml?
我想要多个相机通过独特的过滤器进行处理,并且所有相机过滤器都必须访问内存中的独特数组(不应将数组的副本传递给每个过滤器)。
你有什么想法吗?我的解决方案是通过参数将数组发送到 QAbstractVideoFilter,但不知道该怎么做以及如何实现?
您将需要重新实现 QAbstractVideoFilter::createFilterRunnable
,这将 return 您的自定义过滤器 class 继承自 QVideoFilterRunnable
。这允许您在 class 中声明和实现任何接口、参数和通信,这将影响视频 filtering/processing。
因此,您将拥有两个自己的 classes:
- 继承自 QAbstractVideoFilter
- 继承自QVideoFilterRunnable
您可以对每一个进行更改,但我建议您在 QAbstractVideoFilter
中制作您的界面,然后转发到生成的 QVideoFilterRunnable
。
要让您的界面在 QML 中工作,您应该:
- 用
qmlRegisterType
注册您的 class
- 使用 QML 兼容类型(or/and 为 QML 注册这些类型)
- 在需要的地方使用
Q_PROPERTY
和Q_INVOKABLE
我想要多个相机通过独特的过滤器进行处理,并且所有相机过滤器都必须访问内存中的独特数组(不应将数组的副本传递给每个过滤器)。
你有什么想法吗?我的解决方案是通过参数将数组发送到 QAbstractVideoFilter,但不知道该怎么做以及如何实现?
您将需要重新实现 QAbstractVideoFilter::createFilterRunnable
,这将 return 您的自定义过滤器 class 继承自 QVideoFilterRunnable
。这允许您在 class 中声明和实现任何接口、参数和通信,这将影响视频 filtering/processing。
因此,您将拥有两个自己的 classes:
- 继承自 QAbstractVideoFilter
- 继承自QVideoFilterRunnable
您可以对每一个进行更改,但我建议您在 QAbstractVideoFilter
中制作您的界面,然后转发到生成的 QVideoFilterRunnable
。
要让您的界面在 QML 中工作,您应该:
- 用
qmlRegisterType
注册您的 class
- 使用 QML 兼容类型(or/and 为 QML 注册这些类型)
- 在需要的地方使用
Q_PROPERTY
和Q_INVOKABLE