basevideo: Add destroy notify for the coder_hook to prevent memory leaks
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Sat, 9 Jul 2011 08:57:52 +0000 (10:57 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Sat, 9 Jul 2011 09:06:06 +0000 (11:06 +0200)
Fixes bug #654293.

omx/gstbasevideocodec.c
omx/gstbasevideocodec.h
omx/gstbasevideodecoder.c

index 302f417..db5112b 100644 (file)
@@ -188,5 +188,8 @@ gst_base_video_codec_free_frame (GstVideoFrame * frame)
   g_list_foreach (frame->events, (GFunc) gst_event_unref, NULL);
   g_list_free (frame->events);
 
+  if (frame->coder_hook_destroy_notify && frame->coder_hook)
+    frame->coder_hook_destroy_notify (frame->coder_hook);
+
   g_free (frame);
 }
index 0cfe1cb..cffc396 100644 (file)
@@ -126,6 +126,8 @@ struct _GstVideoFrame
   int n_fields;
 
   void *coder_hook;
+  GDestroyNotify coder_hook_destroy_notify;
+
   GstClockTime deadline;
 
   gboolean force_keyframe;
index ca681cb..037a92a 100644 (file)
@@ -1323,6 +1323,9 @@ gst_base_video_decoder_free_frame (GstVideoFrame * frame)
   g_list_foreach (frame->events, (GFunc) gst_event_unref, NULL);
   g_list_free (frame->events);
 
+  if (frame->coder_hook_destroy_notify && frame->coder_hook)
+    frame->coder_hook_destroy_notify (frame->coder_hook);
+
   g_free (frame);
 }