[gst-cvs] gst-plugins-bad: schroenc: minor memleak fix

David Schleef ds at kemper.freedesktop.org
Sat Nov 27 19:10:01 PST 2010


Module: gst-plugins-bad
Branch: master
Commit: cb3bac56bff2d5ffabbbb31579836fe2eae004ed
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=cb3bac56bff2d5ffabbbb31579836fe2eae004ed

Author: David Schleef <ds at schleef.org>
Date:   Mon Nov 15 11:37:39 2010 -0800

schroenc: minor memleak fix

---

 ext/schroedinger/gstschroenc.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/ext/schroedinger/gstschroenc.c b/ext/schroedinger/gstschroenc.c
index 4a01028..b4e50a9 100644
--- a/ext/schroedinger/gstschroenc.c
+++ b/ext/schroedinger/gstschroenc.c
@@ -429,6 +429,14 @@ gst_schro_enc_stop (GstBaseVideoEncoder * base_video_encoder)
     schro_encoder_free (schro_enc->encoder);
     schro_enc->encoder = NULL;
   }
+  if (schro_enc->seq_header_buffer) {
+    gst_buffer_unref (schro_enc->seq_header_buffer);
+    schro_enc->seq_header_buffer = NULL;
+  }
+  if (schro_enc->video_format) {
+    g_free (schro_enc->video_format);
+    schro_enc->video_format = NULL;
+  }
 
   return TRUE;
 }
@@ -775,6 +783,7 @@ gst_schro_enc_process (GstSchroEnc * schro_enc)
               (double *) GST_BUFFER_DATA (buf), 21);
           structure = gst_structure_new ("schroenc",
               "frame-stats", GST_TYPE_BUFFER, buf, NULL);
+          gst_buffer_unref (buf);
           message = gst_message_new_element (GST_OBJECT (schro_enc), structure);
           gst_element_post_message (GST_ELEMENT (schro_enc), message);
         }
@@ -784,6 +793,7 @@ gst_schro_enc_process (GstSchroEnc * schro_enc)
           GST_DEBUG ("got eos");
           //frame = schro_enc->eos_frame;
           frame = NULL;
+          schro_buffer_unref (encoded_buffer);
         }
 
         /* FIXME: Get the frame from somewhere somehow... */





More information about the Gstreamer-commits mailing list