#define __ITASK_H__
#include "MachineLearningType.h"
+#include <string>
namespace mediavision
{
{
public:
virtual ~ITask() {};
- virtual void setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name = "") = 0;
- virtual void setEngineInfo(const char *engine_type, const char *device_type) = 0;
+ virtual void setModelInfo(const std::string &model_file, const std::string &meta_file,
+ const std::string &label_file, const std::string &model_name = "") = 0;
+ virtual void setEngineInfo(const std::string &engine_type, const std::string &device_type) = 0;
virtual void configure() = 0;
- virtual void getNumberOfEngines(unsigned int *number_of_engines) = 0;
- virtual void getEngineType(unsigned int engine_index, char **engine_type) = 0;
- virtual void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) = 0;
- virtual void getDeviceType(const char *engine_type, unsigned int device_index, char **device_type) = 0;
+ virtual unsigned int getNumberOfEngines() = 0;
+ virtual const std::string &getEngineType(unsigned int engine_index) = 0;
+ virtual unsigned int getNumberOfDevices(const std::string &engine_type) = 0;
+ virtual const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index) = 0;
virtual void prepare() = 0;
virtual void perform(mediavision::machine_learning::InputBaseType &input) = 0;
virtual void performAsync(mediavision::machine_learning::InputBaseType &input) = 0;
{
auto task = get_task(handle, task_name);
- task->getNumberOfEngines(engine_count);
+ *engine_count = task->getNumberOfEngines();
}
void machine_learning_native_get_engine_type(void *handle, const string &task_name, const unsigned int engine_index,
{
auto task = get_task(handle, task_name);
- task->getEngineType(engine_index, engine_type);
+ *engine_type = (char *) task->getEngineType(engine_index).c_str();
}
void machine_learning_native_get_device_count(void *handle, const string &task_name, const char *engine_type,
{
auto task = get_task(handle, task_name);
- task->getNumberOfDevices(engine_type, device_count);
+ *device_count = task->getNumberOfDevices(engine_type);
}
void machine_learning_native_get_device_type(void *handle, const string &task_name, const char *engine_type,
{
auto task = get_task(handle, task_name);
- task->getDeviceType(engine_type, device_index, device_type);
+ *device_type = (char *) task->getDeviceType(engine_type, device_index).c_str();
}
}
return _config;
}
- void setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name) override;
- void setEngineInfo(const char *engine_type, const char *device_type) override;
+ void setModelInfo(const std::string &model_file, const std::string &meta_file, const std::string &label_file,
+ const std::string &model_name) override;
+ void setEngineInfo(const std::string &engine_type, const std::string &device_type) override;
void configure() override;
- void getNumberOfEngines(unsigned int *number_of_engines) override;
- void getEngineType(unsigned int engine_index, char **engine_type) override;
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) override;
- void getDeviceType(const char *engine_type, unsigned int device_index, char **device_type) override;
+ unsigned int getNumberOfEngines() override;
+ const std::string &getEngineType(unsigned int engine_index) override;
+ unsigned int getNumberOfDevices(const std::string &engine_type) override;
+ const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index) override;
void prepare() override;
void perform(InputBaseType &input) override;
void performAsync(InputBaseType &input) override;
FacenetAdapter();
~FacenetAdapter();
- void setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name) override;
- void setEngineInfo(const char *engine_type, const char *device_type) override;
+ void setModelInfo(const std::string &model_file, const std::string &meta_file, const std::string &label_file,
+ const std::string &model_name) override;
+ void setEngineInfo(const std::string &engine_type, const std::string &device_type) override;
void configure() override;
- void getNumberOfEngines(unsigned int *number_of_engines) override;
- void getEngineType(unsigned int engine_index, char **engine_type) override;
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) override;
- void getDeviceType(const char *engine_type, unsigned int device_index, char **device_type) override;
+ unsigned int getNumberOfEngines() override;
+ const std::string &getEngineType(unsigned int engine_index) override;
+ unsigned int getNumberOfDevices(const std::string &engine_type) override;
+ const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index) override;
void prepare() override;
void perform(InputBaseType &input) override;
void performAsync(InputBaseType &input) override;
FaceRecognitionAdapter::~FaceRecognitionAdapter()
{}
-void FaceRecognitionAdapter::setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name)
-{}
+void FaceRecognitionAdapter::setModelInfo(const string &model_file, const string &meta_file, const string &label_file,
+ const string &model_name)
+{
+ throw InvalidOperation("Not yet implemented");
+}
-void FaceRecognitionAdapter::setEngineInfo(const char *engine_type, const char *device_type)
-{}
+void FaceRecognitionAdapter::setEngineInfo(const string &engine_type, const string &device_type)
+{
+ throw InvalidOperation("Not yet implemented");
+}
void FaceRecognitionAdapter::configure()
{
_face_recognition->setConfig(config);
}
-void FaceRecognitionAdapter::getNumberOfEngines(unsigned int *number_of_engines)
-{}
+unsigned int FaceRecognitionAdapter::getNumberOfEngines()
+{
+ throw InvalidOperation("Not yet implemented");
+}
-void FaceRecognitionAdapter::getEngineType(unsigned int engine_index, char **engine_type)
-{}
+const string &FaceRecognitionAdapter::getEngineType(unsigned int engine_index)
+{
+ throw InvalidOperation("Not yet implemented");
+}
-void FaceRecognitionAdapter::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
-{}
+unsigned int FaceRecognitionAdapter::getNumberOfDevices(const string &engine_type)
+{
+ throw InvalidOperation("Not yet implemented");
+}
-void FaceRecognitionAdapter::getDeviceType(const char *engine_type, unsigned int device_index, char **device_type)
-{}
+const string &FaceRecognitionAdapter::getDeviceType(const string &engine_type, unsigned int device_index)
+{
+ throw InvalidOperation("Not yet implemented");
+}
void FaceRecognitionAdapter::prepare()
{
FacenetAdapter::~FacenetAdapter()
{}
-void FacenetAdapter::setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name)
+void FacenetAdapter::setModelInfo(const string &model_file, const string &meta_file, const string &label_file,
+ const string &model_name)
{}
-void FacenetAdapter::setEngineInfo(const char *engine_type, const char *device_type)
+void FacenetAdapter::setEngineInfo(const string &engine_type, const string &device_type)
{}
void FacenetAdapter::configure()
_facenet->configure();
}
-void FacenetAdapter::getNumberOfEngines(unsigned int *number_of_engines)
-{}
+unsigned int FacenetAdapter::getNumberOfEngines()
+{
+ throw InvalidOperation("Not yet implemented");
+}
-void FacenetAdapter::getEngineType(unsigned int engine_index, char **engine_type)
-{}
+const string &FacenetAdapter::getEngineType(unsigned int engine_index)
+{
+ throw InvalidOperation("Not yet implemented");
+}
-void FacenetAdapter::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
-{}
+unsigned int FacenetAdapter::getNumberOfDevices(const string &engine_type)
+{
+ throw InvalidOperation("Not yet implemented");
+}
-void FacenetAdapter::getDeviceType(const char *engine_type, unsigned int device_index, char **device_type)
-{}
+const string &FacenetAdapter::getDeviceType(const string &engine_type, unsigned int device_index)
+{
+ throw InvalidOperation("Not yet implemented");
+}
void FacenetAdapter::prepare()
{
virtual void preDestroy() = 0;
virtual void setEngineInfo(std::string engine_type, std::string device_type) = 0;
- virtual void getNumberOfEngines(unsigned int *number_of_engines) = 0;
- virtual void getEngineType(unsigned int engine_index, std::string **engine_type) = 0;
- virtual void getNumberOfDevices(const std::string &engine_type, unsigned int *number_of_devices) = 0;
- virtual void getDeviceType(const std::string &engine_type, const unsigned int device_index,
- std::string **device_type) = 0;
+ virtual unsigned int getNumberOfEngines() = 0;
+ virtual const std::string &getEngineType(unsigned int engine_index) = 0;
+ virtual unsigned int getNumberOfDevices(const std::string &engine_type) = 0;
+ virtual const std::string &getDeviceType(const std::string &engine_type, const unsigned int device_index) = 0;
virtual void configure() = 0;
virtual void prepare() = 0;
virtual void perform(mv_source_h &mv_src) = 0;
void preDestroy();
void setEngineInfo(std::string engine_type_name, std::string device_type_name);
- void getNumberOfEngines(unsigned int *number_of_engines);
- void getEngineType(unsigned int engine_index, std::string **engine_type);
- void getNumberOfDevices(const std::string &engine_type, unsigned int *number_of_devices);
- void getDeviceType(const std::string &engine_type, const unsigned int device_index, std::string **device_type);
+ unsigned int getNumberOfEngines();
+ const std::string &getEngineType(unsigned int engine_index);
+ unsigned int getNumberOfDevices(const std::string &engine_type);
+ const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index);
void configure();
void prepare();
void perform(mv_source_h &mv_src);
ImageClassificationAdapter();
~ImageClassificationAdapter();
- void setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name) override;
- void setEngineInfo(const char *engine_type, const char *device_type) override;
+ void setModelInfo(const std::string &model_file, const std::string &meta_file, const std::string &label_file,
+ const std::string &model_name) override;
+ void setEngineInfo(const std::string &engine_type, const std::string &device_type) override;
void configure() override;
- void getNumberOfEngines(unsigned int *number_of_engines) override;
- void getEngineType(unsigned int engine_index, char **engine_type) override;
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) override;
- void getDeviceType(const char *engine_type, unsigned int device_index, char **device_type) override;
+ unsigned int getNumberOfEngines() override;
+ const std::string &getEngineType(unsigned int engine_index) override;
+ unsigned int getNumberOfDevices(const std::string &engine_type) override;
+ const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index) override;
void prepare() override;
void perform(InputBaseType &input) override;
void performAsync(InputBaseType &input) override;
device_type_name.c_str(), device_type);
}
-template<typename T> void ImageClassification<T>::getNumberOfEngines(unsigned int *number_of_engines)
+template<typename T> unsigned int ImageClassification<T>::getNumberOfEngines()
{
if (!_valid_backends.empty()) {
- *number_of_engines = _valid_backends.size();
- return;
+ return _valid_backends.size();
}
getEngineList();
- *number_of_engines = _valid_backends.size();
+ return _valid_backends.size();
}
-template<typename T> void ImageClassification<T>::getEngineType(unsigned int engine_index, string **engine_type)
+template<typename T> const string &ImageClassification<T>::getEngineType(unsigned int engine_index)
{
if (!_valid_backends.empty()) {
if (_valid_backends.size() <= engine_index)
throw InvalidParameter("Invalid engine index.");
- *engine_type = &_valid_backends[engine_index];
- return;
+ return _valid_backends[engine_index];
}
getEngineList();
if (_valid_backends.size() <= engine_index)
throw InvalidParameter("Invalid engine index.");
- *engine_type = &_valid_backends[engine_index];
+ return _valid_backends[engine_index];
}
-template<typename T>
-void ImageClassification<T>::getNumberOfDevices(const string &engine_type, unsigned int *number_of_devices)
+template<typename T> unsigned int ImageClassification<T>::getNumberOfDevices(const string &engine_type)
{
if (!_valid_devices.empty()) {
- *number_of_devices = _valid_devices.size();
- return;
+ return _valid_devices.size();
}
getDeviceList(engine_type);
- *number_of_devices = _valid_devices.size();
+ return _valid_devices.size();
}
template<typename T>
-void ImageClassification<T>::getDeviceType(const string &engine_type, const unsigned int device_index,
- string **device_type)
+const string &ImageClassification<T>::getDeviceType(const string &engine_type, unsigned int device_index)
{
if (!_valid_devices.empty()) {
if (_valid_devices.size() <= device_index)
throw InvalidParameter("Invalid device index.");
- *device_type = &_valid_devices[device_index];
- return;
+ return _valid_devices[device_index];
}
getDeviceList(engine_type);
if (_valid_devices.size() <= device_index)
throw InvalidParameter("Invalid device index.");
- *device_type = &_valid_devices[device_index];
+ return _valid_devices[device_index];
}
template<typename T> void ImageClassification<T>::prepare()
}
}
-void ImageClassificationAdapter::setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name)
+void ImageClassificationAdapter::setModelInfo(const string &model_file, const string &meta_file,
+ const string &label_file, const string &model_name)
{
_config->setUserModel(model_file, meta_file, label_file);
create();
- if (!model_file && !meta_file) {
+ if (model_file.empty() && meta_file.empty()) {
LOGW("Given model info is invalid so default model info will be used instead.");
return;
}
}
-void ImageClassificationAdapter::setEngineInfo(const char *engine_type, const char *device_type)
+void ImageClassificationAdapter::setEngineInfo(const string &engine_type, const string &device_type)
{
_image_classification->setEngineInfo(engine_type, device_type);
}
_image_classification->configure();
}
-void ImageClassificationAdapter::getNumberOfEngines(unsigned int *number_of_engines)
+unsigned int ImageClassificationAdapter::getNumberOfEngines()
{
- _image_classification->getNumberOfEngines(number_of_engines);
+ return _image_classification->getNumberOfEngines();
}
-void ImageClassificationAdapter::getEngineType(unsigned int engine_index, char **engine_type)
+const string &ImageClassificationAdapter::getEngineType(unsigned int engine_index)
{
- string *engine_type_str;
- _image_classification->getEngineType(engine_index, &engine_type_str);
- *engine_type = (char *) engine_type_str->c_str();
+ return _image_classification->getEngineType(engine_index);
}
-void ImageClassificationAdapter::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
+unsigned int ImageClassificationAdapter::getNumberOfDevices(const string &engine_type)
{
- _image_classification->getNumberOfDevices(engine_type, number_of_devices);
+ return _image_classification->getNumberOfDevices(engine_type);
}
-void ImageClassificationAdapter::getDeviceType(const char *engine_type, unsigned int device_index, char **device_type)
+const string &ImageClassificationAdapter::getDeviceType(const string &engine_type, unsigned int device_index)
{
- string *device_type_str;
- _image_classification->getDeviceType(engine_type, device_index, &device_type_str);
- *device_type = (char *) device_type_str->c_str();
+ return _image_classification->getDeviceType(engine_type, device_index);
}
void ImageClassificationAdapter::prepare()
}
int mv_image_classification_get_device_type(mv_image_classification_h handle, const char *engine_type,
- const unsigned int device_index, char **device_type)
+ unsigned int device_index, char **device_type)
{
MEDIA_VISION_SUPPORT_CHECK(mv_check_feature_key(feature_keys, num_keys, false));
MEDIA_VISION_INSTANCE_CHECK(handle);
virtual void preDestroy() = 0;
virtual void setUserModel(std::string model_file, std::string meta_file, std::string label_file) = 0;
virtual void setEngineInfo(std::string engine_type, std::string device_type) = 0;
- virtual void getNumberOfEngines(unsigned int *number_of_engines) = 0;
- virtual void getEngineType(unsigned int engine_index, char **engine_type) = 0;
- virtual void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) = 0;
- virtual void getDeviceType(const char *engine_type, const unsigned int device_index, char **device_type) = 0;
+ virtual unsigned int getNumberOfEngines() = 0;
+ virtual const std::string &getEngineType(unsigned int engine_index) = 0;
+ virtual unsigned int getNumberOfDevices(const std::string &engine_type) = 0;
+ virtual const std::string &getDeviceType(const std::string &engine_type, const unsigned int device_index) = 0;
virtual void configure() = 0;
virtual void prepare() = 0;
virtual void perform(mv_source_h &mv_src) = 0;
void loadLabel();
void getEngineList();
- void getDeviceList(const char *engine_type);
+ void getDeviceList(const std::string &engine_type);
void preprocess(mv_source_h &mv_src, std::shared_ptr<MetaInfo> metaInfo, std::vector<T> &inputVector);
std::shared_ptr<MetaInfo> getInputMetaInfo();
void preDestroy() override;
void setUserModel(std::string model_file, std::string meta_file, std::string label_file) override;
void setEngineInfo(std::string engine_type, std::string device_type) override;
- void getNumberOfEngines(unsigned int *number_of_engines) override;
- void getEngineType(unsigned int engine_index, char **engine_type) override;
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) override;
- void getDeviceType(const char *engine_type, const unsigned int device_index, char **device_type) override;
+ unsigned int getNumberOfEngines() override;
+ const std::string &getEngineType(unsigned int engine_index) override;
+ unsigned int getNumberOfDevices(const std::string &engine_type) override;
+ const std::string &getDeviceType(const std::string &engine_type, const unsigned int device_index) override;
void configure() override;
void prepare() override;
void perform(mv_source_h &mv_src) override;
ImageSegmentationResult _current_result;
public:
- ImageSegmentationExternal(ImageSegmentationTaskType task_type, const char *plugin_name);
+ ImageSegmentationExternal(ImageSegmentationTaskType task_type, const std::string &plugin_name);
virtual ~ImageSegmentationExternal();
void preDestroy() override;
void setUserModel(std::string model_file, std::string meta_file, std::string label_file) override;
void setEngineInfo(std::string engine_type, std::string device_type) override;
- void getNumberOfEngines(unsigned int *number_of_engines) override;
- void getEngineType(unsigned int engine_index, char **engine_type) override;
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) override;
- void getDeviceType(const char *engine_type, const unsigned int device_index, char **device_type) override;
+ unsigned int getNumberOfEngines() override;
+ const std::string &getEngineType(unsigned int engine_index) override;
+ unsigned int getNumberOfDevices(const std::string &engine_type) override;
+ const std::string &getDeviceType(const std::string &engine_type, const unsigned int device_index) override;
void configure() override;
void prepare() override;
void perform(mv_source_h &mv_src) override;
ImageSegmentationAdapter();
~ImageSegmentationAdapter();
- void setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name) override;
- void setEngineInfo(const char *engine_type, const char *device_type) override;
+ void setModelInfo(const std::string &model_file, const std::string &meta_file, const std::string &label_file,
+ const std::string &model_name) override;
+ void setEngineInfo(const std::string &engine_type, const std::string &device_type) override;
void configure() override;
- void getNumberOfEngines(unsigned int *number_of_engines) override;
- void getEngineType(unsigned int engine_index, char **engine_type) override;
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) override;
- void getDeviceType(const char *engine_type, unsigned int device_index, char **device_type) override;
+ unsigned int getNumberOfEngines() override;
+ const std::string &getEngineType(unsigned int engine_index) override;
+ unsigned int getNumberOfDevices(const std::string &engine_type) override;
+ const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index) override;
void prepare() override;
void perform(InputBaseType &input) override;
void performAsync(InputBaseType &input) override;
}
}
-template<typename T> void ImageSegmentation<T>::getDeviceList(const char *engine_type)
+template<typename T> void ImageSegmentation<T>::getDeviceList(const string &engine_type)
{
// TODO. add device types available for a given engine type later.
// In default, cpu and gpu only.
device_type_name.c_str(), device_type);
}
-template<typename T> void ImageSegmentation<T>::getNumberOfEngines(unsigned int *number_of_engines)
+template<typename T> unsigned int ImageSegmentation<T>::getNumberOfEngines()
{
if (!_valid_backends.empty()) {
- *number_of_engines = _valid_backends.size();
- return;
+ return _valid_backends.size();
}
getEngineList();
- *number_of_engines = _valid_backends.size();
+ return _valid_backends.size();
}
-template<typename T> void ImageSegmentation<T>::getEngineType(unsigned int engine_index, char **engine_type)
+template<typename T> const string &ImageSegmentation<T>::getEngineType(unsigned int engine_index)
{
if (!_valid_backends.empty()) {
if (_valid_backends.size() <= engine_index)
throw InvalidParameter("Invalid engine index.");
- *engine_type = const_cast<char *>(_valid_backends[engine_index].data());
- return;
+ return _valid_backends[engine_index];
}
getEngineList();
if (_valid_backends.size() <= engine_index)
throw InvalidParameter("Invalid engine index.");
- *engine_type = const_cast<char *>(_valid_backends[engine_index].data());
+ return _valid_backends[engine_index];
}
-template<typename T>
-void ImageSegmentation<T>::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
+template<typename T> unsigned int ImageSegmentation<T>::getNumberOfDevices(const string &engine_type)
{
if (!_valid_devices.empty()) {
- *number_of_devices = _valid_devices.size();
- return;
+ return _valid_devices.size();
}
getDeviceList(engine_type);
- *number_of_devices = _valid_devices.size();
+ return _valid_devices.size();
}
template<typename T>
-void ImageSegmentation<T>::getDeviceType(const char *engine_type, const unsigned int device_index, char **device_type)
+const string &ImageSegmentation<T>::getDeviceType(const string &engine_type, unsigned int device_index)
{
if (!_valid_devices.empty()) {
if (_valid_devices.size() <= device_index)
throw InvalidParameter("Invalid device index.");
- *device_type = const_cast<char *>(_valid_devices[device_index].data());
- return;
+ return _valid_devices[device_index];
}
getDeviceList(engine_type);
if (_valid_devices.size() <= device_index)
throw InvalidParameter("Invalid device index.");
- *device_type = const_cast<char *>(_valid_devices[device_index].data());
+ return _valid_devices[device_index];
}
template<typename T> void ImageSegmentation<T>::loadLabel()
typedef IImageSegmentation *create_t(ImageSegmentationTaskType task_type);
typedef void destroy_t(IImageSegmentation *);
-ImageSegmentationExternal::ImageSegmentationExternal(ImageSegmentationTaskType task_type, const char *plugin_name)
+ImageSegmentationExternal::ImageSegmentationExternal(ImageSegmentationTaskType task_type, const string &plugin_name)
: _plugin_handle(), _image_segmentation_plugin()
{
// Load external plugin library.
- LOGI("lib: %s", plugin_name);
- _plugin_handle = dlopen(plugin_name, RTLD_NOW);
+ LOGI("lib: %s", plugin_name.c_str());
+ _plugin_handle = dlopen(plugin_name.c_str(), RTLD_NOW);
if (!_plugin_handle)
throw InvalidOperation("Fail to open plugin library.");
_image_segmentation_plugin->preDestroy();
}
-void ImageSegmentationExternal::setUserModel(std::string model_file, std::string meta_file, std::string label_file)
+void ImageSegmentationExternal::setUserModel(string model_file, string meta_file, string label_file)
{
_image_segmentation_plugin->setUserModel(model_file, meta_file, label_file);
}
-void ImageSegmentationExternal::setEngineInfo(std::string engine_type, std::string device_type)
+void ImageSegmentationExternal::setEngineInfo(string engine_type, string device_type)
{
_image_segmentation_plugin->setEngineInfo(engine_type, device_type);
}
-void ImageSegmentationExternal::getNumberOfEngines(unsigned int *number_of_engines)
+unsigned int ImageSegmentationExternal::getNumberOfEngines()
{
- _image_segmentation_plugin->getNumberOfEngines(number_of_engines);
+ return _image_segmentation_plugin->getNumberOfEngines();
}
-void ImageSegmentationExternal::getEngineType(unsigned int engine_index, char **engine_type)
+const string &ImageSegmentationExternal::getEngineType(unsigned int engine_index)
{
- _image_segmentation_plugin->getEngineType(engine_index, engine_type);
+ return _image_segmentation_plugin->getEngineType(engine_index);
}
-void ImageSegmentationExternal::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
+unsigned int ImageSegmentationExternal::getNumberOfDevices(const string &engine_type)
{
- _image_segmentation_plugin->getNumberOfDevices(engine_type, number_of_devices);
+ return _image_segmentation_plugin->getNumberOfDevices(engine_type.c_str());
}
-void ImageSegmentationExternal::getDeviceType(const char *engine_type, const unsigned int device_index,
- char **device_type)
+const string &ImageSegmentationExternal::getDeviceType(const string &engine_type, unsigned int device_index)
{
- _image_segmentation_plugin->getDeviceType(engine_type, device_index, device_type);
+ return _image_segmentation_plugin->getDeviceType(engine_type.c_str(), device_index);
}
void ImageSegmentationExternal::configure()
auto context = static_cast<Context *>(handle);
auto task = context->__tasks.at("selfie_segmentation");
- task->getNumberOfEngines(engine_count);
+ *engine_count = task->getNumberOfEngines();
// TODO.
} catch (const BaseException &e) {
LOGE("%s", e.what());
auto context = static_cast<Context *>(handle);
auto task = context->__tasks.at("selfie_segmentation");
- task->getEngineType(engine_index, engine_type);
+ *engine_type = (char *) task->getEngineType(engine_index).c_str();
// TODO.
} catch (const BaseException &e) {
LOGE("%s", e.what());
auto context = static_cast<Context *>(handle);
auto task = context->__tasks.at("selfie_segmentation");
- task->getNumberOfDevices(engine_type, device_count);
+ *device_count = task->getNumberOfDevices(engine_type);
// TODO.
} catch (const BaseException &e) {
LOGE("%s", e.what());
auto context = static_cast<Context *>(handle);
auto task = context->__tasks.at("selfie_segmentation");
- task->getDeviceType(engine_type, device_index, device_type);
+ *device_type = (char *) task->getDeviceType(engine_type, device_index).c_str();
// TODO.
} catch (const BaseException &e) {
LOGE("%s", e.what());
throw InvalidParameter("Invalid selfie segmentation model name.");
}
-void ImageSegmentationAdapter::setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name)
+void ImageSegmentationAdapter::setModelInfo(const string &model_file, const string &meta_file, const string &label_file,
+ const string &model_name)
{
try {
_config->setUserModel(model_file, meta_file, label_file);
LOGW("A given model name is invalid so default task type will be used.");
}
- if (!model_file && !meta_file) {
+ if (model_file.empty() && meta_file.empty()) {
LOGW("Given model info is invalid so default model info will be used instead.");
return;
}
_selfie_segmentation->setUserModel(model_file, meta_file, label_file);
}
-void ImageSegmentationAdapter::setEngineInfo(const char *engine_type, const char *device_type)
+void ImageSegmentationAdapter::setEngineInfo(const string &engine_type, const string &device_type)
{
- _selfie_segmentation->setEngineInfo(string(engine_type), string(device_type));
+ _selfie_segmentation->setEngineInfo(engine_type, device_type);
}
void ImageSegmentationAdapter::configure()
_selfie_segmentation->configure();
}
-void ImageSegmentationAdapter::getNumberOfEngines(unsigned int *number_of_engines)
+unsigned int ImageSegmentationAdapter::getNumberOfEngines()
{
- _selfie_segmentation->getNumberOfEngines(number_of_engines);
+ return _selfie_segmentation->getNumberOfEngines();
}
-void ImageSegmentationAdapter::getEngineType(unsigned int engine_index, char **engine_type)
+const string &ImageSegmentationAdapter::getEngineType(unsigned int engine_index)
{
- _selfie_segmentation->getEngineType(engine_index, engine_type);
+ return _selfie_segmentation->getEngineType(engine_index);
}
-void ImageSegmentationAdapter::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
+unsigned int ImageSegmentationAdapter::getNumberOfDevices(const string &engine_type)
{
- _selfie_segmentation->getNumberOfDevices(engine_type, number_of_devices);
+ return _selfie_segmentation->getNumberOfDevices(engine_type);
}
-void ImageSegmentationAdapter::getDeviceType(const char *engine_type, unsigned int device_index, char **device_type)
+const string &ImageSegmentationAdapter::getDeviceType(const string &engine_type, unsigned int device_index)
{
- _selfie_segmentation->getDeviceType(engine_type, device_index, device_type);
+ return _selfie_segmentation->getDeviceType(engine_type, device_index);
}
void ImageSegmentationAdapter::prepare()
FacialLandmarkAdapter();
~FacialLandmarkAdapter();
- void setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name) override;
- void setEngineInfo(const char *engine_type, const char *device_type) override;
+ void setModelInfo(const std::string &model_file, const std::string &meta_file, const std::string &label_file,
+ const std::string &model_name) override;
+ void setEngineInfo(const std::string &engine_type, const std::string &device_type) override;
void configure() override;
- void getNumberOfEngines(unsigned int *number_of_engines) override;
- void getEngineType(unsigned int engine_index, char **engine_type) override;
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) override;
- void getDeviceType(const char *engine_type, unsigned int device_index, char **device_type) override;
+ unsigned int getNumberOfEngines() override;
+ const std::string &getEngineType(unsigned int engine_index) override;
+ unsigned int getNumberOfDevices(const std::string &engine_type) override;
+ const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index) override;
void prepare() override;
void perform(InputBaseType &input) override;
void performAsync(InputBaseType &input) override;
virtual void preDestroy() = 0;
virtual LandmarkDetectionTaskType getTaskType() = 0;
virtual void setEngineInfo(std::string engine_type, std::string device_type) = 0;
- virtual void getNumberOfEngines(unsigned int *number_of_engines) = 0;
- virtual void getEngineType(unsigned int engine_index, char **engine_type) = 0;
- virtual void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) = 0;
- virtual void getDeviceType(const char *engine_type, const unsigned int device_index, char **device_type) = 0;
+ virtual unsigned int getNumberOfEngines() = 0;
+ virtual const std::string &getEngineType(unsigned int engine_index) = 0;
+ virtual unsigned int getNumberOfDevices(const std::string &engine_type) = 0;
+ virtual const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index) = 0;
virtual void configure() = 0;
virtual void prepare() = 0;
virtual void perform(mv_source_h &mv_src) = 0;
void loadLabel();
void getEngineList();
- void getDeviceList(const char *engine_type);
+ void getDeviceList(const std::string &engine_type);
void preprocess(mv_source_h &mv_src, std::shared_ptr<MetaInfo> metaInfo, std::vector<T> &inputVector);
std::shared_ptr<MetaInfo> getInputMetaInfo();
void preDestroy();
LandmarkDetectionTaskType getTaskType();
void setEngineInfo(std::string engine_type_name, std::string device_type_name);
- void getNumberOfEngines(unsigned int *number_of_engines);
- void getEngineType(unsigned int engine_index, char **engine_type);
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices);
- void getDeviceType(const char *engine_type, const unsigned int device_index, char **device_type);
+ unsigned int getNumberOfEngines();
+ const std::string &getEngineType(unsigned int engine_index);
+ unsigned int getNumberOfDevices(const std::string &engine_type);
+ const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index);
void configure();
void prepare();
void perform(mv_source_h &mv_src);
PoseLandmarkAdapter();
~PoseLandmarkAdapter();
- void setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name) override;
- void setEngineInfo(const char *engine_type, const char *device_type) override;
+ void setModelInfo(const std::string &model_file, const std::string &meta_file, const std::string &label_file,
+ const std::string &model_name) override;
+ void setEngineInfo(const std::string &engine_type, const std::string &device_type) override;
void configure() override;
- void getNumberOfEngines(unsigned int *number_of_engines) override;
- void getEngineType(unsigned int engine_index, char **engine_type) override;
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) override;
- void getDeviceType(const char *engine_type, unsigned int device_index, char **device_type) override;
+ unsigned int getNumberOfEngines() override;
+ const std::string &getEngineType(unsigned int engine_index) override;
+ unsigned int getNumberOfDevices(const std::string &engine_type) override;
+ const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index) override;
void prepare() override;
void perform(InputBaseType &input) override;
void performAsync(InputBaseType &input) override;
throw InvalidParameter("Invalid facial detection model name.");
}
-void FacialLandmarkAdapter::setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name)
+void FacialLandmarkAdapter::setModelInfo(const string &model_file, const string &meta_file, const string &label_file,
+ const string &model_name)
{
try {
_config->setUserModel(model_file, meta_file, label_file);
LOGW("A given model name is invalid so default task type will be used.");
}
- if (!model_file && !meta_file) {
+ if (model_file.empty() && meta_file.empty()) {
LOGW("Given model info is invalid so default model info will be used instead.");
return;
}
}
-void FacialLandmarkAdapter::setEngineInfo(const char *engine_type, const char *device_type)
+void FacialLandmarkAdapter::setEngineInfo(const string &engine_type, const string &device_type)
{
_landmark_detection->setEngineInfo(string(engine_type), string(device_type));
}
_landmark_detection->configure();
}
-void FacialLandmarkAdapter::getNumberOfEngines(unsigned int *number_of_engines)
+unsigned int FacialLandmarkAdapter::getNumberOfEngines()
{
- _landmark_detection->getNumberOfEngines(number_of_engines);
+ return _landmark_detection->getNumberOfEngines();
}
-void FacialLandmarkAdapter::getEngineType(unsigned int engine_index, char **engine_type)
+const string &FacialLandmarkAdapter::getEngineType(unsigned int engine_index)
{
- _landmark_detection->getEngineType(engine_index, engine_type);
+ return _landmark_detection->getEngineType(engine_index);
}
-void FacialLandmarkAdapter::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
+unsigned int FacialLandmarkAdapter::getNumberOfDevices(const string &engine_type)
{
- _landmark_detection->getNumberOfDevices(engine_type, number_of_devices);
+ return _landmark_detection->getNumberOfDevices(engine_type);
}
-void FacialLandmarkAdapter::getDeviceType(const char *engine_type, unsigned int device_index, char **device_type)
+const string &FacialLandmarkAdapter::getDeviceType(const string &engine_type, unsigned int device_index)
{
- _landmark_detection->getDeviceType(engine_type, device_index, device_type);
+ return _landmark_detection->getDeviceType(engine_type, device_index);
}
void FacialLandmarkAdapter::prepare()
}
}
-template<typename T> void LandmarkDetection<T>::getDeviceList(const char *engine_type)
+template<typename T> void LandmarkDetection<T>::getDeviceList(const string &engine_type)
{
// TODO. add device types available for a given engine type later.
// In default, cpu and gpu only.
device_type_name.c_str(), device_type);
}
-template<typename T> void LandmarkDetection<T>::getNumberOfEngines(unsigned int *number_of_engines)
+template<typename T> unsigned int LandmarkDetection<T>::getNumberOfEngines()
{
if (!_valid_backends.empty()) {
- *number_of_engines = _valid_backends.size();
- return;
+ return _valid_backends.size();
}
getEngineList();
- *number_of_engines = _valid_backends.size();
+ return _valid_backends.size();
}
-template<typename T> void LandmarkDetection<T>::getEngineType(unsigned int engine_index, char **engine_type)
+template<typename T> const string &LandmarkDetection<T>::getEngineType(unsigned int engine_index)
{
if (!_valid_backends.empty()) {
if (_valid_backends.size() <= engine_index)
throw InvalidParameter("Invalid engine index.");
- *engine_type = const_cast<char *>(_valid_backends[engine_index].data());
- return;
+ return _valid_backends[engine_index];
}
getEngineList();
if (_valid_backends.size() <= engine_index)
throw InvalidParameter("Invalid engine index.");
- *engine_type = const_cast<char *>(_valid_backends[engine_index].data());
+ return _valid_backends[engine_index];
}
-template<typename T>
-void LandmarkDetection<T>::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
+template<typename T> unsigned int LandmarkDetection<T>::getNumberOfDevices(const string &engine_type)
{
if (!_valid_devices.empty()) {
- *number_of_devices = _valid_devices.size();
- return;
+ return _valid_devices.size();
}
getDeviceList(engine_type);
- *number_of_devices = _valid_devices.size();
+ return _valid_devices.size();
}
template<typename T>
-void LandmarkDetection<T>::getDeviceType(const char *engine_type, const unsigned int device_index, char **device_type)
+const string &LandmarkDetection<T>::getDeviceType(const string &engine_type, const unsigned int device_index)
{
if (!_valid_devices.empty()) {
if (_valid_devices.size() <= device_index)
throw InvalidParameter("Invalid device index.");
- *device_type = const_cast<char *>(_valid_devices[device_index].data());
- return;
+ return _valid_devices[device_index];
}
getDeviceList(engine_type);
if (_valid_devices.size() <= device_index)
throw InvalidParameter("Invalid device index.");
- *device_type = const_cast<char *>(_valid_devices[device_index].data());
+ return _valid_devices[device_index];
}
template<typename T> void LandmarkDetection<T>::loadLabel()
throw InvalidParameter("Invalid pose landmark model name.");
}
-void PoseLandmarkAdapter::setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name)
+void PoseLandmarkAdapter::setModelInfo(const string &model_file, const string &meta_file, const string &label_file,
+ const string &model_name)
{
try {
_config->setUserModel(model_file, meta_file, label_file);
LOGW("A given model name is invalid so default task type will be used.");
}
- if (!model_file && !meta_file) {
+ if (model_file.empty() && meta_file.empty()) {
LOGW("Given model info is invalid so default model info will be used instead.");
return;
}
}
-void PoseLandmarkAdapter::setEngineInfo(const char *engine_type, const char *device_type)
+void PoseLandmarkAdapter::setEngineInfo(const string &engine_type, const string &device_type)
{
- _landmark_detection->setEngineInfo(string(engine_type), string(device_type));
+ _landmark_detection->setEngineInfo(engine_type, device_type);
}
void PoseLandmarkAdapter::configure()
_landmark_detection->configure();
}
-void PoseLandmarkAdapter::getNumberOfEngines(unsigned int *number_of_engines)
+unsigned int PoseLandmarkAdapter::getNumberOfEngines()
{
- _landmark_detection->getNumberOfEngines(number_of_engines);
+ return _landmark_detection->getNumberOfEngines();
}
-void PoseLandmarkAdapter::getEngineType(unsigned int engine_index, char **engine_type)
+const string &PoseLandmarkAdapter::getEngineType(unsigned int engine_index)
{
- _landmark_detection->getEngineType(engine_index, engine_type);
+ return _landmark_detection->getEngineType(engine_index);
}
-void PoseLandmarkAdapter::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
+unsigned int PoseLandmarkAdapter::getNumberOfDevices(const string &engine_type)
{
- _landmark_detection->getNumberOfDevices(engine_type, number_of_devices);
+ return _landmark_detection->getNumberOfDevices(engine_type);
}
-void PoseLandmarkAdapter::getDeviceType(const char *engine_type, unsigned int device_index, char **device_type)
+const string &PoseLandmarkAdapter::getDeviceType(const string &engine_type, unsigned int device_index)
{
- _landmark_detection->getDeviceType(engine_type, device_index, device_type);
+ return _landmark_detection->getDeviceType(engine_type, device_index);
}
void PoseLandmarkAdapter::prepare()
FaceDetectionAdapter();
~FaceDetectionAdapter();
- void setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name) override;
- void setEngineInfo(const char *engine_type, const char *device_type) override;
+ void setModelInfo(const std::string &model_file, const std::string &meta_file, const std::string &label_file,
+ const std::string &model_name) override;
+ void setEngineInfo(const std::string &engine_type, const std::string &device_type) override;
void configure() override;
- void getNumberOfEngines(unsigned int *number_of_engines) override;
- void getEngineType(unsigned int engine_index, char **engine_type) override;
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) override;
- void getDeviceType(const char *engine_type, unsigned int device_index, char **device_type) override;
+ unsigned int getNumberOfEngines() override;
+ const std::string &getEngineType(unsigned int engine_index) override;
+ unsigned int getNumberOfDevices(const std::string &engine_type) override;
+ const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index) override;
void prepare() override;
void perform(InputBaseType &input) override;
void performAsync(InputBaseType &input) override;
virtual void preDestroy() = 0;
virtual ObjectDetectionTaskType getTaskType() = 0;
virtual void setEngineInfo(std::string engine_type, std::string device_type) = 0;
- virtual void getNumberOfEngines(unsigned int *number_of_engines) = 0;
- virtual void getEngineType(unsigned int engine_index, char **engine_type) = 0;
- virtual void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) = 0;
- virtual void getDeviceType(const char *engine_type, const unsigned int device_index, char **device_type) = 0;
+ virtual unsigned int getNumberOfEngines() = 0;
+ virtual const std::string &getEngineType(unsigned int engine_index) = 0;
+ virtual unsigned int getNumberOfDevices(const std::string &engine_type) = 0;
+ virtual const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index) = 0;
virtual void configure() = 0;
virtual void prepare() = 0;
virtual void perform(mv_source_h &mv_src) = 0;
void loadLabel();
void getEngineList();
- void getDeviceList(const char *engine_type);
+ void getDeviceList(const std::string &engine_type);
void preprocess(mv_source_h &mv_src, std::shared_ptr<MetaInfo> metaInfo, std::vector<T> &inputVector);
std::shared_ptr<MetaInfo> getInputMetaInfo();
ObjectDetectionTaskType getTaskType() override;
void setUserModel(std::string model_file, std::string meta_file, std::string label_file);
void setEngineInfo(std::string engine_type_name, std::string device_type_name) override;
- void getNumberOfEngines(unsigned int *number_of_engines) override;
- void getEngineType(unsigned int engine_index, char **engine_type) override;
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) override;
- void getDeviceType(const char *engine_type, const unsigned int device_index, char **device_type) override;
+ unsigned int getNumberOfEngines() override;
+ const std::string &getEngineType(unsigned int engine_index) override;
+ unsigned int getNumberOfDevices(const std::string &engine_type) override;
+ const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index) override;
void configure() override;
void prepare() override;
void perform(mv_source_h &mv_src) override;
ObjectDetectionAdapter();
~ObjectDetectionAdapter();
- void setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name) override;
- void setEngineInfo(const char *engine_type, const char *device_type) override;
+ void setModelInfo(const std::string &model_file, const std::string &meta_file, const std::string &label_file,
+ const std::string &model_name) override;
+ void setEngineInfo(const std::string &engine_type, const std::string &device_type) override;
void configure() override;
- void getNumberOfEngines(unsigned int *number_of_engines) override;
- void getEngineType(unsigned int engine_index, char **engine_type) override;
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) override;
- void getDeviceType(const char *engine_type, unsigned int device_index, char **device_type) override;
+ unsigned int getNumberOfEngines() override;
+ const std::string &getEngineType(unsigned int engine_index) override;
+ unsigned int getNumberOfDevices(const std::string &engine_type) override;
+ const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index) override;
void prepare() override;
void perform(InputBaseType &input) override;
void performAsync(InputBaseType &input) override;
ObjectDetectionResult _current_result;
public:
- ObjectDetectionExternal(ObjectDetectionTaskType task_type, const char *plugin_name);
+ ObjectDetectionExternal(ObjectDetectionTaskType task_type, const std::string &plugin_name);
virtual ~ObjectDetectionExternal();
void preDestroy() override;
ObjectDetectionTaskType getTaskType() override;
void setEngineInfo(std::string engine_type, std::string device_type) override;
- void getNumberOfEngines(unsigned int *number_of_engines) override;
- void getEngineType(unsigned int engine_index, char **engine_type) override;
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) override;
- void getDeviceType(const char *engine_type, const unsigned int device_index, char **device_type) override;
+ unsigned int getNumberOfEngines() override;
+ const std::string &getEngineType(unsigned int engine_index) override;
+ unsigned int getNumberOfDevices(const std::string &engine_type) override;
+ const std::string &getDeviceType(const std::string &engine_type, const unsigned int device_index) override;
void configure() override;
void prepare() override;
void perform(mv_source_h &mv_src) override;
throw InvalidParameter("Invalid face detection model name.");
}
-void FaceDetectionAdapter::setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name)
+void FaceDetectionAdapter::setModelInfo(const string &model_file, const string &meta_file, const string &label_file,
+ const string &model_name)
{
try {
_config->setUserModel(model_file, meta_file, label_file);
LOGW("A given model name is invalid so default task type will be used.");
}
- if (!model_file && !meta_file) {
+ if (model_file.empty() && meta_file.empty()) {
LOGW("Given model info is invalid so default model info will be used instead.");
return;
}
}
-void FaceDetectionAdapter::setEngineInfo(const char *engine_type, const char *device_type)
+void FaceDetectionAdapter::setEngineInfo(const string &engine_type, const string &device_type)
{
_object_detection->setEngineInfo(string(engine_type), string(device_type));
}
_object_detection->configure();
}
-void FaceDetectionAdapter::getNumberOfEngines(unsigned int *number_of_engines)
+unsigned int FaceDetectionAdapter::getNumberOfEngines()
{
- _object_detection->getNumberOfEngines(number_of_engines);
+ return _object_detection->getNumberOfEngines();
}
-void FaceDetectionAdapter::getEngineType(unsigned int engine_index, char **engine_type)
+const string &FaceDetectionAdapter::getEngineType(unsigned int engine_index)
{
- _object_detection->getEngineType(engine_index, engine_type);
+ return _object_detection->getEngineType(engine_index);
}
-void FaceDetectionAdapter::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
+unsigned int FaceDetectionAdapter::getNumberOfDevices(const string &engine_type)
{
- _object_detection->getNumberOfDevices(engine_type, number_of_devices);
+ return _object_detection->getNumberOfDevices(engine_type);
}
-void FaceDetectionAdapter::getDeviceType(const char *engine_type, unsigned int device_index, char **device_type)
+const string &FaceDetectionAdapter::getDeviceType(const string &engine_type, unsigned int device_index)
{
- _object_detection->getDeviceType(engine_type, device_index, device_type);
+ return _object_detection->getDeviceType(engine_type, device_index);
}
void FaceDetectionAdapter::prepare()
}
}
-template<typename T> void ObjectDetection<T>::getDeviceList(const char *engine_type)
+template<typename T> void ObjectDetection<T>::getDeviceList(const string &engine_type)
{
// TODO. add device types available for a given engine type later.
// In default, cpu and gpu only.
device_type_name.c_str(), device_type);
}
-template<typename T> void ObjectDetection<T>::getNumberOfEngines(unsigned int *number_of_engines)
+template<typename T> unsigned int ObjectDetection<T>::getNumberOfEngines()
{
if (!_valid_backends.empty()) {
- *number_of_engines = _valid_backends.size();
- return;
+ return _valid_backends.size();
}
getEngineList();
- *number_of_engines = _valid_backends.size();
+ return _valid_backends.size();
}
-template<typename T> void ObjectDetection<T>::getEngineType(unsigned int engine_index, char **engine_type)
+template<typename T> const string &ObjectDetection<T>::getEngineType(unsigned int engine_index)
{
if (!_valid_backends.empty()) {
if (_valid_backends.size() <= engine_index)
throw InvalidParameter("Invalid engine index.");
- *engine_type = const_cast<char *>(_valid_backends[engine_index].data());
- return;
+ return _valid_backends[engine_index];
}
getEngineList();
if (_valid_backends.size() <= engine_index)
throw InvalidParameter("Invalid engine index.");
- *engine_type = const_cast<char *>(_valid_backends[engine_index].data());
+ return _valid_backends[engine_index];
}
-template<typename T>
-void ObjectDetection<T>::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
+template<typename T> unsigned int ObjectDetection<T>::getNumberOfDevices(const string &engine_type)
{
if (!_valid_devices.empty()) {
- *number_of_devices = _valid_devices.size();
- return;
+ return _valid_devices.size();
}
getDeviceList(engine_type);
- *number_of_devices = _valid_devices.size();
+ return _valid_devices.size();
}
template<typename T>
-void ObjectDetection<T>::getDeviceType(const char *engine_type, const unsigned int device_index, char **device_type)
+const string &ObjectDetection<T>::getDeviceType(const string &engine_type, unsigned int device_index)
{
if (!_valid_devices.empty()) {
if (_valid_devices.size() <= device_index)
throw InvalidParameter("Invalid device index.");
- *device_type = const_cast<char *>(_valid_devices[device_index].data());
- return;
+ return _valid_devices[device_index];
}
getDeviceList(engine_type);
if (_valid_devices.size() <= device_index)
throw InvalidParameter("Invalid device index.");
- *device_type = const_cast<char *>(_valid_devices[device_index].data());
+ return _valid_devices[device_index];
}
template<typename T> void ObjectDetection<T>::loadLabel()
throw InvalidParameter("Invalid object detection model name.");
}
-void ObjectDetectionAdapter::setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name)
+void ObjectDetectionAdapter::setModelInfo(const string &model_file, const string &meta_file, const string &label_file,
+ const string &model_name)
{
try {
_config->setUserModel(model_file, meta_file, label_file);
LOGW("A given model name is invalid so default task type will be used.");
}
- if (!model_file && !meta_file) {
+ if (model_file.empty() && meta_file.empty()) {
LOGW("Given model info is invalid so default model info will be used instead.");
return;
}
}
-void ObjectDetectionAdapter::setEngineInfo(const char *engine_type, const char *device_type)
+void ObjectDetectionAdapter::setEngineInfo(const string &engine_type, const string &device_type)
{
_object_detection->setEngineInfo(string(engine_type), string(device_type));
}
_object_detection->configure();
}
-void ObjectDetectionAdapter::getNumberOfEngines(unsigned int *number_of_engines)
+unsigned int ObjectDetectionAdapter::getNumberOfEngines()
{
- _object_detection->getNumberOfEngines(number_of_engines);
+ return _object_detection->getNumberOfEngines();
}
-void ObjectDetectionAdapter::getEngineType(unsigned int engine_index, char **engine_type)
+const string &ObjectDetectionAdapter::getEngineType(unsigned int engine_index)
{
- _object_detection->getEngineType(engine_index, engine_type);
+ return _object_detection->getEngineType(engine_index);
}
-void ObjectDetectionAdapter::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
+unsigned int ObjectDetectionAdapter::getNumberOfDevices(const string &engine_type)
{
- _object_detection->getNumberOfDevices(engine_type, number_of_devices);
+ return _object_detection->getNumberOfDevices(engine_type);
}
-void ObjectDetectionAdapter::getDeviceType(const char *engine_type, unsigned int device_index, char **device_type)
+const string &ObjectDetectionAdapter::getDeviceType(const string &engine_type, unsigned int device_index)
{
- _object_detection->getDeviceType(engine_type, device_index, device_type);
+ return _object_detection->getDeviceType(engine_type, device_index);
}
void ObjectDetectionAdapter::prepare()
typedef IObjectDetection *create_t(ObjectDetectionTaskType task_type);
typedef void destroy_t(IObjectDetection *);
-ObjectDetectionExternal::ObjectDetectionExternal(ObjectDetectionTaskType task_type, const char *plugin_name)
+ObjectDetectionExternal::ObjectDetectionExternal(ObjectDetectionTaskType task_type, const string &plugin_name)
: _plugin_handle(), _object_detection_plugin()
{
// Load external object detection library.
- LOGI("lib: %s", plugin_name);
- _plugin_handle = dlopen(plugin_name, RTLD_NOW);
+ LOGI("lib: %s", plugin_name.c_str());
+ _plugin_handle = dlopen(plugin_name.c_str(), RTLD_NOW);
if (!_plugin_handle)
throw InvalidOperation("Fail to open plugin library.");
return _object_detection_plugin->getTaskType();
}
-void ObjectDetectionExternal::setEngineInfo(std::string engine_type, std::string device_type)
+void ObjectDetectionExternal::setEngineInfo(string engine_type, string device_type)
{
_object_detection_plugin->setEngineInfo(engine_type, device_type);
}
-void ObjectDetectionExternal::getNumberOfEngines(unsigned int *number_of_engines)
+unsigned int ObjectDetectionExternal::getNumberOfEngines()
{
- _object_detection_plugin->getNumberOfEngines(number_of_engines);
+ return _object_detection_plugin->getNumberOfEngines();
}
-void ObjectDetectionExternal::getEngineType(unsigned int engine_index, char **engine_type)
+const string &ObjectDetectionExternal::getEngineType(unsigned int engine_index)
{
- _object_detection_plugin->getEngineType(engine_index, engine_type);
+ return _object_detection_plugin->getEngineType(engine_index);
}
-void ObjectDetectionExternal::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
+unsigned int ObjectDetectionExternal::getNumberOfDevices(const string &engine_type)
{
- _object_detection_plugin->getNumberOfDevices(engine_type, number_of_devices);
+ return _object_detection_plugin->getNumberOfDevices(engine_type);
}
-void ObjectDetectionExternal::getDeviceType(const char *engine_type, const unsigned int device_index,
- char **device_type)
+const string &ObjectDetectionExternal::getDeviceType(const string &engine_type, const unsigned int device_index)
{
- _object_detection_plugin->getDeviceType(engine_type, device_index, device_type);
+ return _object_detection_plugin->getDeviceType(engine_type, device_index);
}
void ObjectDetectionExternal::configure()
virtual ObjectDetection3dTaskType getTaskType() = 0;
virtual void setEngineInfo(std::string engine_type_name, std::string device_type_name) = 0;
- virtual void getNumberOfEngines(unsigned int *number_of_engines) = 0;
- virtual void getEngineType(unsigned int engine_index, char **engine_type) = 0;
- virtual void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) = 0;
- virtual void getDeviceType(const char *engine_type, const unsigned int device_index, char **device_type) = 0;
+ virtual unsigned int getNumberOfEngines() = 0;
+ virtual const std::string &getEngineType(unsigned int engine_index) = 0;
+ virtual unsigned int getNumberOfDevices(const std::string &engine_type) = 0;
+ virtual const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index) = 0;
virtual std::shared_ptr<MetaInfo> getInputMetaInfo() = 0;
virtual void configure() = 0;
virtual void prepare() = 0;
void loadLabel();
void getEngineList();
- void getDeviceList(const char *engine_type);
+ void getDeviceList(const std::string &engine_type);
protected:
std::unique_ptr<mediavision::inference::Inference> _inference;
ObjectDetection3dTaskType getTaskType();
void setEngineInfo(std::string engine_type_name, std::string device_type_name);
- void getNumberOfEngines(unsigned int *number_of_engines);
- void getEngineType(unsigned int engine_index, char **engine_type);
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices);
- void getDeviceType(const char *engine_type, const unsigned int device_index, char **device_type);
+ unsigned int getNumberOfEngines();
+ const std::string &getEngineType(unsigned int engine_index);
+ unsigned int getNumberOfDevices(const std::string &engine_type);
+ const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index);
std::shared_ptr<MetaInfo> getInputMetaInfo();
void configure();
void prepare();
ObjectDetection3dAdapter();
~ObjectDetection3dAdapter();
- void setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name) override;
- void setEngineInfo(const char *engine_type, const char *device_type) override;
- void getNumberOfEngines(unsigned int *number_of_engines) override;
- void getEngineType(unsigned int engine_index, char **engine_type) override;
- void getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices) override;
- void getDeviceType(const char *engine_type, unsigned int device_index, char **device_type) override;
+ void setModelInfo(const std::string &model_file, const std::string &meta_file, const std::string &label_file,
+ const std::string &model_name) override;
+ void setEngineInfo(const std::string &engine_type, const std::string &device_type) override;
+ unsigned int getNumberOfEngines() override;
+ const std::string &getEngineType(unsigned int engine_index) override;
+ unsigned int getNumberOfDevices(const std::string &engine_type) override;
+ const std::string &getDeviceType(const std::string &engine_type, unsigned int device_index) override;
void configure() override;
void prepare() override;
void perform(InputBaseType &input) override;
auto context = static_cast<Context *>(handle);
auto task = context->__tasks.at("object_detection_3d");
- task->getNumberOfEngines(engine_count);
+ *engine_count = task->getNumberOfEngines();
// TODO.
} catch (const BaseException &e) {
LOGE("%s", e.what());
auto context = static_cast<Context *>(handle);
auto task = context->__tasks.at("object_detection_3d");
- task->getEngineType(engine_index, engine_type);
+ *engine_type = (char *) task->getEngineType(engine_index).c_str();
// TODO.
} catch (const BaseException &e) {
LOGE("%s", e.what());
auto context = static_cast<Context *>(handle);
auto task = context->__tasks.at("object_detection_3d");
- task->getNumberOfDevices(engine_type, device_count);
+ *device_count = task->getNumberOfDevices(engine_type);
// TODO.
} catch (const BaseException &e) {
LOGE("%s", e.what());
}
int mv_object_detection_3d_get_device_type(mv_object_detection_3d_h handle, const char *engine_type,
- const unsigned int device_index, char **device_type)
+ unsigned int device_index, char **device_type)
{
lock_guard<mutex> lock(g_object_detection_3d_mutex);
auto context = static_cast<Context *>(handle);
auto task = context->__tasks.at("object_detection_3d");
- task->getDeviceType(engine_type, device_index, device_type);
+ *device_type = (char *) task->getDeviceType(engine_type, device_index).c_str();
// TODO.
} catch (const BaseException &e) {
LOGE("%s", e.what());
}
}
-template<typename T> void ObjectDetection3d<T>::getDeviceList(const char *engine_type)
+template<typename T> void ObjectDetection3d<T>::getDeviceList(const string &engine_type)
{
// TODO. add device types available for a given engine type later.
// In default, cpu and gpu only.
device_type_name.c_str(), device_type);
}
-template<typename T> void ObjectDetection3d<T>::getNumberOfEngines(unsigned int *number_of_engines)
+template<typename T> unsigned int ObjectDetection3d<T>::getNumberOfEngines()
{
if (!_valid_backends.empty()) {
- *number_of_engines = _valid_backends.size();
- return;
+ return _valid_backends.size();
}
getEngineList();
- *number_of_engines = _valid_backends.size();
+ return _valid_backends.size();
}
-template<typename T> void ObjectDetection3d<T>::getEngineType(unsigned int engine_index, char **engine_type)
+template<typename T> const string &ObjectDetection3d<T>::getEngineType(unsigned int engine_index)
{
if (!_valid_backends.empty()) {
if (_valid_backends.size() <= engine_index)
throw InvalidParameter("Invalid engine index.");
- *engine_type = const_cast<char *>(_valid_backends[engine_index].data());
- return;
+ return _valid_backends[engine_index];
}
getEngineList();
if (_valid_backends.size() <= engine_index)
throw InvalidParameter("Invalid engine index.");
- *engine_type = const_cast<char *>(_valid_backends[engine_index].data());
+ return _valid_backends[engine_index];
}
-template<typename T>
-void ObjectDetection3d<T>::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
+template<typename T> unsigned int ObjectDetection3d<T>::getNumberOfDevices(const string &engine_type)
{
if (!_valid_devices.empty()) {
- *number_of_devices = _valid_devices.size();
- return;
+ return _valid_devices.size();
}
getDeviceList(engine_type);
- *number_of_devices = _valid_devices.size();
+ return _valid_devices.size();
}
template<typename T>
-void ObjectDetection3d<T>::getDeviceType(const char *engine_type, const unsigned int device_index, char **device_type)
+const string &ObjectDetection3d<T>::getDeviceType(const string &engine_type, const unsigned int device_index)
{
if (!_valid_devices.empty()) {
if (_valid_devices.size() <= device_index)
throw InvalidParameter("Invalid device index.");
- *device_type = const_cast<char *>(_valid_devices[device_index].data());
- return;
+ return _valid_devices[device_index];
}
getDeviceList(engine_type);
if (_valid_devices.size() <= device_index)
throw InvalidParameter("Invalid device index.");
- *device_type = const_cast<char *>(_valid_devices[device_index].data());
+ return _valid_devices[device_index];
}
template<typename T> void ObjectDetection3d<T>::loadLabel()
throw InvalidParameter("Invalid object detection 3d model name.");
}
-void ObjectDetection3dAdapter::setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name)
+void ObjectDetection3dAdapter::setModelInfo(const string &model_file, const string &meta_file, const string &label_file,
+ const string &model_name)
{
try {
_config->setUserModel(model_file, meta_file, label_file);
LOGW("A given model name is invalid so default task type will be used.");
}
- if (!model_file && !meta_file)
+ if (model_file.empty() && meta_file.empty())
throw InvalidParameter("Model info not invalid.");
}
-void ObjectDetection3dAdapter::setEngineInfo(const char *engine_type, const char *device_type)
+void ObjectDetection3dAdapter::setEngineInfo(const string &engine_type, const string &device_type)
{
_object_detection_3d->setEngineInfo(string(engine_type), string(device_type));
}
_object_detection_3d->configure();
}
-void ObjectDetection3dAdapter::getNumberOfEngines(unsigned int *number_of_engines)
+unsigned int ObjectDetection3dAdapter::getNumberOfEngines()
{
- _object_detection_3d->getNumberOfEngines(number_of_engines);
+ return _object_detection_3d->getNumberOfEngines();
}
-void ObjectDetection3dAdapter::getEngineType(unsigned int engine_index, char **engine_type)
+const string &ObjectDetection3dAdapter::getEngineType(unsigned int engine_index)
{
- _object_detection_3d->getEngineType(engine_index, engine_type);
+ return _object_detection_3d->getEngineType(engine_index);
}
-void ObjectDetection3dAdapter::getNumberOfDevices(const char *engine_type, unsigned int *number_of_devices)
+unsigned int ObjectDetection3dAdapter::getNumberOfDevices(const string &engine_type)
{
- _object_detection_3d->getNumberOfDevices(engine_type, number_of_devices);
+ return _object_detection_3d->getNumberOfDevices(engine_type);
}
-void ObjectDetection3dAdapter::getDeviceType(const char *engine_type, unsigned int device_index, char **device_type)
+const string &ObjectDetection3dAdapter::getDeviceType(const string &engine_type, unsigned int device_index)
{
- _object_detection_3d->getDeviceType(engine_type, device_index, device_type);
+ return _object_detection_3d->getDeviceType(engine_type, device_index);
}
void ObjectDetection3dAdapter::prepare()