CVS: main/libmpcodecs dec_video.c,1.131,1.132 mp_image.h,1.8,1.9 vf.c,1.18,1.19 vf.h,1.8,1.9
Update of /cvsroot/mplayer/main/libmpcodecs In directory mail:/var/tmp.root/cvs-serv21381 Modified Files: dec_video.c mp_image.h vf.c vf.h Log Message: filters uninit Index: dec_video.c =================================================================== RCS file: /cvsroot/mplayer/main/libmpcodecs/dec_video.c,v retrieving revision 1.131 retrieving revision 1.132 diff -u -r1.131 -r1.132 --- dec_video.c 15 Apr 2002 22:41:06 -0000 1.131 +++ dec_video.c 20 Apr 2002 22:24:19 -0000 1.132 @@ -131,6 +131,7 @@ if(!sh_video->inited) return; mp_msg(MSGT_DECVIDEO,MSGL_V,"uninit video: %d \n",sh_video->codec->driver); mpvdec->uninit(sh_video); + vf_uninit_filter_chain(sh_video->vfilter); sh_video->inited=0; } Index: mp_image.h =================================================================== RCS file: /cvsroot/mplayer/main/libmpcodecs/mp_image.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- mp_image.h 16 Mar 2002 20:35:59 -0000 1.8 +++ mp_image.h 20 Apr 2002 22:24:19 -0000 1.9 @@ -97,4 +97,12 @@ return mpi; } +static inline void free_mp_image(mp_image_t* mpi){ + if(!mpi) return; + if(mpi->flags&MP_IMGFLAG_ALLOCATED){ + if(mpi->planes[0]) free(mpi->planes[0]); + } + free(mpi); +} + #endif Index: vf.c =================================================================== RCS file: /cvsroot/mplayer/main/libmpcodecs/vf.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- vf.c 19 Apr 2002 02:18:46 -0000 1.18 +++ vf.c 20 Apr 2002 22:24:19 -0000 1.19 @@ -299,3 +299,19 @@ //============================================================================ +void vf_uninit_filter(vf_instance_t* vf){ + if(vf->uninit) vf->uninit(vf); + free_mp_image(vf->imgctx.static_images[0]); + free_mp_image(vf->imgctx.static_images[1]); + free_mp_image(vf->imgctx.temp_images[0]); + free_mp_image(vf->imgctx.export_images[0]); + free(vf); +} + +void vf_uninit_filter_chain(vf_instance_t* vf){ + while(vf){ + vf_instance_t* next=vf->next; + vf_uninit_filter(vf); + vf=next; + } +} Index: vf.h =================================================================== RCS file: /cvsroot/mplayer/main/libmpcodecs/vf.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- vf.h 17 Apr 2002 19:05:14 -0000 1.8 +++ vf.h 20 Apr 2002 22:24:19 -0000 1.9 @@ -74,3 +74,6 @@ vf_instance_t* append_filters(vf_instance_t* last); +void vf_uninit_filter(vf_instance_t* vf); +void vf_uninit_filter_chain(vf_instance_t* vf); +
participants (1)
-
Arpi of Ize