Using Gstreamer causes memory leaks,I don't know why? Here is my code:
/* prepare the pipeline */
pipeline = gst_pipeline_new ("xvoverlay");
src = gst_element_factory_make ("v4l2src", "v4l2src");
g_object_set(G_OBJECT(src),"device", device_path, NULL);
queue_video = gst_element_factory_make ("queue", "queue_video");
queue_rknn = gst_element_factory_make ("queue", "queue_rknn");
g_object_set(queue_video, "max-size-buffers", 3, NULL);
g_object_set(queue_rknn, "max-size-buffers", 3, NULL);
appsink = gst_element_factory_make ("appsink", "appsink");
g_object_set(appsink, "max-buffers", 3, NULL);
g_object_set(appsink, "drop", True, NULL);
sink = find_video_sink ();
if (sink == NULL) {
g_error ("Couldn't find a working video sink.");
}
tee = gst_element_factory_make ("tee", "tee");
gst_bin_add_many (GST_BIN (pipeline), src, sink, appsink, tee, queue_video, queue_rknn, NULL);
gst_element_link (src, tee);
/* gst_element_link (tee, appsink);
gst_element_link (tee, sink);*/
gst_element_link (tee, queue_video);
gst_element_link (tee, queue_rknn);
gst_element_link (queue_rknn, appsink);
gst_element_link (queue_video, sink);
I'm not sure I can use it like this, src-> tee ->queue -> sink ***********************************************->queue -> appsink,A tee diverts two streams. My goal is the camera stream, all the way to the screen, all the way to processing.