# HG changeset patch # User uau # Date 1162941415 0 # Node ID 0617c67ad68f5fa53a7f138c8c220b07723fd05f # Parent 3dbb3fa4e5fcb3a4c76a4f6f1e9b971b0300cfe6 Fix code that cuts audio data if the filters produce too much. It incorrectly used the channel count and sample size values from the decoder even though the filters can change those. diff -r 3dbb3fa4e5fc -r 0617c67ad68f libmpcodecs/dec_audio.c --- a/libmpcodecs/dec_audio.c Tue Nov 07 23:06:42 2006 +0000 +++ b/libmpcodecs/dec_audio.c Tue Nov 07 23:16:55 2006 +0000 @@ -415,7 +415,8 @@ // copy filter==>out: if(maxlen < pafd->len) { - maxlen -= maxlen % (sh_audio->channels * sh_audio->samplesize); + af_stream_t *afs = sh_audio->afilter; + maxlen -= maxlen % (afs->output.nch * afs->output.bps); mp_msg(MSGT_DECAUDIO,MSGL_WARN,"%i bytes of audio data lost due to buffer overflow, len = %i\n", pafd->len - maxlen,pafd->len); } else