private void UnregisterInteropCallbacks() { if (_selfHandle != IntPtr.Zero) { RemoteVideoTrackInterop.RemoteVideoTrack_RegisterI420AFrameCallback(_nativeHandle, null, IntPtr.Zero); RemoteVideoTrackInterop.RemoteVideoTrack_RegisterArgb32FrameCallback(_nativeHandle, null, IntPtr.Zero); Utils.ReleaseWrapperRef(_selfHandle); _selfHandle = IntPtr.Zero; _interopCallbackArgs = null; } }
private void RegisterInteropCallbacks() { _interopCallbackArgs = new RemoteVideoTrackInterop.InteropCallbackArgs() { Track = this, I420AFrameCallback = RemoteVideoTrackInterop.I420AFrameCallback, Argb32FrameCallback = RemoteVideoTrackInterop.Argb32FrameCallback, }; _selfHandle = Utils.MakeWrapperRef(this); RemoteVideoTrackInterop.RemoteVideoTrack_RegisterI420AFrameCallback( _nativeHandle, _interopCallbackArgs.I420AFrameCallback, _selfHandle); RemoteVideoTrackInterop.RemoteVideoTrack_RegisterArgb32FrameCallback( _nativeHandle, _interopCallbackArgs.Argb32FrameCallback, _selfHandle); }