コード例 #1
0
 public UnityVideoRenderer(IntPtr ptr, VideoStreamTrack track)
 {
     self       = ptr;
     this.track = track;
     NativeMethods.VideoTrackAddOrUpdateSink(track.GetSelfOrThrow(), self);
     WebRTC.Table.Add(self, this);
 }
コード例 #2
0
 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);
 }
コード例 #3
0
        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);
        }