Chromium Code Reviews| Index: webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc |
| diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc |
| index 32ba26f54b88a5e9eaa6d2cf4d2c785aa857405e..1e01a1536e6a99a66569d97062a137dbbabe75bf 100644 |
| --- a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc |
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc |
| @@ -43,7 +43,8 @@ RTPSenderVideo::RTPSenderVideo(Clock* clock, RTPSenderInterface* rtpSender) |
| key_fec_params_(), |
| producer_fec_(&fec_), |
| _fecOverheadRate(clock, NULL), |
| - _videoBitrate(clock, NULL) { |
| + _videoBitrate(clock, NULL), |
| + sent_first_frame_(false) { |
| memset(&delta_fec_params_, 0, sizeof(delta_fec_params_)); |
| memset(&key_fec_params_, 0, sizeof(key_fec_params_)); |
| delta_fec_params_.max_fec_frames = key_fec_params_.max_fec_frames = 1; |
| @@ -232,6 +233,7 @@ int32_t RTPSenderVideo::SendVideo(const RtpVideoCodecTypes videoType, |
| StorageType storage; |
| bool fec_enabled; |
| + bool first_frame; |
| { |
| CriticalSectionScoped cs(crit_.get()); |
| FecProtectionParams* fec_params = |
| @@ -239,6 +241,10 @@ int32_t RTPSenderVideo::SendVideo(const RtpVideoCodecTypes videoType, |
| producer_fec_.SetFecParameters(fec_params, 0); |
| storage = packetizer->GetStorageType(_retransmissionSettings); |
| fec_enabled = fec_enabled_; |
| + first_frame = !sent_first_frame_; |
| + if (first_frame) { |
| + sent_first_frame_ = true; |
| + } |
|
pthatcher1
2016/03/05 01:17:05
Similar here
skvlad
2016/03/07 19:36:53
Done.
|
| } |
| // Register CVO rtp header extension at the first time when we receive a frame |
| @@ -260,6 +266,7 @@ int32_t RTPSenderVideo::SendVideo(const RtpVideoCodecTypes videoType, |
| packetizer->SetPayloadData(data, payload_bytes_to_send, frag); |
| + bool first = true; |
| bool last = false; |
| while (!last) { |
| uint8_t dataBuffer[IP_PACKET_SIZE] = {0}; |
| @@ -268,6 +275,7 @@ int32_t RTPSenderVideo::SendVideo(const RtpVideoCodecTypes videoType, |
| &payload_bytes_in_packet, &last)) { |
| return -1; |
| } |
| + |
| // Write RTP header. |
| // Set marker bit true if this is the last packet in frame. |
| _rtpSender.BuildRTPheader( |
| @@ -309,6 +317,16 @@ int32_t RTPSenderVideo::SendVideo(const RtpVideoCodecTypes videoType, |
| _rtpSender.SequenceNumber(), captureTimeStamp, |
| capture_time_ms, storage); |
| } |
| + |
| + if (first_frame) { |
| + if (first) { |
| + LOG(LS_INFO) << "First RTP packet of the first video frame sent"; |
| + } |
| + if (last) { |
| + LOG(LS_INFO) << "Last RTP packet of the first video frame sent"; |
|
pthatcher1
2016/03/05 01:17:05
Nit: Same here; put "Sent first ..." or "Sent las
skvlad
2016/03/07 19:36:53
Done.
|
| + } |
| + } |
| + first = false; |
| } |
| TRACE_EVENT_ASYNC_END1( |