static void wv_reset_saved_context(WavpackFrameContext *s)
{
s->pos = 0;
+ s->samples_left = 0;
s->sc.crc = s->extra_sc.crc = 0xFFFFFFFF;
}
s->samples_left -= count;
if(!s->samples_left){
+ wv_reset_saved_context(s);
if(crc != s->CRC){
av_log(s->avctx, AV_LOG_ERROR, "CRC error\n");
return -1;
av_log(s->avctx, AV_LOG_ERROR, "Extra bits CRC error\n");
return -1;
}
- wv_reset_saved_context(s);
}else{
s->pos = pos;
s->sc.crc = crc;
s->samples_left -= count;
if(!s->samples_left){
+ wv_reset_saved_context(s);
if(crc != s->CRC){
av_log(s->avctx, AV_LOG_ERROR, "CRC error\n");
return -1;
av_log(s->avctx, AV_LOG_ERROR, "Extra bits CRC error\n");
return -1;
}
- wv_reset_saved_context(s);
}else{
s->pos = pos;
s->sc.crc = crc;
int i;
for (i = 0; i < s->fdec_num; i++)
- s->fdec[i]->samples_left = 0;
+ wv_reset_saved_context(s->fdec[i]);
}
AVCodec ff_wavpack_decoder = {