static GstFlowReturn gst_mqtt_publisher_chain()

in mqtt-publish-sample/mqttpublisher-gstreamer-plugin/mqttpublisher/gstmqttpublisher.cc [159:180]


static GstFlowReturn gst_mqtt_publisher_chain(GstPad * pad, GstObject * parent, GstBuffer * buf) {
    GstMqttPublisher *filter;
    filter = GST_MQTTPUBLISHER(parent);

    GstLookoutVisionMeta* lookoutvision_meta = gst_buffer_get_lookout_vision_meta(buf);
    if (lookoutvision_meta) {
        GstLookoutVisionResult* inference_result = lookoutvision_meta->result;
        if (inference_result && inference_result->result_status == GstLookoutVisionResultStatus::SUCCESSFUL) {
            std::string result_message = "Detect Anomaly Result - Is Anomalous? "
                    + std::to_string(inference_result->is_anomalous) + ", Confidence: "
                    + std::to_string(inference_result->confidence);
            filter->greengrass_client->PublishToIoTMQTT(filter->publish_topic, result_message);
            g_print("Published to MQTT topic %s\n", filter->publish_topic);
        } else {
            std::cout << "Inference call failed / No result in metadata" << std::endl;
        }
    } else {
        std::cout << "Failed to read metadata" << std::endl;
    }

    return gst_pad_push(filter->srcpad, buf);
}