/// <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; } } }