Esempio n. 1
0
        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);
        }