diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc b/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc index 3b9659a59..bfb5f509a 100644 --- a/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc +++ b/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc @@ -918,6 +918,8 @@ void RTCPReceiver::HandlePLI(RTCPUtility::RTCPParserV2& rtcpParser, 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 b4cdf696e..cfc7c6627 100644 --- a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc +++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc @@ -330,9 +330,6 @@ int32_t RTPSender::SendOutgoingData( 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 @@ int32_t RTPSender::SendOutgoingData( 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 da91b6817..ea26032b7 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 @@ bool VCMJitterBuffer::HandleTooOldPackets(uint16_t latest_sequence_number) { 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 4ed2e8057..f2ad98750 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 @@ VideoCodingModuleImpl::IncomingPacket(const uint8_t* incomingPayload, 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 e0be2523f..32a6f2a71 100644 --- a/webrtc/video_engine/vie_encoder.cc +++ b/webrtc/video_engine/vie_encoder.cc @@ -926,6 +926,7 @@ void ViEEncoder::OnReceivedIntraFrameRequest(uint32_t ssrc) { // 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; {