summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_audio.c
diff options
context:
space:
mode:
authorrfelker <rfelker@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-03-04 01:53:55 +0000
committerrfelker <rfelker@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-03-04 01:53:55 +0000
commit47c016bd180cccc28c0bcc886ae9a0dd0c345718 (patch)
tree8ca2653017cfe65d3e7efc1cd58cb6b769b87421 /libmpdemux/demux_audio.c
parent56bf07f685546641e9217443cef54b714f35da5c (diff)
downloadmpv-47c016bd180cccc28c0bcc886ae9a0dd0c345718.tar.bz2
mpv-47c016bd180cccc28c0bcc886ae9a0dd0c345718.tar.xz
100l to reimar.. sh_audio->samplerate and sh_audio->i_bps are not the same
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14911 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_audio.c')
-rw-r--r--libmpdemux/demux_audio.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/libmpdemux/demux_audio.c b/libmpdemux/demux_audio.c
index 1f0d7a32ef..c36525bdfe 100644
--- a/libmpdemux/demux_audio.c
+++ b/libmpdemux/demux_audio.c
@@ -397,6 +397,7 @@ int demux_audio_fill_buffer(demux_stream_t *ds) {
dp = new_demux_packet(l);
memcpy(dp->buffer,hdr,4);
stream_read(s,dp->buffer + 4,l-4);
+ priv->last_pts = priv->last_pts < 0 ? 0 : priv->last_pts + 1152/(float)sh_audio->samplerate; // FIXME: 1152->576 if MPEG-2
break;
}
} break;
@@ -404,12 +405,14 @@ int demux_audio_fill_buffer(demux_stream_t *ds) {
l = sh_audio->wf->nAvgBytesPerSec;
dp = new_demux_packet(l);
l = stream_read(s,dp->buffer,l);
+ priv->last_pts = priv->last_pts < 0 ? 0 : priv->last_pts + l/(float)sh_audio->i_bps;
break;
}
case fLaC: {
l = 65535;
dp = new_demux_packet(l);
l = stream_read(s,dp->buffer,l);
+ priv->last_pts = priv->last_pts < 0 ? 0 : priv->last_pts + l/(float)sh_audio->i_bps;
break;
}
default:
@@ -418,10 +421,6 @@ int demux_audio_fill_buffer(demux_stream_t *ds) {
}
resize_demux_packet(dp, l);
- if (priv->last_pts < 0)
- priv->last_pts = 0;
- else
- priv->last_pts += l/(float)sh_audio->i_bps;
ds->pts = priv->last_pts - (ds_tell_pts(demux->audio) -
sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps;
ds_add_packet(ds, dp);