11 #include <bnb/utils/defs.hpp>
15 #include <unordered_set>
17 namespace bnb {
namespace interfaces {
20 enum class face_search_mode;
21 enum class feature_id;
22 enum class recognizer_mode;
36 static std::shared_ptr<recognizer>
create(recognizer_mode mode, std::optional<int32_t> max_tokens);
38 static int64_t get_feature_id(feature_id
feature);
40 virtual std::shared_ptr<feature> get_feature(feature_id
feature) = 0;
42 virtual void set_features(
const std::unordered_set<feature_id> & features) = 0;
44 virtual void add_feature(
const std::shared_ptr<feature> &
feature,
const std::unordered_set<feature_id> & dependencies,
bool needs_gpu) = 0;
46 virtual void remove_feature(
const std::shared_ptr<feature> &
feature) = 0;
51 virtual void set_offline_mode(
bool on) = 0;
61 virtual bool get_nn_enable()
const = 0;
69 virtual void process(
const std::shared_ptr<::bnb::interfaces::frame_data> &
frame_data) = 0;
71 virtual void push_camera_frame(
const std::shared_ptr<::bnb::interfaces::frame_data> & input_frame_data) = 0;
73 virtual bool pop_frame_data(
const std::shared_ptr<::bnb::interfaces::frame_data> & output_frame_data) = 0;