Chromium Code Reviews| Index: media/cast/rtp_sender/rtp_sender.cc |
| diff --git a/media/cast/rtp_sender/rtp_sender.cc b/media/cast/rtp_sender/rtp_sender.cc |
| index d06a503dc89018b20fa8fd4936388c3f6185c00f..3b8b1f59ecaa37fde9126b7ddaa49294f32a498d 100644 |
| --- a/media/cast/rtp_sender/rtp_sender.cc |
| +++ b/media/cast/rtp_sender/rtp_sender.cc |
| @@ -9,28 +9,32 @@ |
| #include "media/cast/cast_defines.h" |
| #include "media/cast/pacing/paced_sender.h" |
| #include "media/cast/rtcp/rtcp_defines.h" |
| +#include "net/base/big_endian.h" |
| namespace media { |
| namespace cast { |
| -RtpSender::RtpSender(base::TickClock* clock, |
| +RtpSender::RtpSender(scoped_refptr<CastEnvironment> cast_environment, |
| const AudioSenderConfig* audio_config, |
| const VideoSenderConfig* video_config, |
| PacedPacketSender* transport) |
| - : config_(), |
| - transport_(transport), |
| - clock_(clock) { |
| + : clock_(cast_environment->Clock()), |
|
Alpha Left Google
2013/11/14 00:29:24
This is not used anywhere in this file. Please rem
mikhal
2013/11/14 17:42:31
Done.
|
| + cast_environment_(cast_environment), |
| + config_(), |
| + transport_(transport) { |
| // Store generic cast config and create packetizer config. |
| DCHECK(audio_config || video_config) << "Invalid argument"; |
| if (audio_config) { |
| - storage_.reset(new PacketStorage(clock, audio_config->rtp_history_ms)); |
| + storage_.reset(new PacketStorage(cast_environment->Clock(), |
| + audio_config->rtp_history_ms)); |
| config_.audio = true; |
| config_.ssrc = audio_config->sender_ssrc; |
| config_.payload_type = audio_config->rtp_payload_type; |
| config_.frequency = audio_config->frequency; |
| config_.audio_codec = audio_config->codec; |
| } else { |
| - storage_.reset(new PacketStorage(clock, video_config->rtp_history_ms)); |
| + storage_.reset(new PacketStorage(cast_environment->Clock(), |
| + video_config->rtp_history_ms)); |
| config_.audio = false; |
| config_.ssrc = video_config->sender_ssrc; |
| config_.payload_type = video_config->rtp_payload_type; |
| @@ -82,6 +86,13 @@ void RtpSender::ResendPackets( |
| // Set a unique incremental sequence number for every packet. |
| Packet& packet = packets_to_resend.back(); |
| UpdateSequenceNumber(&packet); |
| + // Log retransmission (first extract rtp_timestamp). |
| + uint32 rtp_timestamp; |
| + net::BigEndianReader big_endian_reader(packet.data() + 4, 4); |
| + big_endian_reader.ReadU32(&rtp_timestamp); |
| + // TODO(mikhal): Consider placing the max value instead of -1. |
| + cast_environment_->Logging()->InsertPacketEvent(kPacketRetransmited, |
| + rtp_timestamp, frame_id, packet_id, -1, packet.size()); |
| // Set the size as correspond to each frame. |
| ++packet_id; |
| } |