private static IVideoCodec GetJdifVideoCodec(IVideoQualityController videoQualityController) { var codec = new JpegDiffVideoCodec(videoQualityController); codec.Initialize(VideoConstants.Height, VideoConstants.Width, VideoConstants.MaxPayloadSize); return(codec); }
public IVideoCodec GetVideoDecoder(IVideoQualityController videoQualityController, MediaStatistics mediaStatistics = null) { var videoCodec = new JpegDiffVideoCodec(videoQualityController, mediaStatistics); videoCodec.Initialize(VideoConstants.Height, VideoConstants.Width, VideoConstants.MaxPayloadSize); return(videoCodec); }
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."); }