--- MPlayer-20030203/libmpcodecs/ad_faad.c 2002-10-07 12:18:46.000000000 +0200 +++ MPlayer-faad2-patch/libmpcodecs/ad_faad.c 2003-02-03 22:54:40.000000000 +0100 @@ -86,7 +86,7 @@ /* init the codec */ faac_init = faacDecInit(faac_hdec, sh->a_in_buffer, - &faac_samplerate, &faac_channels); + sh->a_in_buffer_len, &faac_samplerate, &faac_channels); sh->a_in_buffer_len -= (faac_init > 0)?faac_init:0; // how many bytes init consumed // XXX FIXME: shouldn't we memcpy() here in a_in_buffer ?? --A'rpi @@ -164,7 +164,7 @@ if(!sh->codecdata_len){ // raw aac stream: do { - faac_sample_buffer = faacDecDecode(faac_hdec, &faac_finfo, sh->a_in_buffer+j); + faac_sample_buffer = faacDecDecode(faac_hdec, &faac_finfo, sh->a_in_buffer+j, sh->a_in_buffer_len); /* update buffer index after faacDecDecode */ if(faac_finfo.bytesconsumed >= sh->a_in_buffer_len) { sh->a_in_buffer_len=0; @@ -184,7 +184,7 @@ unsigned char* bufptr=NULL; int buflen=ds_get_packet(sh->ds, &bufptr); if(buflen<=0) break; - faac_sample_buffer = faacDecDecode(faac_hdec, &faac_finfo, bufptr); + faac_sample_buffer = faacDecDecode(faac_hdec, &faac_finfo, bufptr, buflen); // printf("FAAC decoded %d of %d (err: %d) \n",faac_finfo.bytesconsumed,buflen,faac_finfo.error); }