Add more tracing for key frames.
R=mallinath@webrtc.org, stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1428004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4015 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc b/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc
index 3b9659a..bfb5f50 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc
@@ -918,6 +918,8 @@
RTCPPacketInformation& rtcpPacketInformation) {
const RTCPUtility::RTCPPacket& rtcpPacket = rtcpParser.Packet();
if (_SSRC == rtcpPacket.PLI.MediaSSRC) {
+ TRACE_EVENT_INSTANT0("webrtc_rtp", "PLI");
+
// Received a signal that we need to send a new key frame.
rtcpPacketInformation.rtcpPacketTypeFlags |= kRtcpPli;
}
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
index b4cdf69..cfc7c66 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
@@ -330,9 +330,6 @@
const uint8_t *payload_data, const uint32_t payload_size,
const RTPFragmentationHeader *fragmentation,
VideoCodecInformation *codec_info, const RTPVideoTypeHeader *rtp_type_hdr) {
- TRACE_EVENT2("webrtc_rtp", "RTPSender::SendOutgoingData",
- "timestsamp", capture_timestamp,
- "frame_type", FrameTypeToString(frame_type));
{
// Drop this packet if we're not sending media packets.
CriticalSectionScoped cs(send_critsect_);
@@ -348,6 +345,15 @@
return -1;
}
+ if (frame_type == kVideoFrameKey) {
+ TRACE_EVENT_INSTANT1("webrtc_rtp", "SendKeyFrame",
+ "timestamp", capture_timestamp);
+ } else {
+ TRACE_EVENT_INSTANT2("webrtc_rtp", "SendFrame",
+ "timestsamp", capture_timestamp,
+ "frame_type", FrameTypeToString(frame_type));
+ }
+
if (audio_configured_) {
assert(frame_type == kAudioFrameSpeech || frame_type == kAudioFrameCN ||
frame_type == kFrameEmpty);
diff --git a/webrtc/modules/video_coding/main/source/jitter_buffer.cc b/webrtc/modules/video_coding/main/source/jitter_buffer.cc
index da91b68..ea26032 100644
--- a/webrtc/modules/video_coding/main/source/jitter_buffer.cc
+++ b/webrtc/modules/video_coding/main/source/jitter_buffer.cc
@@ -981,6 +981,8 @@
void VCMJitterBuffer::DropPacketsFromNackList(
uint16_t last_decoded_sequence_number) {
+ TRACE_EVENT_INSTANT1("webrtc", "JB::DropPacketsFromNackList",
+ "seqnum", last_decoded_sequence_number);
// Erase all sequence numbers from the NACK list which we won't need any
// longer.
missing_sequence_numbers_.erase(missing_sequence_numbers_.begin(),
diff --git a/webrtc/modules/video_coding/main/source/video_coding_impl.cc b/webrtc/modules/video_coding/main/source/video_coding_impl.cc
index 4ed2e80..f2ad987 100644
--- a/webrtc/modules/video_coding/main/source/video_coding_impl.cc
+++ b/webrtc/modules/video_coding/main/source/video_coding_impl.cc
@@ -1248,9 +1248,14 @@
uint32_t payloadLength,
const WebRtcRTPHeader& rtpInfo)
{
- TRACE_EVENT2("webrtc", "VCM::Packet",
- "seqnum", rtpInfo.header.sequenceNumber,
- "type", rtpInfo.frameType);
+ if (rtpInfo.frameType == kVideoFrameKey) {
+ TRACE_EVENT1("webrtc", "VCM::PacketKeyFrame",
+ "seqnum", rtpInfo.header.sequenceNumber);
+ } else {
+ TRACE_EVENT2("webrtc", "VCM::Packet",
+ "seqnum", rtpInfo.header.sequenceNumber,
+ "type", rtpInfo.frameType);
+ }
if (incomingPayload == NULL) {
// The jitter buffer doesn't handle non-zero payload lengths for packets
// without payload.
diff --git a/webrtc/video_engine/vie_encoder.cc b/webrtc/video_engine/vie_encoder.cc
index e0be252..32a6f2a 100644
--- a/webrtc/video_engine/vie_encoder.cc
+++ b/webrtc/video_engine/vie_encoder.cc
@@ -926,6 +926,7 @@
// Key frame request from remote side, signal to VCM.
WEBRTC_TRACE(webrtc::kTraceStateInfo, webrtc::kTraceVideo,
ViEId(engine_id_, channel_id_), "%s", __FUNCTION__);
+ TRACE_EVENT0("webrtc", "OnKeyFrameRequest");
int idx = 0;
{