Пример #1
0
        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();
        }
Пример #2
0
 public override void Dispose()
 {
     Stream?.Dispose();
     base.Dispose();
     if (PrePairedFrame?.IsDisposed == false)
     {
         PrePairedFrame.Dispose();
     }
 }
Пример #3
0
 public void Dispose()
 {
     _replayProcess.RemoveCache(_guid);
     _disposeEvent.Set();
     lock (_obj)
     {
         if (_decoder != null)
         {
             _decoder.VideoFrameEvent -= onVideoFrame;
             _decoder.Dispose();
         }
         _decoder = null;
     }
 }