Ejemplo n.º 1
0
        internal RTCTrackEvent(IntPtr ptrTransceiver, RTCPeerConnection peer)
        {
            IntPtr ptrTrack = NativeMethods.TransceiverGetTrack(ptrTransceiver);

            Track       = WebRTC.FindOrCreate(ptrTrack, ptr => new MediaStreamTrack(ptr));
            Transceiver = new RTCRtpTransceiver(ptrTransceiver, peer);
        }
Ejemplo n.º 2
0
        internal RTCStatsReportAsyncOperation(RTCPeerConnection connection, RTCRtpReceiver receiver)
        {
            NativeMethods.PeerConnectionReceiverGetStats(connection.GetSelfOrThrow(), receiver.self);

            connection.OnStatsDelivered = ptr =>
            {
                Value   = WebRTC.FindOrCreate(ptr, ptr_ => new RTCStatsReport(ptr_));
                IsError = false;
                this.Done();
            };
        }
Ejemplo n.º 3
0
 static void PCOnRemoveTrack(IntPtr ptr, IntPtr receiverPtr)
 {
     WebRTC.Sync(ptr, () =>
     {
         if (WebRTC.Table[ptr] is RTCPeerConnection connection)
         {
             var receiver = WebRTC.FindOrCreate(
                 receiverPtr, _ptr => new RTCRtpReceiver(_ptr, connection));
             if (receiver != null)
             {
                 connection.cacheTracks.Remove(receiver.Track);
             }
         }
     });
 }
Ejemplo n.º 4
0
 internal MediaStreamTrackEvent(IntPtr ptrTrack)
 {
     Track = WebRTC.FindOrCreate(ptrTrack, ptr => new MediaStreamTrack(ptr));
 }
Ejemplo n.º 5
0
 internal MediaStreamTrackEvent(IntPtr ptrTrack)
 {
     Track = WebRTC.FindOrCreate(ptrTrack, MediaStreamTrack.Create);
 }
Ejemplo n.º 6
0
 internal RTCTrackEvent(IntPtr ptrTransceiver, RTCPeerConnection peer)
 {
     Transceiver = WebRTC.FindOrCreate(
         ptrTransceiver, ptr => new RTCRtpTransceiver(ptr, peer));
 }
 RTCRtpTransceiver CreateTransceiver(IntPtr ptr)
 {
     return(WebRTC.FindOrCreate(ptr, _ptr => new RTCRtpTransceiver(_ptr, this)));
 }
 RTCRtpSender CreateSender(IntPtr ptr)
 {
     return(WebRTC.FindOrCreate(ptr, _ptr => new RTCRtpSender(_ptr, this)));
 }