Exemplo n.º 1
0
        private static IVideoCodec GetJdifVideoCodec(IVideoQualityController videoQualityController)
        {
            var codec = new JpegDiffVideoCodec(videoQualityController);

            codec.Initialize(VideoConstants.Height, VideoConstants.Width, VideoConstants.MaxPayloadSize);
            return(codec);
        }
Exemplo n.º 2
0
        public IVideoCodec GetVideoDecoder(IVideoQualityController videoQualityController, MediaStatistics mediaStatistics = null)
        {
            var videoCodec = new JpegDiffVideoCodec(videoQualityController, mediaStatistics);

            videoCodec.Initialize(VideoConstants.Height, VideoConstants.Width, VideoConstants.MaxPayloadSize);
            return(videoCodec);
        }
Exemplo n.º 3
0
        public void zzCodecPerformanceTest()
        {
            // Encode and decode a basic raster structure.
            var perf = new PerformanceMonitor("Encode/Decode", 1);
            var vqc  = new VideoQualityController(1);

            vqc.RemoteSessions = _remoteSessions;
            var codec = new JpegDiffVideoCodec(vqc);

            codec.Initialize(height, width, VideoConstants.MaxPayloadSize);
            var videoChunkPool = new ObjectPool <ByteStream>(() => new ByteStream(VideoConstants.MaxPayloadSize), bs => bs.Reset());

            perf.Start();
            const int iterations = 100;

            for (int i = 0; i < iterations; i++)
            {
                byte[] sample = GetRgba(i);
                codec.EncodeFrame(sample, 0);
                bool moreChunks = true;
                var  buffer     = videoChunkPool.GetNext();
                while (moreChunks)
                {
                    if (codec.GetNextChunk(buffer, out moreChunks))
                    {
                        codec.DecodeChunk(buffer, 2);
                    }
                }
                videoChunkPool.Recycle(buffer);
                codec.GetNextFrame();
            }
            perf.Stop();

            ClientLogger.Debug("Finished JpegEncoderDecoder performance test.");
        }