12 #include <bnb/utils/defs.hpp>
15 #include <unordered_set>
17 namespace bnb {
namespace interfaces {
20 enum class recognizer_mode;
26 static std::shared_ptr<recognizer> create(recognizer_mode mode);
28 static int64_t get_feature_id(::bnb::interfaces::feature_id
feature);
30 virtual std::shared_ptr<feature> get_feature(::bnb::interfaces::feature_id
feature) = 0;
32 virtual void set_features(
const std::unordered_set<::bnb::interfaces::feature_id> & features) = 0;
34 virtual void add_feature(
const std::shared_ptr<feature> &
feature,
const std::unordered_set<::bnb::interfaces::feature_id> & dependencies) = 0;
36 virtual void remove_feature(
const std::shared_ptr<feature> &
feature) = 0;
39 virtual void set_max_faces(int32_t num) = 0;
41 virtual void set_offline_mode(
bool on) = 0;
49 virtual void set_use_future_filter(
bool on) = 0;
57 virtual void set_use_future_interpolate(
bool on) = 0;
59 virtual void process(
const std::shared_ptr<::bnb::interfaces::frame_data> &
frame_data) = 0;
61 virtual void push_camera_frame(
const std::shared_ptr<::bnb::interfaces::frame_data> & input_frame_data) = 0;
63 virtual bool pop_frame_data(
const std::shared_ptr<::bnb::interfaces::frame_data> & output_frame_data) = 0;
66 virtual void start() = 0;
69 virtual void pause() = 0;
72 virtual void stop() = 0;
75 virtual void clear() = 0;