public void Dispose() { if (!string.IsNullOrEmpty(_fileName) && fout?.CanWrite == true) { ToAvi_EndFileWrite(); } avi?.Dispose(); nal?.Dispose(); vb?.Dispose(); fin?.Dispose(); fout?.Dispose(); if (data != null) { Marshal.FreeHGlobal(new IntPtr(data)); } }