From 3d9c9d5411dbc95c7998248e65b3a1b460580695 Mon Sep 17 00:00:00 2001 Message-Id: <3d9c9d5411dbc95c7998248e65b3a1b460580695.1715515913.git.mdw@distorted.org.uk> From: Mark Wooding Date: Tue, 10 Jul 2018 11:22:35 +0100 Subject: [PATCH] server/gstdecode.c: Unref reference-counted things properly. Organization: Straylight/Edgeware From: Mark Wooding Use the correct functions, which really are available in both versions, so we can eliminate some ifdeffery. Also restructure `decoder_pad_arrived' to not leak the new pad's caps. --- server/gstdecode.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/server/gstdecode.c b/server/gstdecode.c index 405b2d6..7d54052 100644 --- a/server/gstdecode.c +++ b/server/gstdecode.c @@ -115,13 +115,11 @@ static void report_element_pads(const char *what, GstElement *elt, pad = g_value_get_object(&gv); caps = gst_pad_query_caps(pad, 0); cs = gst_caps_to_string(caps); - g_object_unref(caps); + gst_caps_unref(caps); #endif disorder_error(0, " `%s' %s pad: %s", GST_OBJECT_NAME(elt), what, cs); g_free(cs); -#ifdef HAVE_GSTREAMER_0_10 - g_object_unref(pad); -#endif + gst_object_unref(pad); break; case GST_ITERATOR_RESYNC: gst_iterator_resync(it); @@ -184,10 +182,7 @@ static void decoder_pad_arrived(GstElement *decode, GstPad *pad, gpointer u) #endif goto match; } -#ifndef HAVE_GSTREAMER_0_10 - g_object_unref(caps); -#endif - return; + goto end; match: /* Yes, it's audio. Link the two elements together. */ @@ -199,6 +194,9 @@ match: GST_DEBUG_BIN_TO_DOT_FILE(GST_BIN(pipeline), GST_DEBUG_GRAPH_SHOW_ALL, "disorder-gstdecode"); + +end: + gst_caps_unref(caps); } /* Prepare the GStreamer pipeline, ready to decode the given FILE. This sets @@ -273,6 +271,7 @@ static void prepare_pipeline(void) END); #endif gst_app_sink_set_caps(appsink, caps); + gst_caps_unref(caps); /* Add the various elements into the pipeline. We'll stitch them together * in pieces, because the pipeline is somewhat dynamic. -- [mdw]