private void initialize(Header header) { // REVIEW: allow customizable scale factor float scalefactor = 32700.0f; int mode = header.mode(); int layer = header.layer(); int channels = mode == Header.SINGLE_CHANNEL?1:2; // set up output buffer if not set up by client. if (output == null) { output = new SampleBuffer(header.frequency(), channels); } float[] factors = equalizer.BandFactors; //Console.WriteLine("NOT CREATING SYNTHESIS FILTERS"); filter1 = new SynthesisFilter(0, scalefactor, factors); // REVIEW: allow mono output for stereo if (channels == 2) { filter2 = new SynthesisFilter(1, scalefactor, factors); } outputChannels = channels; outputFrequency = header.frequency(); initialized = true; }
/// <summary> Decodes one frame from an MPEG audio bitstream. /// /// </summary> /// <param name="header The">header describing the frame to decode. /// </param> /// <param name="bitstream The">bistream that provides the bits for te body of the frame. /// /// </param> /// <returns> A SampleBuffer containing the decoded samples. /// /// </returns> public virtual Obuffer decodeFrame(Header header, Bitstream stream) { if (!initialized) { initialize(header); } int layer = header.layer(); output.clear_buffer(); FrameDecoder decoder = retrieveDecoder(header, stream, layer); decoder.decodeFrame(); output.write_buffer(1); return(output); }
private void initialize(Header header) { // REVIEW: allow customizable scale factor float scalefactor = 32700.0f; int mode = header.mode(); int layer = header.layer(); int channels = mode == Header.SINGLE_CHANNEL?1:2; // set up output buffer if not set up by client. if (output == null) output = new SampleBuffer(header.frequency(), channels); float[] factors = equalizer.BandFactors; //Console.WriteLine("NOT CREATING SYNTHESIS FILTERS"); filter1 = new SynthesisFilter(0, scalefactor, factors); // REVIEW: allow mono output for stereo if (channels == 2) filter2 = new SynthesisFilter(1, scalefactor, factors); outputChannels = channels; outputFrequency = header.frequency(); initialized = true; }
/// <summary> Decodes one frame from an MPEG audio bitstream. /// /// </summary> /// <param name="header The">header describing the frame to decode. /// </param> /// <param name="bitstream The">bistream that provides the bits for te body of the frame. /// /// </param> /// <returns> A SampleBuffer containing the decoded samples. /// /// </returns> public virtual Obuffer decodeFrame(Header header, Bitstream stream) { if (!initialized) { initialize(header); } int layer = header.layer(); output.clear_buffer(); FrameDecoder decoder = retrieveDecoder(header, stream, layer); decoder.decodeFrame(); output.write_buffer(1); return output; }