From b5898c2aa69ce52f779f54488ecac90dd58b1f53 Mon Sep 17 00:00:00 2001 From: nicodvb Date: Sun, 31 Dec 2006 11:05:26 +0000 Subject: added stream_pts to demuxer_t and demux_packet_t to hold the time value reported by the stream layer git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21796 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demuxer.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'libmpdemux/demuxer.c') diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index 1b97879551..b66e1aa62e 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -184,6 +184,7 @@ demuxer_t* new_demuxer(stream_t *stream,int type,int a_id,int v_id,int s_id,char demuxer_t *d=malloc(sizeof(demuxer_t)); memset(d,0,sizeof(demuxer_t)); d->stream=stream; + d->stream_pts = MP_NOPTS_VALUE; d->movi_start=stream->start_pos; d->movi_end=stream->end_pos; d->seekable=1; @@ -381,6 +382,7 @@ int ds_fill_buffer(demux_stream_t *ds){ ds->pts_bytes=0; } ds->pts_bytes+=p->len; // !!! + if(p->stream_pts != MP_NOPTS_VALUE) demux->stream_pts=p->stream_pts; ds->flags=p->flags; // unlink packet: ds->bytes-=p->len; @@ -933,9 +935,9 @@ if(!demuxer->seekable){ if(flags & 1) // absolute seek pts = 0.0f; else { - if(stream_control(demuxer->stream, STREAM_CTRL_GET_CURRENT_TIME, &tmp) == STREAM_UNSUPORTED) + if(demuxer->stream_pts == MP_NOPTS_VALUE) goto dmx_seek; - pts = tmp; + pts = demuxer->stream_pts; } if(flags & 2) { // percent seek -- cgit v1.2.3