diff options
author | Zhao Zhili <zhilizhao@tencent.com> | 2024-05-08 00:08:10 +0800 |
---|---|---|
committer | Guo Yejun <yejun.guo@intel.com> | 2024-05-30 18:13:46 +0800 |
commit | 093f5da534749dec93180b8e4928dea31c061d6d (patch) | |
tree | 5d4409e3f13ca1eb8b60df8b20951d78fbd5195a /libavfilter/dnn/dnn_interface.c | |
parent | 4f051c746be90e130c7b61a3ba2f15f2e832774d (diff) | |
download | ffmpeg-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.c | 11 |
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; } |