Pipelines are never freed. These are detected as leaks by leak detector tools like address sanitizer. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- server/tests/test-gst.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) Changes since v1: - improved commit message. diff --git a/server/tests/test-gst.c b/server/tests/test-gst.c index a78432eaa..83cec5fb8 100644 --- a/server/tests/test-gst.c +++ b/server/tests/test-gst.c @@ -172,6 +172,7 @@ static TestFrame *gst_to_spice_frame(GstSample *sample); static void bitmap_free(SpiceBitmap *bitmap); static void frame_ref(TestFrame *frame); static void frame_unref(TestFrame *frame); +static void pipeline_free(TestPipeline *pipeline); static void pipeline_send_raw_data(TestPipeline *pipeline, VideoBuffer *buffer); static void pipeline_wait_eos(TestPipeline *pipeline); static void create_input_pipeline(const char *input_pipeline, @@ -434,6 +435,9 @@ int main(int argc, char *argv[]) exit(1); } + pipeline_free(input_pipeline); + pipeline_free(output_pipeline); + g_free(encoder_name); g_free(image_format); g_free(input_pipeline_desc); @@ -615,6 +619,17 @@ create_pipeline(const char *desc, SampleProc sample_proc, void *param) } static void +pipeline_free(TestPipeline *pipeline) +{ + if (pipeline->appsrc) { + gst_object_unref(pipeline->appsrc); + } + gst_object_unref(pipeline->appsink); + gst_object_unref(pipeline->gst_pipeline); + free(pipeline); +} + +static void create_output_pipeline(const EncoderInfo *encoder, SampleProc sample_proc, void *param) { gchar *desc = -- 2.13.5 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel