static GamingTheatre() { if (Directory.Exists("Temp")) { Directory.Delete("Temp", true); } VideoStreamDecoder vsd = new VideoStreamDecoder(@"assets.shine:movie/LOGO_32.mov"); while (true) { var res = vsd.TryDecodeNextFrame(out IntPtr dataPoint, out int pitch); if (!res) { break; } var ImGc = new ImagingFactory(); var WICBIT = new WICBitmap(ImGc, vsd.FrameSize.Width, vsd.FrameSize.Height, SharpDX.WIC.PixelFormat.Format32bppPBGRA, new DataRectangle(dataPoint, pitch)); // var mp = new System.Drawing.Bitmap(vsd.FrameSize.Width, vsd.FrameSize.Height, pitch, System.Drawing.Imaging.PixelFormat.Format32bppPArgb, dataPoint); // mp.Save("test/" + logo_frames.Count + ".png"); // mp.Dispose(); ImGc.Dispose(); logo_frames.Add(WICBIT); } vsd.Dispose(); }
public override void Dispose() { Stream?.Dispose(); base.Dispose(); if (PrePairedFrame?.IsDisposed == false) { PrePairedFrame.Dispose(); } }
public void Dispose() { _replayProcess.RemoveCache(_guid); _disposeEvent.Set(); lock (_obj) { if (_decoder != null) { _decoder.VideoFrameEvent -= onVideoFrame; _decoder.Dispose(); } _decoder = null; } }