public void Dispose() { if (Interlocked.CompareExchange(ref _disposed, 1, 0) == 0) { Transceiver.ToFrozenState(); RaiseTransceiverMetadataUdatedEvent(); Transceiver.CustomData = null; // Notes - Dispose only the track, // Don't dispose RtpSender, the PeerConnection owns it. _track.Dispose(); } }