From 908c36eceb1814f990e98898273045c7236dcf47 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Sat, 22 Sep 2018 17:33:35 +0100 Subject: [PATCH] tests: x264enc: fix leak in unit test The static pad templates weren't static so their contents were leaked. valgrind was not happy. Also rename confusing define. --- tests/check/elements/x264enc.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/tests/check/elements/x264enc.c b/tests/check/elements/x264enc.c index 7c4b781..6c64d50 100644 --- a/tests/check/elements/x264enc.c +++ b/tests/check/elements/x264enc.c @@ -35,36 +35,35 @@ static GstPad *mysrcpad, *mysinkpad; "height = (int) 288, " \ "framerate = (fraction) 25/1" -#define MPEG_CAPS_STRING "video/x-h264, " \ +#define H264_CAPS_STRING "video/x-h264, " \ "width = (int) 384, " \ "height = (int) 288, " \ "framerate = (fraction) 25/1" + +static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (VIDEO_CAPS_STRING)); + static GstElement * setup_x264enc (const gchar * profile, const gchar * stream_format, const gchar * input_format) { - GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS (MPEG_CAPS_STRING)); - - GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", - GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS (VIDEO_CAPS_STRING)); + GstPadTemplate *sink_tmpl; GstElement *x264enc; - gchar *caps_str; GstCaps *caps; GST_DEBUG ("setup_x264enc"); - caps_str = g_strdup_printf ("%s, profile = (string) %s, " - "stream-format = (string) %s", MPEG_CAPS_STRING, profile, stream_format); - sinktemplate.static_caps.string = caps_str; + caps = gst_caps_from_string (H264_CAPS_STRING); + gst_caps_set_simple (caps, "profile", G_TYPE_STRING, profile, + "stream-format", G_TYPE_STRING, stream_format, NULL); + sink_tmpl = gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, caps); + gst_caps_unref (caps); x264enc = gst_check_setup_element ("x264enc"); mysrcpad = gst_check_setup_src_pad (x264enc, &srctemplate); - mysinkpad = gst_check_setup_sink_pad (x264enc, &sinktemplate); + mysinkpad = gst_check_setup_sink_pad_from_template (x264enc, sink_tmpl); gst_pad_set_active (mysrcpad, TRUE); gst_pad_set_active (mysinkpad, TRUE); @@ -72,8 +71,7 @@ setup_x264enc (const gchar * profile, const gchar * stream_format, gst_caps_set_simple (caps, "format", G_TYPE_STRING, input_format, NULL); gst_check_setup_events (mysrcpad, x264enc, caps, GST_FORMAT_TIME); gst_caps_unref (caps); - - g_free (caps_str); + gst_object_unref (sink_tmpl); return x264enc; } -- 2.7.4