| 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..aa6b717d50dfa5fac36c9d85fbec8a47c78e65d5 100644
|
| --- a/media/cast/rtp_sender/rtp_sender.cc
|
| +++ b/media/cast/rtp_sender/rtp_sender.cc
|
| @@ -9,28 +9,31 @@
|
| #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) {
|
| + : 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 +85,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;
|
| }
|
|
|