summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
authornicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-12-31 11:05:26 +0000
committernicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-12-31 11:05:26 +0000
commitb5898c2aa69ce52f779f54488ecac90dd58b1f53 (patch)
tree971ff66835751023bdf504f991904cc755f45ddc /libmpdemux/demuxer.c
parent9eb302dee8a9d2ec1da03d6d1b100958e4ebe827 (diff)
downloadmpv-b5898c2aa69ce52f779f54488ecac90dd58b1f53.tar.bz2
mpv-b5898c2aa69ce52f779f54488ecac90dd58b1f53.tar.xz
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
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c6
1 files changed, 4 insertions, 2 deletions
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