summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
authoraurel <aurel@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-10-23 00:05:38 +0000
committeraurel <aurel@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-10-23 00:05:38 +0000
commit6943b13bb531dc01d51fc038adbf13dc8cb6c432 (patch)
tree61ef421e757fe8593139ec17cce971467ef80caa /libmpdemux/demuxer.c
parent75bf44f497d81a5288fe47e4c59bc1386a75a9be (diff)
downloadmpv-6943b13bb531dc01d51fc038adbf13dc8cb6c432.tar.bz2
mpv-6943b13bb531dc01d51fc038adbf13dc8cb6c432.tar.xz
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
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c6
1 files changed, 5 insertions, 1 deletions
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