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);
        }
Exemplo n.º 3
0
 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);
     });
 }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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);
                }
            }
        }
Exemplo n.º 6
0
        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>();
        }
Exemplo n.º 7
0
        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];
 }
Exemplo n.º 9
0
 public JitterBufferAdapter(int playBufferSize)
 {
     WaveFormat    = new WaveFormat(SAMPLE_RATE, BIT_PER_SAMPLE, CHANNEL_COUNT);
     _jitterBuffer = new JitterBuffer(CodecFactory, playBufferSize);
 }