protected virtual void Dispose(bool disposing) { if (_disposed) { return; } if (disposing) { foreach (var track in _tracks) { track.Dispose(); } DeviceInterface.Dispose(); } _disposed = true; }