[Mplayer-cvslog] CVS: main mplayer.c,1.235,1.236 dec_video.c,1.29,1.30
Arpi of Ize
arpi at mplayer.dev.hu
Thu Aug 23 14:25:05 CEST 2001
Update of /cvsroot/mplayer/main
In directory mplayer:/var/tmp.root/cvs-serv4865
Modified Files:
mplayer.c dec_video.c
Log Message:
dec_video uninit
Index: mplayer.c
===================================================================
RCS file: /cvsroot/mplayer/main/mplayer.c,v
retrieving revision 1.235
retrieving revision 1.236
diff -u -r1.235 -r1.236
--- mplayer.c 23 Aug 2001 11:42:21 -0000 1.235
+++ mplayer.c 23 Aug 2001 12:24:59 -0000 1.236
@@ -594,7 +594,12 @@
}
#endif
- demuxer=NULL; stream=NULL;
+ stream=NULL;
+ demuxer=NULL;
+ d_audio=NULL;
+ d_video=NULL;
+ sh_audio=NULL;
+ sh_video=NULL;
#ifdef USE_LIBVO2
current_module="vo2_new";
@@ -1808,6 +1813,9 @@
goto_next_file: // don't jump here after ao/vo/getch initialization!
++curr_filename;
if(curr_filename<num_filenames){
+
+ current_module="uninit_vcodec";
+ if(sh_video) uninit_video(sh_video);
current_module="free_demuxer";
if(demuxer) free_demuxer(demuxer);
Index: dec_video.c
===================================================================
RCS file: /cvsroot/mplayer/main/dec_video.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- dec_video.c 23 Aug 2001 11:54:55 -0000 1.29
+++ dec_video.c 23 Aug 2001 12:24:59 -0000 1.30
@@ -140,6 +140,26 @@
return 0;
}
+int uninit_video(sh_video_t *sh_video){
+ if(!sh_video->inited) return;
+ printf("uninit video: %d \n",sh_video->codec->driver);
+ switch(sh_video->codec->driver){
+ case VFM_FFMPEG:
+ if (avcodec_close(&lavc_context) < 0)
+ mp_msg(MSGT_DECVIDEO,MSGL_ERR, "could not close codec\n");
+ break;
+
+ case VFM_MPEG:
+ mpeg2_free_image_buffers (picture);
+ break;
+ }
+ if(sh_video->our_out_buffer){
+ free(sh_video->our_out_buffer);
+ sh_video->our_out_buffer=NULL;
+ }
+ sh_video->inited=0;
+}
+
int init_video(sh_video_t *sh_video){
unsigned int out_fmt=sh_video->codec->outfmt[sh_video->outfmtidx];
@@ -280,9 +300,13 @@
mp_msg(MSGT_DECVIDEO,MSGL_ERR,"MPlayer was compiled WITHOUT libavcodec support!\n");
return 0;
#else
+ static int avcodec_inited=0;
mp_msg(MSGT_DECVIDEO,MSGL_V,"FFmpeg's libavcodec video codec\n");
- avcodec_init();
- avcodec_register_all();
+ if(!avcodec_inited){
+ avcodec_init();
+ avcodec_register_all();
+ avcodec_inited=1;
+ }
lavc_codec = (AVCodec *)avcodec_find_decoder_by_name(sh_video->codec->dll);
if(!lavc_codec){
mp_msg(MSGT_DECVIDEO,MSGL_ERR,"Can't find codec '%s' in libavcodec...\n",sh_video->codec->dll);
@@ -322,7 +346,7 @@
break;
}
}
-
+ sh_video->inited=1;
return 1;
}
More information about the MPlayer-cvslog
mailing list