aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter/dnn/dnn_interface.c
diff options
context:
space:
mode:
authorZhao Zhili <zhilizhao@tencent.com>2024-05-08 00:08:10 +0800
committerGuo Yejun <yejun.guo@intel.com>2024-05-30 18:13:46 +0800
commit093f5da534749dec93180b8e4928dea31c061d6d (patch)
tree5d4409e3f13ca1eb8b60df8b20951d78fbd5195a /libavfilter/dnn/dnn_interface.c
parent4f051c746be90e130c7b61a3ba2f15f2e832774d (diff)
downloadffmpeg-093f5da534749dec93180b8e4928dea31c061d6d.tar.gz
avfilter/dnn: Don't show backends which are not supported by a filter
Diffstat (limited to 'libavfilter/dnn/dnn_interface.c')
-rw-r--r--libavfilter/dnn/dnn_interface.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/libavfilter/dnn/dnn_interface.c b/libavfilter/dnn/dnn_interface.c
index e9c3619abd..8dec3b671a 100644
--- a/libavfilter/dnn/dnn_interface.c
+++ b/libavfilter/dnn/dnn_interface.c
@@ -120,11 +120,16 @@ void *ff_dnn_child_next(DnnContext *obj, void *prev) {
return NULL;
}
-const AVClass *ff_dnn_child_class_iterate(void **iter)
+const AVClass *ff_dnn_child_class_iterate_with_mask(void **iter, uint32_t backend_mask)
{
- uintptr_t i = (uintptr_t) *iter;
+ for (uintptr_t i = (uintptr_t)*iter; i < FF_ARRAY_ELEMS(dnn_backend_info_list); i++) {
+ if (i > 0) {
+ const DNNModule *module = dnn_backend_info_list[i].module;
+
+ if (!(module->type & backend_mask))
+ continue;
+ }
- if (i < FF_ARRAY_ELEMS(dnn_backend_info_list)) {
*iter = (void *)(i + 1);
return dnn_backend_info_list[i].class;
}