Add() публичный Метод

public Add ( uint time, uint received, uint lost, uint size, uint ping ) : void
time uint
received uint
lost uint
size uint
ping uint
Результат void
Пример #1
0
        public void PushAudioPacket(uint time, N2HBinaryReader packet, uint numberLostFragments)
        {
            if (PublisherId == 0)
            {
                Logger.FATAL("Audio packet pushed on a publication {0} who is idle", PublisherId);
                return;
            }
            var pos = packet.BaseStream.Position;

            if (numberLostFragments > 0)
            {
                Logger.INFO("");
            }
            AudioQOS.Add(time, packet.Fragments, numberLostFragments, (uint)(packet.BaseStream.GetAvaliableByteCounts() + 5), (uint)(_publisher != null?_publisher.Ping:0));
            var temp  = packet.ReadByte();
            var temp2 = packet.ReadByte();

            packet.BaseStream.Position = pos;
            if (((temp >> 4) == 0x0a) && temp2 == 0)
            {
                packet.BaseStream.CopyDataTo(AudioCodecBuffer);
                AudioCodecBuffer.Position = 0;
            }

            foreach (var listener in Listeners)
            {
                listener.Value.PushAudioPacket(time, packet);
                //packet.BaseStream.Position = pos;
            }
            _publisher.OnAudioPacket(this, time, packet);
        }
Пример #2
0
        public void PushVideoPacket(uint time, N2HBinaryReader packet, uint numberLostFragments)
        {
            if (PublisherId == 0)
            {
                Logger.FATAL("Video packet pushed on a publication {0} who is idle", PublisherId);
                return;
            }
            if (numberLostFragments > 0)
            {
                _firstKeyFrame = false;
            }
            VideoQOS.Add(time, packet.Fragments, numberLostFragments, (uint)(packet.BaseStream.GetAvaliableByteCounts() + 5), (uint)(_publisher != null?_publisher.Ping:0));
            if (numberLostFragments > 0)
            {
                Logger.INFO("{0} video fragments lost on publication {1}", numberLostFragments, PublisherId);
            }
            var pos   = packet.BaseStream.Position;
            var temp  = packet.ReadByte();
            var temp2 = packet.ReadByte();

            packet.BaseStream.Position = pos;
            if ((temp & 0xF0) == 0x10)
            {
                _firstKeyFrame = true;
                if (temp == 0x17 && temp2 == 0)
                {
                    packet.BaseStream.CopyDataTo(VideoCodecBuffer);
                    VideoCodecBuffer.Position = 0;
                }
            }
            if (!_firstKeyFrame)
            {
                VideoQOS.DroppedFrames++;
                return;
            }

            foreach (var listener in Listeners)
            {
                listener.Value.PushVideoPacket(time, packet);
                //packet.BaseStream.Position = pos;
            }
            _publisher.OnVideoPacket(this, time, packet);
        }