Memory leaks after pipeline restarts

Topilski atopilski at gmail.com
Fri Jul 1 15:55:51 UTC 2016


Hello!
I'm working with gstreamer 1.6.2 version. My task is create pipeline
something like this:
gst-launch-1.0 uridecodebin uri=input
caps="video/x-h264,stream-format=byte-stream" ! h264parse (videoconvert  !
videoencoder ! audioconvert ! audioencoder) ! flvmux ! rtmpsink
location=output .

implemetatin looks like:
start:
GMainLoop* loop_ = g_main_loop_new(ctx_holder::instance()->ctx, FALSE);
GMainLoop* pipeline_ = gst_pipeline_new("pipeline");
build_input()  // uridecodebin 
job_build_transcoding()
build_output() //uridecodebin 
GstBus* bus = gst_pipeline_get_bus(pipeline());
bus_watch_id_ = gst_bus_add_watch(bus, worker_bus_callback, this);
gst_object_unref(bus);
setPipelineState(GST_STATE_PLAYING);
// run
g_main_loop_run(loop_);
setPipelineState(GST_STATE_NULL);
g_object_unref(pipeline_);
g_main_loop_unref(loop_);
:end

after that when user want to restart(somesthing change in pepline) pepline,
he calling quit metod from te another thread (
GstMessage* message = gst_message_new_application(GST_OBJECT(pipeline_),
result);
  return gst_element_post_message(pipeline_, message);
)
after that loop quiting, and i create new pipeline (repeate code from start
to end) with new elements, all work as needed but after restart pipeline,
memory increased about 2x size. in valgrind nothing found. I debuging this
part of code and see some gstreamer threds(queue handling) which worked
after loop unrefed. How i can to force release memory which used in tis
threads?



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Memory-leaks-after-pipeline-restarts-tp4678372.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list