예제 #1
0
 private void AddReceiverReport(ReceiverReport rr)
 {
     cpb.Add_ReceiverReport(rr);
 }
예제 #2
0
 public ReceiverReportEventArgs(uint rrSSRC, uint dataSourceSSRC, ReceiverReport receiverReport)
 {
     this.rrSSRC = rrSSRC;
     this.dataSourceSSRC = dataSourceSSRC;
     ReceiverReport = receiverReport;
 }
예제 #3
0
        public override void ReadDataFromBuffer(BufferChunk buffer)
        {
            // Make sure ItemCount and Data length agree
            if(Header.Length * 4 != Rtp.SSRC_SIZE + SenderReport.SIZE + 
                ReceiverReport.SIZE * Header.ItemCount)
            {
                Debug.Assert(false, "Header length and item count disagree!");
                throw new RtcpPacketException("Header length and item count disagree!");
            }

            // Read ssrc
            SSRC = buffer.NextUInt32();

            // Parse SenderReport
            sr.ReadDataFromBuffer(buffer);

            // Process Reports
            if(Header.ItemCount > 0)
            {
                receiverReports = new ArrayList();

                for(int rrCount = 0; rrCount < Header.ItemCount; rrCount++)
                {
                    ReceiverReport rr = new ReceiverReport();
                    rr.ReadDataFromBuffer(buffer);

                    receiverReports.Add(rr);
                }
            }
        }
예제 #4
0
 private void RaiseReceiverReportEvent(string senderCName, string sourceCName, ReceiverReport rr)
 {
     object[] args = {this, new RtpEvents.ReceiverReportEventArgs(senderCName, sourceCName, rr)};
     EventThrower.QueueUserWorkItem(new RtpEvents.RaiseEvent(RtpEvents.RaiseReceiverReportEvent), args);
 }
예제 #5
0
        public override void ReadDataFromBuffer(BufferChunk buffer)
        {
            // Make sure ItemCount and Data length agree
            if(Header.Length * 4 != Header.ItemCount * ReceiverReport.SIZE + Rtp.SSRC_SIZE)
            {
                Debug.Assert(false, "Header length and item count disagree!");
                throw new RtcpPacketException("Header length and item count disagree!");
            }

            // Store Reporter SSRC
            SSRC = buffer.NextUInt32();

            // Process Reports
            for(int rrCount = 0; rrCount < Header.ItemCount; rrCount++)
            {
                ReceiverReport rr = new ReceiverReport();
                rr.ReadDataFromBuffer(buffer);

                receiverReports.Add(rr);
            }
        }
예제 #6
0
        /// <summary>
        /// Add a ReceiverReport entry to the ReceiverReportPacket
        /// </summary>
        /// <param name="rr"></param>
        public void AddReceiverReport(ReceiverReport rr)
        {
            ValidateItemSpace(receiverReports.Count);

            receiverReports.Add(rr);
        }
예제 #7
0
 public void Add_ReceiverReport(ReceiverReport rr)
 {
     receiverReports.Enqueue(rr);
 }
예제 #8
0
파일: Events.cs 프로젝트: cucacutexice/AIGA
 public ReceiverReportEventArgs(string senderCName, string sourceCName, ReceiverReport receiverReport)
 {
     SenderCName    = senderCName;
     SourceCName    = sourceCName;
     ReceiverReport = receiverReport;
 }
예제 #9
0
 public ReceiverReportEventArgs(string senderCName, string sourceCName, ReceiverReport receiverReport)
 {
     SenderCName = senderCName;
     SourceCName = sourceCName;
     ReceiverReport = receiverReport;
 }
예제 #10
0
 public ReceiverReportEventArgs(uint rrSSRC, uint dataSourceSSRC, ReceiverReport receiverReport)
 {
     this.rrSSRC         = rrSSRC;
     this.dataSourceSSRC = dataSourceSSRC;
     ReceiverReport      = receiverReport;
 }
예제 #11
0
 private void RaiseReceiverReportEvent(uint rrSSRC, uint dataSourceSSRC, ReceiverReport rr)
 {
     object[] args = {this, new RtpEvents.ReceiverReportEventArgs(rrSSRC, dataSourceSSRC, rr)};
     EventThrower.QueueUserWorkItem(new RtpEvents.RaiseEvent(RtpEvents.RaiseReceiverReportEvent), args);
 }