summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authoruau <uau@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-06-14 19:48:54 +0000
committeruau <uau@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-06-14 19:48:54 +0000
commit67233233030d593dd4939f2eb167c0016c3e0b4f (patch)
tree5aecf0377d69b69dc7ab506b254c073eed9f2d66 /libmpdemux
parent2727b16cbb4168893b2e73a0090ee8f083002eba (diff)
downloadmpv-67233233030d593dd4939f2eb167c0016c3e0b4f.tar.bz2
mpv-67233233030d593dd4939f2eb167c0016c3e0b4f.tar.xz
Clean up audio pts handling, make audio pts tracking in the audio-only
case work the same as with video. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18713 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_aac.c1
-rw-r--r--libmpdemux/demux_asf.c4
-rw-r--r--libmpdemux/demux_audio.c7
-rw-r--r--libmpdemux/demux_demuxers.c1
-rw-r--r--libmpdemux/demux_mov.c2
-rw-r--r--libmpdemux/demux_mpc.c5
-rw-r--r--libmpdemux/demux_ogg.c2
-rw-r--r--libmpdemux/demux_rawaudio.c1
-rw-r--r--libmpdemux/demux_xmms.c3
9 files changed, 4 insertions, 22 deletions
diff --git a/libmpdemux/demux_aac.c b/libmpdemux/demux_aac.c
index 9035c9f9b2..21968d128a 100644
--- a/libmpdemux/demux_aac.c
+++ b/libmpdemux/demux_aac.c
@@ -248,7 +248,6 @@ static void demux_aac_seek(demuxer_t *demuxer, float rel_seek_secs, float audio_
nf -= num;
}
}
- sh_audio->delay = priv->last_pts - (ds_tell_pts(demuxer->audio)-sh_audio->a_in_buffer_len)/(float)priv->bitrate;
}
diff --git a/libmpdemux/demux_asf.c b/libmpdemux/demux_asf.c
index 24bdec5982..85a0176b47 100644
--- a/libmpdemux/demux_asf.c
+++ b/libmpdemux/demux_asf.c
@@ -493,9 +493,7 @@ static void demux_seek_asf(demuxer_t *demuxer,float rel_seek_secs,float audio_de
ds_fill_buffer(d_audio);
}
- if (d_video->id < 0)
- sh_audio->delay = d_audio->pts;
- else
+ if (d_video->id >= 0)
while(1){
if(sh_audio && !d_audio->eof){
float a_pts=d_audio->pts;
diff --git a/libmpdemux/demux_audio.c b/libmpdemux/demux_audio.c
index c1f2cecfbd..3aef23378a 100644
--- a/libmpdemux/demux_audio.c
+++ b/libmpdemux/demux_audio.c
@@ -620,8 +620,7 @@ static int demux_audio_fill_buffer(demuxer_t *demuxer, demux_stream_t *ds) {
}
resize_demux_packet(dp, l);
- ds->pts = priv->last_pts - (ds_tell_pts(demux->audio) -
- sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps;
+ dp->pts = priv->last_pts;
ds_add_packet(ds, dp);
return 1;
}
@@ -667,7 +666,6 @@ static void demux_audio_seek(demuxer_t *demuxer,float rel_seek_secs,float audio_
}
if(len > 0)
high_res_mp3_seek(demuxer,len);
- sh_audio->delay = priv->last_pts - (ds_tell_pts(demuxer->audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps;
return;
}
@@ -679,13 +677,10 @@ static void demux_audio_seek(demuxer_t *demuxer,float rel_seek_secs,float audio_
if(demuxer->movi_end && pos >= demuxer->movi_end) {
pos = demuxer->movi_end;
- //sh_audio->delay = (stream_tell(s) - demuxer->movi_start)/(float)sh_audio->i_bps;
- //return;
} else if(pos < demuxer->movi_start)
pos = demuxer->movi_start;
priv->last_pts = (pos-demuxer->movi_start)/(float)sh_audio->i_bps;
- sh_audio->delay = priv->last_pts - (ds_tell_pts(demuxer->audio)-sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps;
switch(priv->frmt) {
case WAV:
diff --git a/libmpdemux/demux_demuxers.c b/libmpdemux/demux_demuxers.c
index d38c5290d7..8d1db1d503 100644
--- a/libmpdemux/demux_demuxers.c
+++ b/libmpdemux/demux_demuxers.c
@@ -78,7 +78,6 @@ static void demux_demuxers_seek(demuxer_t *demuxer,float rel_seek_secs,float aud
// In case the demuxer don't set pts
if(!demuxer->audio->pts)
demuxer->audio->pts = pos-((ds_tell_pts(demuxer->audio)-sh->a_in_buffer_len)/(float)sh->i_bps);
- sh->delay = 0;
}
if(priv->sd != priv->vd)
diff --git a/libmpdemux/demux_mov.c b/libmpdemux/demux_mov.c
index 6559bb777e..e80ce03090 100644
--- a/libmpdemux/demux_mov.c
+++ b/libmpdemux/demux_mov.c
@@ -2123,8 +2123,6 @@ static void demux_seek_mov(demuxer_t *demuxer,float pts,float audio_delay,int fl
//if(!(flags&1)) pts+=ds->pts;
ds->pts=mov_seek_track(trak,pts,flags);
if (ds->pts < 0) ds->eof = 1;
- if (demuxer->video->id < 0)
- ((sh_audio_t*)ds->sh)->delay = ds->pts;
}
}
diff --git a/libmpdemux/demux_mpc.c b/libmpdemux/demux_mpc.c
index cb4eda3604..99b61677f3 100644
--- a/libmpdemux/demux_mpc.c
+++ b/libmpdemux/demux_mpc.c
@@ -145,8 +145,7 @@ static int demux_mpc_fill_buffer(demuxer_t *demux, demux_stream_t *ds) {
priv->last_pts = 0;
else
priv->last_pts += priv->pts_per_packet;
- ds->pts = priv->last_pts - (ds_tell_pts(demux->audio) -
- sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps;
+ dp->pts = priv->last_pts;
ds_add_packet(ds, dp);
return 1;
}
@@ -177,8 +176,6 @@ static void demux_mpc_seek(demuxer_t *demuxer,float rel_seek_secs,float audio_de
if (s->eof) break;
}
if (!sh_audio) return;
- sh_audio->delay = priv->last_pts - (ds_tell_pts(demuxer->audio) -
- sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps;
}
static void demux_close_mpc(demuxer_t* demuxer) {
diff --git a/libmpdemux/demux_ogg.c b/libmpdemux/demux_ogg.c
index 8c4046d3fd..e7d662e56e 100644
--- a/libmpdemux/demux_ogg.c
+++ b/libmpdemux/demux_ogg.c
@@ -1599,8 +1599,6 @@ static void demux_ogg_seek(demuxer_t *demuxer,float rel_seek_secs,float audio_de
vo_osd_changed(OSDTYPE_SUBTITLE);
clear_sub = -1;
demux_ogg_add_packet(ds,os,ds->id,&op);
- if (demuxer->video->id < 0)
- sh_audio->delay = pts;
return;
}
}
diff --git a/libmpdemux/demux_rawaudio.c b/libmpdemux/demux_rawaudio.c
index a816de6654..d62cc99007 100644
--- a/libmpdemux/demux_rawaudio.c
+++ b/libmpdemux/demux_rawaudio.c
@@ -92,7 +92,6 @@ static void demux_rawaudio_seek(demuxer_t *demuxer,float rel_seek_secs,float aud
pos -= (pos % (sh_audio->channels * sh_audio->samplesize) );
stream_seek(s,pos);
- sh_audio->delay= (pos-ds_tell_pts(demuxer->audio)-sh_audio->a_in_buffer_len) / (float)(sh_audio->wf->nAvgBytesPerSec);
// printf("demux_rawaudio: streamtell=%d\n",(int)stream_tell(demuxer->stream));
}
diff --git a/libmpdemux/demux_xmms.c b/libmpdemux/demux_xmms.c
index 6066203793..d2a8df9a69 100644
--- a/libmpdemux/demux_xmms.c
+++ b/libmpdemux/demux_xmms.c
@@ -287,7 +287,7 @@ static int demux_xmms_fill_buffer(demuxer_t* demuxer, demux_stream_t *ds) {
pthread_mutex_lock(&xmms_mutex);
dp = new_demux_packet(XMMS_PACKETSIZE/2);
- ds->pts = priv->spos / sh_audio->wf->nAvgBytesPerSec;
+ dp->pts = priv->spos / sh_audio->wf->nAvgBytesPerSec;
ds->pos = priv->spos;
memcpy(dp->buffer,xmms_audiobuffer,XMMS_PACKETSIZE/2);
@@ -319,7 +319,6 @@ static void demux_xmms_seek(demuxer_t *demuxer,float rel_seek_secs,float audio_d
priv->ip->seek((pos<0)?0:pos);
priv->spos=pos * sh_audio->wf->nAvgBytesPerSec;
- sh_audio->delay=pos; //priv->spos / sh_audio->wf->nAvgBytesPerSec;
}
static void demux_close_xmms(demuxer_t* demuxer) {