1#This work is licensed under the 2#Creative Commons Attribution-Share Alike 3.0 United States License. 3#To view a copy of this license, visit 4#http://creativecommons.org/licenses/by-sa/3.0/us/ or send a letter to 5#Creative Commons, 6#171 Second Street, Suite 300, 7#San Francisco, California, 94105, USA. 8 9INPUT block_samples,channel_count,residuals,decorrelation_term_count, 10decorrelation_terms,decorrelation_deltas,decorrelation_weights, 11decorrelation_samples; 12OUTPUT "a list of decorrelated samples per channel"; 13VAR block_samples "block samples"; 14VAR channel_count "channel count"; 15VAR decorrelation_term_count "term count"; 16VAR decorrelation_terms "terms"; 17VAR decorrelation_deltas "deltas"; 18VAR decorrelation_weights "weights"; 19VAR decorrelation_samples "samples"; 20VAR residuals "residuals"; 21VAR pass "pass"; 22FUNC decorrelate_1ch "decorrelate 1 channel" "wavpack:decorr_pass_1ch"; 23FUNC decorrelate_2ch "decorrelate 2 channels" "wavpack:decorr_pass_2ch"; 24if channel_count == 1 { 25 pass[0] <- residuals[0]; 26 for p <- 0 to decorrelation_term_count { 27 pass[0] <- decorrelate_1ch(block_samples, 28 pass[0], 29 decorrelation_terms[p], 30 decorrelation_deltas[p], 31 decorrelation_weights[p][0], 32 decorrelation_samples[p][0]); 33 } 34 return pass[0]; 35} else { 36 pass[0] <- residuals[0]; 37 pass[1] <- residuals[1]; 38 for p <- 0 to decorrelation_term_count { 39 pass[0],pass[1] <- decorrelate_2ch(block_samples, 40 pass, 41 decorrelation_terms[p], 42 decorrelation_deltas[p], 43 decorrelation_weights[p], 44 decorrelation_samples[p]); 45 } 46 return pass[0],pass[1]; 47} 48