private void PresentNV12P010(MediaFrame frame, bool dispose = true) { // TODO: Possible process it directly after decoding (back to FFmpeg) to avoid Flush? try { Utilities.Dispose(ref vpiv); videoDevice1.CreateVideoProcessorInputView(frame.textureHW, vpe, vpivd, out vpiv); VideoProcessorStream vps = new VideoProcessorStream() { PInputSurface = vpiv, Enable = new RawBool(true) }; vpsa[0] = vps; videoContext1.VideoProcessorBlt(videoProcessor, vpov, 0, 1, vpsa); context.PixelShader.SetShaderResource(0, srvRGB); context.PixelShader.Set(pixelShader); } catch (Exception) { } finally { if (dispose) { Utilities.Dispose(ref frame.textureHW); } } }