public void UnalignedBytesTest() { _jitterBuffer = new JitterBuffer(x => new TestDecoder(), 7); var temp = new byte[8]; for (var i = 0; i < 7; ++i) { _jitterBuffer.Write( new RtpPacket { SequenceNumber = (ushort)i, Payload = Enumerable.Range(4 * i, 4).Select(x => (byte)x).ToArray(), }); } Assert.AreEqual(2, _jitterBuffer.Read(temp, 0, 2)); CollectionAssert.AreEqual(new byte[] { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, temp); Assert.AreEqual(4, _jitterBuffer.Read(temp, 0, 4)); CollectionAssert.AreEqual(new byte[] { 0x03, 0x02, 0x05, 0x04, 0x00, 0x00, 0x00, 0x00 }, temp); Assert.AreEqual(8, _jitterBuffer.Read(temp, 0, 8)); CollectionAssert.AreEqual(new byte[] { 0x07, 0x06, 0x09, 0x08, 0x0B, 0x0A, 0x0D, 0x0C }, temp); Assert.AreEqual(2, _jitterBuffer.Read(temp, 0, 2)); CollectionAssert.AreEqual(new byte[] { 0x0F, 0x0E, 0x09, 0x08, 0x0B, 0x0A, 0x0D, 0x0C }, temp); Assert.AreEqual(4, _jitterBuffer.Read(temp, 0, 4)); CollectionAssert.AreEqual(new byte[] { 0x11, 0x10, 0x13, 0x12, 0x0B, 0x0A, 0x0D, 0x0C }, temp); Assert.AreEqual(8, _jitterBuffer.Read(temp, 0, 8)); CollectionAssert.AreEqual(new byte[] { 0x15, 0x14, 0x17, 0x16, 0x19, 0x18, 0x1B, 0x1A }, temp); }
public void UnalignedTest() { _jitterBuffer = new JitterBuffer(x => new TestDecoder(), 7); var temp = new short[4]; for (var i = 0; i < 7; ++i) { _jitterBuffer.Write( new RtpPacket { SequenceNumber = (ushort)i, Payload = Enumerable.Range(4 * i, 4).Select(x => (byte)x).ToArray(), }); } Assert.AreEqual(1, _jitterBuffer.Read(temp, 0, 1)); CollectionAssert.AreEqual(new short[] { 0x0001, 0x0000, 0x0000, 0x0000 }, temp); Assert.AreEqual(2, _jitterBuffer.Read(temp, 0, 2)); CollectionAssert.AreEqual(new short[] { 0x0203, 0x0405, 0x0000, 0x0000 }, temp); Assert.AreEqual(4, _jitterBuffer.Read(temp, 0, 4)); CollectionAssert.AreEqual(new short[] { 0x0607, 0x0809, 0x0A0B, 0x0C0D }, temp); Assert.AreEqual(1, _jitterBuffer.Read(temp, 0, 1)); CollectionAssert.AreEqual(new short[] { 0x0E0F, 0x0809, 0x0A0B, 0x0C0D }, temp); Assert.AreEqual(2, _jitterBuffer.Read(temp, 0, 2)); CollectionAssert.AreEqual(new short[] { 0x1011, 0x1213, 0x0A0B, 0x0C0D }, temp); Assert.AreEqual(4, _jitterBuffer.Read(temp, 0, 4)); CollectionAssert.AreEqual(new short[] { 0x1415, 0x1617, 0x1819, 0x1A1B }, temp); }
public void OnStartClient() { entityHolder = new GameObject("Entities").transform; _jitterBuffer = new JitterBuffer <StateSyncMessage>(ElementsInJitterBuffer, SendRatePerSecond, (x => (int)x.SequenceNumber)); NetworkClient.RegisterHandler <StateSyncMessage>(info => { _jitterBuffer.Add(info.Message.Copy(), (int)info.Message.SequenceNumber); }); }
static void Main(string[] args) { var mem = new MemoryStream(Encoding.UTF8.GetBytes("2;hey;1;hello;0;ugii;")); var parser = new StringParser(); var jitter = new JitterBuffer <string>(mem, parser); jitter.Begin((word) => Console.WriteLine(word)); Console.ReadKey(); }
public void AddAudioSamples(byte[] pcmAudio, int radioId, bool isStereo = false) { if (isStereo) { BufferedWaveProvider.AddSamples(pcmAudio, 0, pcmAudio.Length); } else { var settingType = SettingType.Radio1Channel; if (radioId == 0) { settingType = SettingType.IntercomChannel; } else if (radioId == 1) { settingType = SettingType.Radio1Channel; } else if (radioId == 2) { settingType = SettingType.Radio2Channel; } else if (radioId == 3) { settingType = SettingType.Radio3Channel; } else { var stereo = JitterBuffer.CreateStereoMix(pcmAudio); BufferedWaveProvider.AddSamples(stereo, 0, stereo.Length); return; } var setting = _settings.UserSettings[(int)settingType]; if (setting == "Left") { var stereo = JitterBuffer.CreateLeftMix(pcmAudio); BufferedWaveProvider.AddSamples(stereo, 0, stereo.Length); } else if (setting == "Right") { var stereo = JitterBuffer.CreateRightMix(pcmAudio); BufferedWaveProvider.AddSamples(stereo, 0, stereo.Length); } else { var stereo = JitterBuffer.CreateStereoMix(pcmAudio); BufferedWaveProvider.AddSamples(stereo, 0, stereo.Length); } } }
public AsgardClient() : base() { _netConfig = Config.Get<NetConfig>("network"); _bifrost = new BifrostClient(_netConfig.Host, _netConfig.Port); RPCManager.SetConnection(_bifrost); AddInternalSystem(_bifrost, 0); float delay_amount = (float)Math.Round((1f / _netConfig.Tickrate) * 6f, 2); _jitterBuffer = new JitterBuffer<List<Tuple<Entity, NetworkObject>>>(_netConfig.Tickrate / 5); _stateList = new List<PlayerStateData>(); _moveBuffer = new Core.Collections.LinkedList<PlayerStateData>(); }
public void JitterBufferTest2() { JitterBuffer buffer = new JitterBuffer(null); buffer.Insert(message3); buffer.Insert(message3); buffer.Insert(message1); buffer.Insert(message1); buffer.Insert(message2); buffer.Insert(message2); Assert.AreEqual(3, buffer.Count); Assert.AreEqual((UInt16)1, buffer.DequeueAvailable().SequenceNumber); Assert.AreEqual((UInt16)2, buffer.DequeueAvailable().SequenceNumber); Assert.AreEqual((UInt16)3, buffer.DequeueAvailable().SequenceNumber); Assert.IsNull(buffer.DequeueAvailable()); }
public void Init() { _jitterBuffer = new JitterBuffer(x => new TestDecoder(), 3); _outputBuffer = new short[1]; }
public JitterBufferAdapter(int playBufferSize) { WaveFormat = new WaveFormat(SAMPLE_RATE, BIT_PER_SAMPLE, CHANNEL_COUNT); _jitterBuffer = new JitterBuffer(CodecFactory, playBufferSize); }