public UnityVideoRenderer(IntPtr ptr, VideoStreamTrack track) { self = ptr; this.track = track; NativeMethods.VideoTrackAddOrUpdateSink(track.GetSelfOrThrow(), self); WebRTC.Table.Add(self, this); }
public UnityVideoRenderer(VideoStreamTrack track, bool needFlip) { self = WebRTC.Context.CreateVideoRenderer(OnVideoFrameResize, needFlip); this.track = track; NativeMethods.VideoTrackAddOrUpdateSink(track.GetSelfOrThrow(), self); WebRTC.Table.Add(self, this); }
public void Dispose() { if (this.disposed) { return; } if (self != IntPtr.Zero) { IntPtr trackPtr = track.GetSelfOrThrow(); if (trackPtr != IntPtr.Zero) { NativeMethods.VideoTrackRemoveSink(trackPtr, self); } WebRTC.Context.DeleteVideoRenderer(self); WebRTC.Table.Remove(self); self = IntPtr.Zero; } this.disposed = true; GC.SuppressFinalize(this); }