/// <summary> /// * /// </summary> internal override bool PutNextSample(int channels, SynthesisFilter filter1, SynthesisFilter filter2) { if (Allocation != 0 && channels != OutputChannels.RIGHT_CHANNEL) { float scaledSample = (Sample * Factor + Offset) * Scalefactor; filter1.AddSample(scaledSample, Subbandnumber); } return(true); }
/// <summary> /// * /// </summary> internal override bool PutNextSample(int channels, SynthesisFilter filter1, SynthesisFilter filter2) { if (Allocation != 0) { Sample = Sample * Factor + Offset; // requantization if (channels == OutputChannels.BOTH_CHANNELS) { float sample1 = Sample * Scalefactor, sample2 = Sample * Channel2Scalefactor; filter1.AddSample(sample1, Subbandnumber); filter2.AddSample(sample2, Subbandnumber); } else if (channels == OutputChannels.LEFT_CHANNEL) { float sample1 = Sample * Scalefactor; filter1.AddSample(sample1, Subbandnumber); } else { float sample2 = Sample * Channel2Scalefactor; filter1.AddSample(sample2, Subbandnumber); } } return(true); }
/// <summary> /// * /// </summary> internal override bool PutNextSample(int channels, SynthesisFilter filter1, SynthesisFilter filter2) { base.PutNextSample(channels, filter1, filter2); if (Channel2Allocation != 0 && channels != OutputChannels.LEFT_CHANNEL) { float sample2 = (Channel2Sample * Channel2Factor + Channel2Offset) * Channel2Scalefactor; if (channels == OutputChannels.BOTH_CHANNELS) { filter2.AddSample(sample2, Subbandnumber); } else { filter1.AddSample(sample2, Subbandnumber); } } return(true); }
/// <summary> /// * /// </summary> internal override bool PutNextSample(int channels, SynthesisFilter filter1, SynthesisFilter filter2) { bool returnvalue = base.PutNextSample(channels, filter1, filter2); if (Channel2Allocation != 0 && channels != OutputChannels.LEFT_CHANNEL) { float sample = Channel2Samples[Samplenumber - 1]; if (Groupingtable[1] == null) { sample = (sample + Channel2D[0]) * Channel2C[0]; } if (Groupnumber <= 4) { sample *= Channel2Scalefactor1; } else if (Groupnumber <= 8) { sample *= Channel2Scalefactor2; } else { sample *= Channel2Scalefactor3; } if (channels == OutputChannels.BOTH_CHANNELS) { filter2.AddSample(sample, Subbandnumber); } else { filter1.AddSample(sample, Subbandnumber); } } return(returnvalue); }
/// <summary> /// * /// </summary> internal override bool PutNextSample(int channels, SynthesisFilter filter1, SynthesisFilter filter2) { if (Allocation != 0) { float sample = Samples[Samplenumber]; if (Groupingtable[0] == null) { sample = (sample + D[0]) * CFactor[0]; } if (channels == OutputChannels.BOTH_CHANNELS) { float sample2 = sample; if (Groupnumber <= 4) { sample *= Scalefactor1; sample2 *= Channel2Scalefactor1; } else if (Groupnumber <= 8) { sample *= Scalefactor2; sample2 *= Channel2Scalefactor2; } else { sample *= Scalefactor3; sample2 *= Channel2Scalefactor3; } filter1.AddSample(sample, Subbandnumber); filter2.AddSample(sample2, Subbandnumber); } else if (channels == OutputChannels.LEFT_CHANNEL) { if (Groupnumber <= 4) { sample *= Scalefactor1; } else if (Groupnumber <= 8) { sample *= Scalefactor2; } else { sample *= Scalefactor3; } filter1.AddSample(sample, Subbandnumber); } else { if (Groupnumber <= 4) { sample *= Channel2Scalefactor1; } else if (Groupnumber <= 8) { sample *= Channel2Scalefactor2; } else { sample *= Channel2Scalefactor3; } filter1.AddSample(sample, Subbandnumber); } } if (++Samplenumber == 3) { return(true); } return(false); }