static void gst_lookout_vision_set_property()

in src/gst/lookoutvision/gstlookoutvision.cc [145:176]


static void gst_lookout_vision_set_property(GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) {
    GstLookoutVision *filter = GST_LOOKOUTVISION(object);

    switch (prop_id) {
        case PROP_SERVER_SOCKET:
            g_free(filter->server_socket);
            filter->server_socket = g_strdup(g_value_get_string(value));
            filter->inference_client->setServerSocket(filter->server_socket);
            if (filter->model_component) {
                if (filter->inference_client->StartModel(filter->model_component, filter->model_status_timeout)
                        != LookoutVisionInferenceClient::OperationStatus::SUCCESSFUL) {
                    GST_ELEMENT_ERROR(filter, LIBRARY, FAILED, (NULL), ("Failed to start model"));
                }
            }
            break;
        case PROP_MODEL_COMPONENT:
            if (filter->inference_client->StartModel(g_value_get_string(value), filter->model_status_timeout)
                    != LookoutVisionInferenceClient::OperationStatus::SUCCESSFUL) {
                GST_ELEMENT_ERROR(filter, LIBRARY, FAILED, (NULL), ("Failed to start model"));
            } else {
                g_free(filter->model_component);
                filter->model_component = g_strdup(g_value_get_string(value));
            }
            break;
        case PROP_MODEL_STATUS_TIMEOUT:
            filter->model_status_timeout = g_value_get_uint(value);
            break;
        default:
            G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
            break;
    }
}