# HG changeset patch # User arpi # Date 998524098 0 # Node ID b7dae998505c528dfb1fee4a72a7ab30de64f302 # Parent cbedcfab877b44e03087d2a6fde4cf793fab9d02 free stream/demuxer. continue playback with next file if error found diff -r cbedcfab877b -r b7dae998505c mplayer.c --- a/mplayer.c Wed Aug 22 21:38:35 2001 +0000 +++ b/mplayer.c Wed Aug 22 23:48:18 2001 +0000 @@ -587,7 +587,8 @@ curr_filename=0; play_next_file: filename=(num_filenames>0)?filenames[curr_filename]:NULL; - + demuxer=NULL; stream=NULL; + #ifdef USE_LIBVO2 current_module="vo2_new"; video_out=vo2_new(video_driver); @@ -656,7 +657,7 @@ current_module="open_stream"; stream=open_stream(filename,vcd_track,&file_format); - if(!stream) exit_player(MSGTR_Exit_error); // error... + if(!stream) goto goto_next_file;// exit_player(MSGTR_Exit_error); // error... stream->start_pos+=seek_to_byte; use_stdin=filename && (!strcmp(filename,"-")); @@ -687,7 +688,7 @@ current_module="demux_open"; demuxer=demux_open(stream,file_format,audio_id,video_id,dvdsub_id); -if(!demuxer) exit_player(MSGTR_Exit_error); // ERROR +if(!demuxer) goto goto_next_file; // exit_player(MSGTR_Exit_error); // ERROR file_format=demuxer->file_format; @@ -739,7 +740,7 @@ if(sh_video){ - if(!video_read_properties(sh_video)) exit_player(MSGTR_Exit_error); // couldn't read header? + if(!video_read_properties(sh_video)) goto goto_next_file; // exit_player(MSGTR_Exit_error); // couldn't read header? mp_msg(MSGT_CPLAYER,MSGL_INFO,"[V] filefmt:%d fourcc:0x%X size:%dx%d fps:%5.2f ftime:=%6.4f\n", file_format,sh_video->format, sh_video->disp_w,sh_video->disp_h, @@ -748,7 +749,7 @@ if(!sh_video->fps && !force_fps){ mp_msg(MSGT_CPLAYER,MSGL_FATAL,MSGTR_FPSnotspecified); - exit_player(MSGTR_Exit_error); + goto goto_next_file; // exit_player(MSGTR_Exit_error); } } @@ -757,7 +758,7 @@ if(!sh_video){ mp_msg(MSGT_CPLAYER,MSGL_FATAL,MSGTR_NoVideoStream); - exit_player(MSGTR_Exit_error); + goto goto_next_file; // exit_player(MSGTR_Exit_error); } //================== Init AUDIO (codec) ========================== @@ -819,7 +820,7 @@ } mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_CantFindVideoCodec,sh_video->format); mp_msg(MSGT_CPLAYER,MSGL_HINT, MSGTR_TryUpgradeCodecsConfOrRTFM,get_path("codecs.conf")); - exit_player(MSGTR_Exit_error); + goto goto_next_file; // exit_player(MSGTR_Exit_error); } // is next line needed anymore? - atmos :: if(!allow_dshow && sh_video->codec->driver==VFM_DSHOW) continue; // skip DShow @@ -844,7 +845,7 @@ } if(i>=CODECS_MAX_OUTFMT){ mp_msg(MSGT_CPLAYER,MSGL_FATAL,MSGTR_VOincompCodec); - exit_player(MSGTR_Exit_error); + goto goto_next_file; // exit_player(MSGTR_Exit_error); } sh_video->outfmtidx=i; @@ -860,7 +861,7 @@ if(!init_video(sh_video)){ mp_msg(MSGT_CPLAYER,MSGL_FATAL,MSGTR_CouldntInitVideoCodec); - exit_player(MSGTR_Exit_error); + goto goto_next_file; // exit_player(MSGTR_Exit_error); } if(auto_quality>0){ @@ -967,18 +968,15 @@ if(!vo2_start(video_out, sh_video->disp_w,sh_video->disp_h,out_fmt,0, fullscreen|(vidmode<<1)|(softzoom<<2)|(flip<<3) )){ - mp_msg(MSGT_CPLAYER,MSGL_FATAL,MSGTR_CannotInitVO ); - exit_player(MSGTR_Exit_error); - } #else if(video_out->init(sh_video->disp_w,sh_video->disp_h, screen_size_x,screen_size_y, fullscreen|(vidmode<<1)|(softzoom<<2)|(flip<<3), title,out_fmt)){ +#endif mp_msg(MSGT_CPLAYER,MSGL_FATAL,MSGTR_CannotInitVO); - exit_player(MSGTR_Exit_error); + goto goto_next_file; // exit_player(MSGTR_Exit_error); } -#endif mp_msg(MSGT_CPLAYER,MSGL_V,"INFO: Video OUT driver init OK!\n"); fflush(stdout); @@ -1777,8 +1775,8 @@ } -++curr_filename; -if(curr_filenameuninit(); #endif + + current_module="uninit_ao"; + if(audio_out) audio_out->uninit(); +// if(encode_name) avi_fixate(); +} + +goto_next_file: // don't jump here after ao/vo/getch initialization! + ++curr_filename; +if(curr_filenameuninit(); audio_out=NULL; -// if(encode_name) avi_fixate(); - goto play_next_file; + goto play_next_file; } exit_player(MSGTR_Exit_eof);