in src/gst/lookoutvision/gstlookoutvision.cc [218:249]
static GstFlowReturn gst_lookout_vision_chain(GstPad * pad, GstObject * parent, GstBuffer * buf) {
GstLookoutVision *filter;
filter = GST_LOOKOUTVISION(parent);
// Extract image from gstbuffer
GstMapInfo map;
gst_buffer_map(buf, &map, GST_MAP_READ);
// Send image to inference server and get response
GstLookoutVisionResult* inference_result;
if (filter->model_component) {
inference_result = filter->inference_client->DetectAnomalies(filter->model_component, map.data, map.size,
filter->width, filter->height);
} else {
inference_result = new GstLookoutVisionResult{0, 0, GstLookoutVisionResultStatus::FAILED,
"No value set for model-component"};
}
gst_buffer_add_lookout_vision_meta(buf, inference_result);
if (inference_result->result_status == GstLookoutVisionResultStatus::SUCCESSFUL) {
std::cout << "Is Anomalous? " << inference_result->is_anomalous
<< ", Confidence: " << inference_result->confidence << std::endl;
} else {
std::cout << "Inference call failed" << std::endl;
}
// Free memory
gst_buffer_unmap(buf, &map);
delete inference_result;
return gst_pad_push(filter->srcpad, buf);
}