--- main/libmpdemux/demux_audio.c 2005-07-27 22:11:53.000000000 -0400 +++ main/libmpdemux/demux_audio.c 2005-07-27 22:15:19.000000000 -0400 @@ -415,7 +415,8 @@ 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; + if (sh_audio->i_bps) {priv->last_pts = priv->last_pts < 0 ? 0 : priv->last_pts + l/(float)sh_audio->i_bps;} + else priv->last_pts = 0; break; } default: @@ -424,8 +425,9 @@ } 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; + if (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;} + else priv->last_pts = 0; ds_add_packet(ds, dp); return 1; }