From 76ab4696aa1dd14a349a7492faf4f93ddb13cbfc Mon Sep 17 00:00:00 2001 From: Laurent Aimar Date: Thu, 17 Jul 2008 22:45:03 +0200 Subject: [PATCH] Do not increase refcount when the release callback is not present. --- src/misc/image.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/misc/image.c b/src/misc/image.c index 4fc679a7a2..3117ce4bac 100644 --- a/src/misc/image.c +++ b/src/misc/image.c @@ -316,7 +316,8 @@ static block_t *ImageWrite( image_handler_t *p_image, picture_t *p_pic, p_image->p_filter->fmt_out.video = p_image->p_enc->fmt_in.video; } - p_pic->i_refcount++; /* pf_video_filter() will call pf_release() */ + if( p_pic->pf_release ) + p_pic->i_refcount++; p_tmp_pic = p_image->p_filter->pf_video_filter( p_image->p_filter, p_pic ); @@ -445,7 +446,8 @@ static picture_t *ImageConvert( image_handler_t *p_image, picture_t *p_pic, p_image->p_filter->fmt_out.video = *p_fmt_out; } - p_pic->i_refcount++; /* pf_video_filter() will call pf_release() */ + if( p_pic->pf_release ) + p_pic->i_refcount++; p_pif = p_image->p_filter->pf_video_filter( p_image->p_filter, p_pic ); if( p_fmt_in->i_chroma == p_fmt_out->i_chroma && @@ -491,7 +493,8 @@ static picture_t *ImageFilter( image_handler_t *p_image, picture_t *p_pic, p_image->p_filter->fmt_out.video = *p_fmt; } - p_pic->i_refcount++; /* pf_video_filter() will call pf_release() */ + if( p_pic->pf_release ) + p_pic->i_refcount++; return p_image->p_filter->pf_video_filter( p_image->p_filter, p_pic ); } -- 2.39.2