--- main/libmpdemux/demux_audio.c 2005-04-18 16:51:34.000000000 -0400 +++ main/libmpdemux/demux_audio.c 2005-07-27 20:03:00.000000000 -0400 @@ -415,7 +415,15 @@ 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; + switch (sh_audio->i_bps) + { + case 0: + priv->last_pts = 0; + break; + default: + priv->last_pts = priv->last_pts < 0 ? 0 : priv->last_pts + l/(float)sh_audio->i_bps; + break; + } break; } default: @@ -424,8 +432,16 @@ } 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; + switch (sh_audio->i_bps) + { + case 0: + ds->pts = 0; + break; + default: + ds->pts = priv->last_pts - (ds_tell_pts(demux->audio) - + sh_audio->a_in_buffer_len)/(float)sh_audio->i_bps; + break; + } ds_add_packet(ds, dp); return 1; }