コード例 #1
0
        private void testSend(PSFragment psf)
        {
            List <Nalu> nList     = _helper.ToRTP(psf);
            uint        timestamp = 1;

            for (int i = 0; i < nList.Count; i++)
            {
                RTP_Packet packet = new RTP_Packet();
                packet.Timestamp = timestamp;
                packet.Data      = nList[i].NaluBytes();
                if (psf.IsFrameEnd && i == nList.Count - 1)
                {
                    packet.IsMarker = true;
                }
                else
                {
                    packet.IsMarker = false;
                }
                testReceive(packet);
            }
        }
コード例 #2
0
ファイル: RTPServer.cs プロジェクト: windygu/SeecoolCCTV2
        private void _ups_Unpacked(object arg1, PSFragment psf)
        {
            List <Nalu> nList     = _rtpHelper.ToRTPPayload(psf);
            uint        timestamp = _multiSession.Sessions[0].RtpClock.RtpTimestamp;

            //判断是否有新的接收客户端加入。
            if (_hasNewTarget)
            {
                _hTrigger.SendSPS(_sendStream, timestamp);
                _hTrigger.SendPPS(_sendStream, timestamp);
                _hasNewTarget = true;
            }
            for (int i = 0; i < nList.Count; i++)
            {
                _hTrigger.Update(nList[i]);
                RTP_Packet packet = new RTP_Packet();
                packet.Timestamp = timestamp;
                packet.Data      = nList[i].NaluBytes();
                if (psf.IsFrameEnd && i == nList.Count - 1)
                {
                    packet.IsMarker = true;
                }
                else
                {
                    packet.IsMarker = false;
                }
                _sendStream.Send(packet);
            }
            //判断是否需要冗余发送SPS和PPS。
            if (_hTrigger.IsSPSTimeout)
            {
                _hTrigger.SendSPS(_sendStream, timestamp);
            }
            if (_hTrigger.IsPPSTimeout)
            {
                _hTrigger.SendPPS(_sendStream, timestamp);
            }
        }
コード例 #3
0
 private void _upsnew_Unpacked(object arg1, PSFragment arg2)
 {
     testSend(arg2);
 }