using namespace mediavision::machine_learning;
using namespace mediavision::machine_learning::face_recognition;
using namespace mediavision::machine_learning::exception;
+using FaceRecognitionTask = ITask<mv_face_recognition_input_s, mv_face_recognition_result_s>;
int mv_face_recognition_create_open(mv_face_recognition_h *handle)
{
return MEDIA_VISION_ERROR_OUT_OF_MEMORY;
}
- ITask<mv_face_recognition_input_s, mv_face_recognition_result_s> *itask =
+ FaceRecognitionTask *task =
new (nothrow)FaceRecognitionAdapter<mv_face_recognition_input_s, mv_face_recognition_result_s>();
- if (!itask) {
+ if (!task) {
delete context;
- LOGE("Fail to allocate a itask.");
+ LOGE("Fail to allocate a task.");
return MEDIA_VISION_ERROR_OUT_OF_MEMORY;
}
pair<map<string, void *>::iterator, bool> result;
- result = context->__itasks.insert(pair<string, void *>("face_recognition", itask));
+ result = context->__tasks.insert(pair<string, void *>("face_recognition", task));
if (!result.second) {
delete context;
LOGE("Fail to register a new task. Same task already exists.");
Context *context = static_cast<Context *>(handle);
map<string, void *>::iterator iter;
- for (iter = context->__itasks.begin(); iter != context->__itasks.end(); ++iter) {
- auto itask = static_cast<ITask<mv_face_recognition_input_s, mv_face_recognition_result_s> *>(iter->second);
- delete itask;
+ for (iter = context->__tasks.begin(); iter != context->__tasks.end(); ++iter) {
+ auto task = static_cast<FaceRecognitionTask *>(iter->second);
+ delete task;
}
delete context;
}
Context *context = static_cast<Context *>(handle);
- auto itask = static_cast<ITask<mv_face_recognition_input_s, mv_face_recognition_result_s> *>(context->__itasks["face_recognition"]);
+ auto task = static_cast<FaceRecognitionTask *>(context->__tasks["face_recognition"]);
- itask->configure();
- itask->prepare();
+ task->configure();
+ task->prepare();
LOGD("LEAVE");
try {
Context *context = static_cast<Context *>(handle);
- auto itask = static_cast<ITask<mv_face_recognition_input_s, mv_face_recognition_result_s> *>(context->__itasks["face_recognition"]);
+ auto task = static_cast<FaceRecognitionTask *>(context->__tasks["face_recognition"]);
mv_face_recognition_input_s input = { mode::REGISTER };
input.register_src.clear();
input.register_src.insert(make_pair(source, string(label)));
- itask->setInput(input);
- itask->perform();
+ task->setInput(input);
+ task->perform();
} catch (const BaseException& e) {
LOGE("Fail to register new face.");
return e.getError();
try {
Context *context = static_cast<Context *>(handle);
- auto itask = static_cast<ITask<mv_face_recognition_input_s, mv_face_recognition_result_s> *>(context->__itasks["face_recognition"]);
+ auto task = static_cast<FaceRecognitionTask *>(context->__tasks["face_recognition"]);
mv_face_recognition_input_s input = { mode::DELETE };
input.labels.clear();
input.labels.push_back(string(label));
- itask->setInput(input);
- itask->perform();
+ task->setInput(input);
+ task->perform();
} catch (const BaseException& e) {
LOGE("Fail to unregister a given label.");
return e.getError();
try {
Context *context = static_cast<Context *>(handle);
- auto itask = static_cast<ITask<mv_face_recognition_input_s, mv_face_recognition_result_s> *>(context->__itasks["face_recognition"]);
+ auto task = static_cast<FaceRecognitionTask *>(context->__tasks["face_recognition"]);
mv_face_recognition_input_s input = { mode::INFERENCE };
input.inference_src = source;
- itask->setInput(input);
- itask->perform();
+ task->setInput(input);
+ task->perform();
} catch (const BaseException& e) {
LOGE("Fail to recognize a face.");
return e.getError();
try {
Context *context = static_cast<Context *>(handle);
- auto itask = static_cast<ITask<mv_face_recognition_input_s, mv_face_recognition_result_s> *>(context->__itasks["face_recognition"]);
+ auto task = static_cast<FaceRecognitionTask *>(context->__tasks["face_recognition"]);
- *out_label = itask->getOutput().label.c_str();
+ *out_label = task->getOutput().label.c_str();
} catch (const BaseException& e) {
LOGE("Fail to get label.");
return e.getError();