From fc93c66d3be4dc02af2e9f1215ae43e540bc67e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sat, 9 Jul 2011 10:57:52 +0200 Subject: [PATCH] basevideo: Add destroy notify for the coder_hook to prevent memory leaks Fixes bug #654293. --- gst-libs/gst/video/gstbasevideocodec.c | 3 +++ gst-libs/gst/video/gstbasevideocodec.h | 2 ++ gst-libs/gst/video/gstbasevideodecoder.c | 3 +++ 3 files changed, 8 insertions(+) diff --git a/gst-libs/gst/video/gstbasevideocodec.c b/gst-libs/gst/video/gstbasevideocodec.c index 07085f7304..f2d4ee6ca6 100644 --- a/gst-libs/gst/video/gstbasevideocodec.c +++ b/gst-libs/gst/video/gstbasevideocodec.c @@ -182,5 +182,8 @@ gst_base_video_codec_free_frame (GstVideoFrame * frame) gst_buffer_unref (frame->src_buffer); } + if (frame->coder_hook_destroy_notify && frame->coder_hook) + frame->coder_hook_destroy_notify (frame->coder_hook); + g_free (frame); } diff --git a/gst-libs/gst/video/gstbasevideocodec.h b/gst-libs/gst/video/gstbasevideocodec.h index 9bada934b3..e9431e20ab 100644 --- a/gst-libs/gst/video/gstbasevideocodec.h +++ b/gst-libs/gst/video/gstbasevideocodec.h @@ -125,6 +125,8 @@ struct _GstVideoFrame int n_fields; void *coder_hook; + GDestroyNotify coder_hook_destroy_notify; + GstClockTime deadline; gboolean force_keyframe; diff --git a/gst-libs/gst/video/gstbasevideodecoder.c b/gst-libs/gst/video/gstbasevideodecoder.c index aca8d5cdfa..81c84beb99 100644 --- a/gst-libs/gst/video/gstbasevideodecoder.c +++ b/gst-libs/gst/video/gstbasevideodecoder.c @@ -1288,6 +1288,9 @@ gst_base_video_decoder_free_frame (GstVideoFrame * frame) gst_buffer_unref (frame->src_buffer); } + if (frame->coder_hook_destroy_notify && frame->coder_hook) + frame->coder_hook_destroy_notify (frame->coder_hook); + g_free (frame); }