From 6943b13bb531dc01d51fc038adbf13dc8cb6c432 Mon Sep 17 00:00:00 2001 From: aurel Date: Sat, 23 Oct 2004 00:05:38 +0000 Subject: 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 > git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13739 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demuxer.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'libmpdemux/demuxer.c') diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index 4c2f60c6bd..17377dffb8 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -134,6 +134,7 @@ extern void demux_close_nsv(demuxer_t* demuxer); extern void demux_close_nuv(demuxer_t* demuxer); extern void demux_close_audio(demuxer_t* demuxer); extern void demux_close_ogg(demuxer_t* demuxer); +extern void demux_close_mpg(demuxer_t* demuxer); extern void demux_close_rtp(demuxer_t* demuxer); extern void demux_close_demuxers(demuxer_t* demuxer); extern void demux_close_avi(demuxer_t *demuxer); @@ -232,6 +233,8 @@ void free_demuxer(demuxer_t *demuxer){ case DEMUXER_TYPE_MPEG_TS: case DEMUXER_TYPE_MPEG4_IN_TS: demux_close_ts(demuxer); break; + case DEMUXER_TYPE_MPEG_PS: + demux_close_mpg(demuxer); break; case DEMUXER_TYPE_REALAUDIO: demux_close_ra(demuxer); break; #ifdef USE_LIBAVFORMAT @@ -616,6 +619,7 @@ extern void demux_open_nsv(demuxer_t *demuxer); extern void demux_open_nuv(demuxer_t *demuxer); extern int demux_audio_open(demuxer_t* demuxer); extern int demux_ogg_open(demuxer_t* demuxer); +extern int demux_mpg_open(demuxer_t* demuxer); extern int demux_rawaudio_open(demuxer_t* demuxer); extern int demux_rawvideo_open(demuxer_t* demuxer); extern int smjpeg_check_file(demuxer_t *demuxer); @@ -990,7 +994,7 @@ if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_MPEG_PS){ num_h264_pps=0; num_mp3audio_packets=0; - if(ds_fill_buffer(demuxer->video)){ + if(demux_mpg_open(demuxer)){ if(!pes) mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_Detected_XXX_FileFormat,"MPEG-PES"); else -- cgit v1.2.3