From 195cca6063f05bd4657773ef78d0517c1c19ac60 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Wed, 9 Jul 2014 19:53:01 +0530 Subject: Fix unref and frees in various places --- src/encode.c | 6 ++++-- src/lib.c | 19 ++----------------- 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/src/encode.c b/src/encode.c index a149219..62f0a71 100644 --- a/src/encode.c +++ b/src/encode.c @@ -23,7 +23,8 @@ on_autoplug_continue (GstElement *decodebin, else ret = TRUE, g_debug ("encodebin cannot passthrough %s\n", name); - gst_object_unref (sinkpad); + if (sinkpad) + gst_object_unref (sinkpad); g_free (name); return ret; } @@ -65,7 +66,8 @@ on_decodebin_pad_added (GstElement *decodebin, out: g_free (name); gst_caps_unref (caps); - gst_object_unref (sinkpad); + if (sinkpad) + gst_object_unref (sinkpad); return; } diff --git a/src/lib.c b/src/lib.c index fc21cde..cb24fa6 100644 --- a/src/lib.c +++ b/src/lib.c @@ -42,9 +42,7 @@ stp_cleanup_transcode_server_ctx (TranscodeServerCtx *ctx) { g_print (">>> Doing server cleanup\n"); - /* Closing the stream should send a HUP on the fd and - * trigger cleanup in write_get_response_body_chunk() */ - g_list_foreach (ctx->clients, (GFunc)stp_close_client_ctx, NULL); + g_list_foreach (ctx->clients, (GFunc)stp_cleanup_transcode_client_ctx, NULL); g_list_free (ctx->clients); /* Cleanup gstreamer pipeline */ @@ -92,10 +90,7 @@ stp_cleanup_transcode_client_ctx (TranscodeClientCtx *ctx) g_print (">>> Doing client cleanup."); - /* If we're cleaning up because the server is shutting down, - * this will be NULL */ - if (server_ctx) - server_ctx->clients = g_list_remove (server_ctx->clients, ctx); + server_ctx->clients = g_list_remove (server_ctx->clients, ctx); /* Block sinkpad and srcpad, then unlink and remove */ srcpad = gst_pad_get_peer (ctx->ghostsinkpad); @@ -107,16 +102,6 @@ stp_cleanup_transcode_client_ctx (TranscodeClientCtx *ctx) g_print ("."); } -void -stp_close_client_ctx (TranscodeClientCtx *ctx) -{ - g_print (">>> Doing client cleanup\n"); - - ctx->server_ctx = NULL; - - g_free (ctx); -} - /* Returns a copy of the streamheader GstBuffer */ GstBuffer* stp_get_streamheader_from_caps (GstCaps *caps) -- cgit v0.11.2-2-gd1dd