/// <summary> /// Construct new encoder /// </summary> /// <param name="decoder">Source of audio data</param> /// <param name="outputStream">Output</param> /// <param name="recodeInfo">Information for new stream in reencode required. Otherwise kept as close as possible to source</param> public AudioEncoder(AudioDecoder decoder, Stream outputStream, StreamInfo recodeInfo) { this.physicalStream = outputStream; this.decoder = decoder; if (recodeInfo != null) { ImportStreamInfo(recodeInfo); } else { ImportStreamInfo(decoder.StreamInfo); } //WriterHeader(); }
/// <summary> /// Convert StreamInfo to internal format /// </summary> /// <param name="info">Source stream info</param> protected abstract void ImportStreamInfo(StreamInfo info);
public WaveEncoder(AudioDecoder decoder, Stream outputStream, StreamInfo recodeInfo) : base(decoder, outputStream, recodeInfo) { }
protected override void ImportStreamInfo(StreamInfo info) { var newInfo = new WaveStreamInfo(); newInfo.BitsPerSample = info.BitsPerSample; newInfo.NumberOfChannels = info.NumberOfChannels; newInfo.SampleRate = info.SampleRate; newInfo.TotalSamples = info.TotalSamples; newInfo.AudioFormat = WaveCompression.PCM; this.streamInfo = newInfo; }