comparison mencoder.c @ 25955:eff9e1b25743

-chapter is now handled uniformly calling demuxer_seek_chapter() instead of letting individual demuxers and stream readers do their nasty job
author nicodvb
date Mon, 11 Feb 2008 22:03:34 +0000
parents afaf3ec733d3
children afa125da85cf
comparison
equal deleted inserted replaced
25954:0b0d71ca6a92 25955:eff9e1b25743
600 demuxer=demux_open(stream,file_format,audio_id,video_id,dvdsub_id,filename); 600 demuxer=demux_open(stream,file_format,audio_id,video_id,dvdsub_id,filename);
601 if(!demuxer){ 601 if(!demuxer){
602 mp_msg(MSGT_DEMUXER, MSGL_FATAL, MSGTR_FormatNotRecognized); 602 mp_msg(MSGT_DEMUXER, MSGL_FATAL, MSGTR_FormatNotRecognized);
603 mp_msg(MSGT_DEMUXER, MSGL_FATAL, MSGTR_CannotOpenDemuxer); 603 mp_msg(MSGT_DEMUXER, MSGL_FATAL, MSGTR_CannotOpenDemuxer);
604 mencoder_exit(1,NULL); 604 mencoder_exit(1,NULL);
605 }
606
607 if(dvd_chapter>1) {
608 float pts;
609 demuxer_seek_chapter(demuxer, dvd_chapter-1, 1, &pts, NULL, NULL);
605 } 610 }
606 611
607 d_audio=demuxer2 ? demuxer2->audio : demuxer->audio; 612 d_audio=demuxer2 ? demuxer2->audio : demuxer->audio;
608 d_video=demuxer->video; 613 d_video=demuxer->video;
609 d_dvdsub=demuxer->sub; 614 d_dvdsub=demuxer->sub;
1096 1101
1097 if(play_n_frames>=0){ 1102 if(play_n_frames>=0){
1098 --play_n_frames; 1103 --play_n_frames;
1099 if(play_n_frames<0) break; 1104 if(play_n_frames<0) break;
1100 } 1105 }
1106 if(dvd_last_chapter>0) {
1107 int cur_chapter = demuxer_get_current_chapter(demuxer);
1108 if(cur_chapter!=-1 && cur_chapter+1>dvd_last_chapter)
1109 break;
1110 }
1101 1111
1102 goto_redo_edl: 1112 goto_redo_edl:
1103 if (next_edl_record && sh_video && sh_video->pts >= next_edl_record->start_sec) { 1113 if (next_edl_record && sh_video && sh_video->pts >= next_edl_record->start_sec) {
1104 if (next_edl_record->action == EDL_SKIP && edl_seeking) { 1114 if (next_edl_record->action == EDL_SKIP && edl_seeking) {
1105 float last_pos = d_video->pts; 1115 float last_pos = d_video->pts;