private void RTSPClient_RtpPacketReceieved(object sender, Media.Rtp.RtpPacket packet = null, Media.Rtp.RtpClient.TransportContext tc = null) { if (InvokeRequired) { MethodInvoker del = delegate { RTSPClient_RtpPacketReceieved(sender, packet, tc); }; Invoke(del); } else { if ((m_rtspClient != null)) { if (!m_rtspClient.LivePlay) { label2.Text = "Remaining: " + (DateTime.UtcNow - m_rtspClient.StartedPlaying.Value).Subtract(m_rtspClient.EndTime.Value).ToString(); } } RTSPMessagesTextBox.AppendText("RTSPClient_RtpPacketReceieved" + Environment.NewLine); RTSPMessagesTextBox.AppendText("@" + packet.Created.ToUniversalTime().ToString() + " - " + packet.ToString() + Environment.NewLine); RTSPMessagesTextBox.AppendText("IsComplete = " + packet.IsComplete.ToString() + ", "); RTSPMessagesTextBox.AppendText("IsCompressed = " + packet.IsCompressed.ToString() + ", "); RTSPMessagesTextBox.AppendText("Length = " + packet.Length.ToString() + ", "); RTSPMessagesTextBox.AppendText("SequenceNumber = " + packet.SequenceNumber.ToString() + ", "); RTSPMessagesTextBox.AppendText("PayloadType = " + packet.PayloadType.ToString() + ", " + Environment.NewLine); #if DRIBBLE try { int count = 0; int byteCount = 40; foreach (byte payloadByte in packet.PayloadData) { RTSPMessagesTextBox.AppendText(String.Format("{0:X2}", payloadByte)); RTSPMessagesTextBox.AppendText(" "); if (count++ > byteCount) { break; } } RTSPMessagesTextBox.AppendText(Environment.NewLine); } catch (Exception ex) { RTSPMessagesTextBox.AppendText("Image Exception:" + ex.Message + Environment.NewLine); } #endif RTSPMessagesTextBox.AppendText(Environment.NewLine); } }
private void RTSPClient_RtpFrameChanged(object sender, Media.Rtp.RtpFrame frame = null, Media.Rtp.RtpClient.TransportContext tc = null, bool final = false) { if (InvokeRequired) { MethodInvoker del = delegate { RTSPClient_RtpFrameChanged(sender, frame, tc, final); }; Invoke(del); } else { RTSPMessagesTextBox.AppendText("RTSPClient_RtpFrameChanged" + Environment.NewLine); RTSPMessagesTextBox.AppendText("@" + frame.Created.ToUniversalTime().ToString() + " - " + frame.ToString() + Environment.NewLine); frame.Depacketize(); //If the frame has depacketize data if (frame.HasDepacketized) { RTSPMessagesTextBox.AppendText("BufferSize = " + frame.Buffer.Length.ToString() + Environment.NewLine); RTSPMessagesTextBox.AppendText("Packets = " + frame.Count.ToString() + Environment.NewLine); System.IO.Stream buffer = frame.Buffer; /* * //Check for the expected length * if (buffer.Length != frameCount) throw new Exception("More data in buffer than expected"); * * //Read the buffer * while (buffer.Position < frameCount) * { * //If the byte is out of order then throw an exception * if (buffer.ReadByte() != expected++) throw new Exception("Data at wrong position"); * } */ } else { RTSPMessagesTextBox.AppendText("Not DEPACKETIZED" + Environment.NewLine); } } }
private void RTSPClient_OnResponse(RtspClient sender, RtspMessage request, RtspMessage response) { if (InvokeRequired) { MethodInvoker del = delegate { RTSPClient_OnResponse(sender, request, response); }; Invoke(del); } else { if (request != null && response != null) { //Disable keep alives if indicated //m_rtspClient.DisableKeepAliveRequest = checkBox1.Checked; RTSPMessagesTextBox.AppendText("RTSPClient_OnResponse (Request)" + Environment.NewLine); RTSPMessagesTextBox.AppendText("@" + request.Created.ToUniversalTime().ToString() + " - " + request.ToString() + Environment.NewLine); RTSPMessagesTextBox.AppendText("RTSPClient_OnResponse (Response)" + Environment.NewLine); RTSPMessagesTextBox.AppendText("@" + response.Created.ToUniversalTime().ToString() + " - " + response.ToString() + Environment.NewLine); } } }