[vlc-devel] [PATCH 1/1] [transcode] Fix allocation of picture_t without full initialization
David Flynn
davidf+nntp at woaf.net
Tue Nov 4 18:43:03 CET 2008
From: David Flynn <davidf at rd.bbc.co.uk>
Signed-off-by: David Flynn <davidf at rd.bbc.co.uk>
---
modules/stream_out/transcode.c | 25 +++++++------------------
1 files changed, 7 insertions(+), 18 deletions(-)
diff --git a/modules/stream_out/transcode.c b/modules/stream_out/transcode.c
index c2040ff..a706085 100644
--- a/modules/stream_out/transcode.c
+++ b/modules/stream_out/transcode.c
@@ -2224,31 +2224,20 @@ static picture_t *video_new_buffer( vlc_object_t *p_this, picture_t **pp_ring,
i = 0;
}
- p_pic = malloc( sizeof(picture_t) );
+ p_pic = picture_New( p_dec->fmt_out.video.i_chroma,
+ p_dec->fmt_out.video.i_width,
+ p_dec->fmt_out.video.i_height,
+ p_dec->fmt_out.video.i_aspect );
if( !p_pic ) return NULL;
p_dec->fmt_out.video.i_chroma = p_dec->fmt_out.i_codec;
- vout_AllocatePicture( VLC_OBJECT(p_dec), p_pic,
- p_dec->fmt_out.video.i_chroma,
- p_dec->fmt_out.video.i_width,
- p_dec->fmt_out.video.i_height,
- p_dec->fmt_out.video.i_aspect );
-
- if( !p_pic->i_planes )
- {
- free( p_pic );
- return NULL;
- }
-
- p_pic->pf_release = video_release_buffer;
- p_pic->p_sys = malloc( sizeof(picture_sys_t) );
+ p_pic->p_sys = calloc( 1, sizeof(picture_sys_t) );
if( !p_pic->p_sys )
{
- free( p_pic );
+ p_pic->pf_release( p_pic );
return NULL;
}
+ p_pic->pf_release = video_release_buffer;
- p_pic->p_sys->p_owner = p_this;
- p_pic->i_status = RESERVED_PICTURE;
pp_ring[i] = p_pic;
return p_pic;
--
1.5.6.5
More information about the vlc-devel
mailing list