Using Gstreamer causes memory leaks

Viewed 72

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.

0 Answers
Related