Improved SkiaSharp CreateVideoFrame performance

Execution time is now approximately one fifth of what it was previously
This commit is contained in:
Dimitri Vranken 2023-02-20 13:50:19 +01:00
parent 317ba47dd2
commit 5593bc4a4b

View file

@ -50,12 +50,9 @@ public static Extensions.SkiaSharp.BitmapVideoFrameWrapper CreateVideoFrame(int
{ {
var bitmap = new SKBitmap(w, h, fmt, SKAlphaType.Opaque); var bitmap = new SKBitmap(w, h, fmt, SKAlphaType.Opaque);
using var bitmapCanvas = new SKCanvas(bitmap); bitmap.Pixels = GenerateVideoFramePixels(index, w, h, scaleNoise, offset)
foreach (var (x, y, red, green, blue) in GenerateVideoFramePixels(index, w, h, scaleNoise, offset)) .Select(args => new SKColor(args.red, args.blue, args.green))
{ .ToArray();
var color = new SKColor(red, blue, green);
bitmapCanvas.DrawPoint(x, y, color);
}
return new Extensions.SkiaSharp.BitmapVideoFrameWrapper(bitmap); return new Extensions.SkiaSharp.BitmapVideoFrameWrapper(bitmap);
} }