Beispiel #1
0
        /// <summary>
        /// Close video file.
        /// </summary>
        public void Close()
        {
            lock (sync)
            {
                // free unmanaged memory
                if (buffer != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(buffer);
                    buffer = IntPtr.Zero;
                }

                // release compressed stream
                if (streamCompressed != IntPtr.Zero)
                {
                    NativeMethods.AVIStreamRelease(streamCompressed);
                    streamCompressed = IntPtr.Zero;
                }

                // release stream
                if (stream != IntPtr.Zero)
                {
                    NativeMethods.AVIStreamRelease(stream);
                    stream = IntPtr.Zero;
                }

                // release file
                if (file != IntPtr.Zero)
                {
                    NativeMethods.AVIFileRelease(file);
                    file = IntPtr.Zero;
                }
            }
        }