comparison libmpdemux/demuxer.c @ 13738:39004f891def

seeking based on the largest timestamp in an mpeg stream It is often more accurate than the current seeking and it has the additional benefit of giving the (almost) precise total time of the movie. patch by Michael Behrisch < behrisch at informatik.hu-berlin.de >
author aurel
date Sat, 23 Oct 2004 00:05:38 +0000
parents f1f20b06aa4a
children e632b43f0598
comparison
equal deleted inserted replaced
13737:dc0536401cca 13738:39004f891def
132 extern void demux_close_fli(demuxer_t* demuxer); 132 extern void demux_close_fli(demuxer_t* demuxer);
133 extern void demux_close_nsv(demuxer_t* demuxer); 133 extern void demux_close_nsv(demuxer_t* demuxer);
134 extern void demux_close_nuv(demuxer_t* demuxer); 134 extern void demux_close_nuv(demuxer_t* demuxer);
135 extern void demux_close_audio(demuxer_t* demuxer); 135 extern void demux_close_audio(demuxer_t* demuxer);
136 extern void demux_close_ogg(demuxer_t* demuxer); 136 extern void demux_close_ogg(demuxer_t* demuxer);
137 extern void demux_close_mpg(demuxer_t* demuxer);
137 extern void demux_close_rtp(demuxer_t* demuxer); 138 extern void demux_close_rtp(demuxer_t* demuxer);
138 extern void demux_close_demuxers(demuxer_t* demuxer); 139 extern void demux_close_demuxers(demuxer_t* demuxer);
139 extern void demux_close_avi(demuxer_t *demuxer); 140 extern void demux_close_avi(demuxer_t *demuxer);
140 extern void demux_close_rawdv(demuxer_t* demuxer); 141 extern void demux_close_rawdv(demuxer_t* demuxer);
141 extern void demux_close_pva(demuxer_t* demuxer); 142 extern void demux_close_pva(demuxer_t* demuxer);
230 case DEMUXER_TYPE_LMLM4: 231 case DEMUXER_TYPE_LMLM4:
231 demux_close_lmlm4(demuxer); break; 232 demux_close_lmlm4(demuxer); break;
232 case DEMUXER_TYPE_MPEG_TS: 233 case DEMUXER_TYPE_MPEG_TS:
233 case DEMUXER_TYPE_MPEG4_IN_TS: 234 case DEMUXER_TYPE_MPEG4_IN_TS:
234 demux_close_ts(demuxer); break; 235 demux_close_ts(demuxer); break;
236 case DEMUXER_TYPE_MPEG_PS:
237 demux_close_mpg(demuxer); break;
235 case DEMUXER_TYPE_REALAUDIO: 238 case DEMUXER_TYPE_REALAUDIO:
236 demux_close_ra(demuxer); break; 239 demux_close_ra(demuxer); break;
237 #ifdef USE_LIBAVFORMAT 240 #ifdef USE_LIBAVFORMAT
238 case DEMUXER_TYPE_LAVF: 241 case DEMUXER_TYPE_LAVF:
239 demux_close_lavf(demuxer); break; 242 demux_close_lavf(demuxer); break;
614 extern int nuv_check_file(demuxer_t *demuxer); 617 extern int nuv_check_file(demuxer_t *demuxer);
615 extern void demux_open_nsv(demuxer_t *demuxer); 618 extern void demux_open_nsv(demuxer_t *demuxer);
616 extern void demux_open_nuv(demuxer_t *demuxer); 619 extern void demux_open_nuv(demuxer_t *demuxer);
617 extern int demux_audio_open(demuxer_t* demuxer); 620 extern int demux_audio_open(demuxer_t* demuxer);
618 extern int demux_ogg_open(demuxer_t* demuxer); 621 extern int demux_ogg_open(demuxer_t* demuxer);
622 extern int demux_mpg_open(demuxer_t* demuxer);
619 extern int demux_rawaudio_open(demuxer_t* demuxer); 623 extern int demux_rawaudio_open(demuxer_t* demuxer);
620 extern int demux_rawvideo_open(demuxer_t* demuxer); 624 extern int demux_rawvideo_open(demuxer_t* demuxer);
621 extern int smjpeg_check_file(demuxer_t *demuxer); 625 extern int smjpeg_check_file(demuxer_t *demuxer);
622 extern int demux_open_smjpeg(demuxer_t* demuxer); 626 extern int demux_open_smjpeg(demuxer_t* demuxer);
623 extern int bmp_check_file(demuxer_t *demuxer); 627 extern int bmp_check_file(demuxer_t *demuxer);
988 num_h264_idr=0; //IDR Slice 992 num_h264_idr=0; //IDR Slice
989 num_h264_sps=0; 993 num_h264_sps=0;
990 num_h264_pps=0; 994 num_h264_pps=0;
991 num_mp3audio_packets=0; 995 num_mp3audio_packets=0;
992 996
993 if(ds_fill_buffer(demuxer->video)){ 997 if(demux_mpg_open(demuxer)){
994 if(!pes) 998 if(!pes)
995 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_Detected_XXX_FileFormat,"MPEG-PES"); 999 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_Detected_XXX_FileFormat,"MPEG-PES");
996 else 1000 else
997 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_Detected_XXX_FileFormat,"MPEG-PS"); 1001 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_Detected_XXX_FileFormat,"MPEG-PS");
998 file_format=DEMUXER_TYPE_MPEG_PS; 1002 file_format=DEMUXER_TYPE_MPEG_PS;