public void Test() { byte chan = 1; var header = new OpusHeader(chan, SamplingRate.Create(SamplingRate.Template.Sampling48000), 0); Assert.IsTrue(header.CapturePattern.SequenceEqual("OpusHead".Select(c => (byte)c).ToArray())); Assert.IsTrue(header.Version == 1); Assert.IsTrue(header.Channels == chan); Assert.IsTrue(header.PreSkip == 0); Assert.IsTrue(header.InputSampleRate == (UInt32)SamplingRate.Template.Sampling48000); Assert.IsTrue(header.Gain == 0); Assert.IsTrue(header.ChannelMapping == (byte)MappingFamily.Vorbis); var teplate = ChanelTemplateCollection.GetTemplate(header.Channels - 1); Assert.IsTrue(header.StreamsCount == teplate.StreamsCount); Assert.IsTrue(header.CoupledStreamsCount == teplate.CoupledStreamsCount); }
private void SetHeader(StreamState os, Stream stream) { UInt16 preskip = 0; var header = new OpusHeader(_options.OutChannels.Value, _options.OutSamplingRate, preskip); var op = new Packet { PacketData = header.Packet, PacketDataLength = header.Packet.Length, Bos = 1, Eos = 0, GranulePos = 0 }; os.AddWaveData(op); os.Flush(stream); }