Beispiel #1
0
        protected override void ReceivedRawPacket(PlaybackPacket packet)
        {
            _currentReadTimeSeconds = packet.TimeSeconds;

            base.ReceivedRawPacket(packet);

            if (_firstPacket)
            {
                _firstPacket = false;
                _timePassed.Start();
                _pauseWaiter.Set();
            }
        }
Beispiel #2
0
        protected override IEnumerable <PlaybackPacket> ReadDemoFrameIntoPlaybackPackets(FArchive archive)
        {
            //Limits the buffer size by time
            IEnumerable <PlaybackPacket> packets = base.ReadDemoFrameIntoPlaybackPackets(archive);

            //Used to stop during playback
            if (!_finished)
            {
                PlaybackPacket packet = packets.FirstOrDefault();

                if (packet != null && packet.TimeSeconds * 1000 > LastUpdateTime * 1000 + BufferLengthMs)
                {
                    _bufferWaiter.WaitOne();
                }
            }

            return(packets);
        }