changeset 7949:0aedfdc5d6ef

fixing segfault
author michael
date Tue, 29 Oct 2002 01:20:51 +0000
parents 5a6cbe774760
children d41eb993f6e2
files libmpcodecs/vf_pp.c
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/libmpcodecs/vf_pp.c	Tue Oct 29 00:54:07 2002 +0000
+++ b/libmpcodecs/vf_pp.c	Tue Oct 29 01:20:51 2002 +0000
@@ -25,13 +25,15 @@
 static int config(struct vf_instance_s* vf,
         int width, int height, int d_width, int d_height,
 	unsigned int voflags, unsigned int outfmt){
-
-    if(vf->priv->context) freePPContext(vf->priv->context);
     vf->priv->context= getPPContext(width, height);
 
     return vf_next_config(vf,width,height,d_width,d_height,voflags,vf->priv->outfmt);
 }
 
+static void uninit(struct vf_instance_s* vf){
+    if(vf->priv->context) freePPContext(vf->priv->context);
+}
+
 static int query_format(struct vf_instance_s* vf, unsigned int fmt){
     switch(fmt){
     case IMGFMT_YV12:
@@ -118,8 +120,10 @@
     vf->config=config;
     vf->get_image=get_image;
     vf->put_image=put_image;
+    vf->uninit=uninit;
     vf->default_caps=VFCAP_ACCEPT_STRIDE|VFCAP_POSTPROC;
     vf->priv=malloc(sizeof(struct vf_priv_s));
+    vf->priv->context=NULL;
 
     // check csp:
     vf->priv->outfmt=vf_match_csp(&vf->next,fmt_list,IMGFMT_YV12);