| CODENOTIFIER | HelpYou are not signed inSign in |
Project: OGG Vorbis
Revision: 15110
Author: xiphmont
Date: 11 Jul 2008 19:29:15
Changes:Fix attempt for 1399; if it doesn't completely correct the
multichannel corruption problem (encoder only), then it is a necessary
part of the fix.
(The encoder was accidentally collapsing the redidue bundle to remove
silent residues twice, potentiall causing corruption the second time
if a preceeding channel was silent)
| ... | ...@@ -722,7 +722,15 @@ | |
| 722 | 722 | |
| 723 | 723 | classifications=_residue_P[ci->residue_type[resnum]]-> |
| 724 | 724 | class(vb,b->residue[resnum],couple_bundle,zerobundle,ch_in_bundle); |
| 725 | ||
| 725 | ||
| 726 | /* couple_bundle is destructively overwritten by | |
| 727 | the class function if some but not all of the channels are | |
| 728 | marked as silence; build a fresh copy */ | |
| 729 | ch_in_bundle=0; | |
| 730 | for(j=0;j<vi->channels;j++) | |
| 731 | if(info->chmuxlist[j]==i) | |
| 732 | couple_bundle[ch_in_bundle++]=vb->pcm[j]+n/2; | |
| 733 | ||
| 726 | 734 | _residue_P[ci->residue_type[resnum]]-> |
| 727 | 735 | forward(opb,vb,b->residue[resnum], |
| 728 | 736 | couple_bundle,NULL,zerobundle,ch_in_bundle,classifications); |