| Index: media/cast/rtcp/rtcp.cc
|
| diff --git a/media/cast/rtcp/rtcp.cc b/media/cast/rtcp/rtcp.cc
|
| index 234a1e97e28bb0596bcdc8cbe0ca8214f2b7cefa..0944594dceb0902590fedd92f67fee1c84bc575f 100644
|
| --- a/media/cast/rtcp/rtcp.cc
|
| +++ b/media/cast/rtcp/rtcp.cc
|
| @@ -68,45 +68,7 @@ class LocalRtcpReceiverFeedback : public RtcpReceiverFeedback {
|
|
|
| virtual void OnReceivedReceiverLog(const RtcpReceiverLogMessage& receiver_log)
|
| OVERRIDE {
|
| - // Add received log messages into our log system.
|
| - RtcpReceiverLogMessage::const_iterator it = receiver_log.begin();
|
| -
|
| - for (; it != receiver_log.end(); ++it) {
|
| - uint32 rtp_timestamp = it->rtp_timestamp_;
|
| -
|
| - RtcpReceiverEventLogMessages::const_iterator event_it =
|
| - it->event_log_messages_.begin();
|
| - for (; event_it != it->event_log_messages_.end(); ++event_it) {
|
| - switch (event_it->type) {
|
| - case kAudioPacketReceived:
|
| - case kVideoPacketReceived:
|
| - case kDuplicateAudioPacketReceived:
|
| - case kDuplicateVideoPacketReceived:
|
| - cast_environment_->Logging()->InsertPacketEvent(
|
| - event_it->event_timestamp, event_it->type, rtp_timestamp,
|
| - kFrameIdUnknown, event_it->packet_id, 0, 0);
|
| - break;
|
| - case kAudioAckSent:
|
| - case kVideoAckSent:
|
| - case kAudioFrameDecoded:
|
| - case kVideoFrameDecoded:
|
| - cast_environment_->Logging()->InsertFrameEvent(
|
| - event_it->event_timestamp, event_it->type, rtp_timestamp,
|
| - kFrameIdUnknown);
|
| - break;
|
| - case kAudioPlayoutDelay:
|
| - case kVideoRenderDelay:
|
| - cast_environment_->Logging()->InsertFrameEventWithDelay(
|
| - event_it->event_timestamp, event_it->type, rtp_timestamp,
|
| - kFrameIdUnknown, event_it->delay_delta);
|
| - break;
|
| - default:
|
| - VLOG(2) << "Received log message via RTCP that we did not expect: "
|
| - << static_cast<int>(event_it->type);
|
| - break;
|
| - }
|
| - }
|
| - }
|
| + rtcp_->OnReceivedReceiverLog(receiver_log);
|
| }
|
|
|
| virtual void OnReceivedSenderLog(
|
| @@ -115,7 +77,7 @@ class LocalRtcpReceiverFeedback : public RtcpReceiverFeedback {
|
|
|
| for (; it != sender_log.end(); ++it) {
|
| uint32 rtp_timestamp = it->rtp_timestamp;
|
| - CastLoggingEvent log_event = kUnknown;
|
| + CastLoggingEvent log_event = UNKNOWN;
|
|
|
| // These events are provided to know the status of frames that never
|
| // reached the receiver. The timing information for these events are not
|
| @@ -123,18 +85,13 @@ class LocalRtcpReceiverFeedback : public RtcpReceiverFeedback {
|
| switch (it->frame_status) {
|
| case transport::kRtcpSenderFrameStatusDroppedByFlowControl:
|
| // A frame that have been dropped by the flow control would have
|
| - // kVideoFrameCaptureBegin as its last event in the log.
|
| - log_event = kVideoFrameCaptureBegin;
|
| - break;
|
| - case transport::kRtcpSenderFrameStatusDroppedByEncoder:
|
| - // A frame that have been dropped by the encoder would have
|
| - // kVideoFrameSentToEncoder as its last event in the log.
|
| - log_event = kVideoFrameSentToEncoder;
|
| + // FRAME_CAPTURE_BEGIN as its last event in the log.
|
| + log_event = FRAME_CAPTURE_BEGIN;
|
| break;
|
| case transport::kRtcpSenderFrameStatusSentToNetwork:
|
| // A frame that have be encoded is always sent to the network. We
|
| // do not add a new log entry for this.
|
| - log_event = kVideoFrameEncoded;
|
| + log_event = FRAME_ENCODED;
|
| break;
|
| default:
|
| continue;
|
| @@ -145,7 +102,7 @@ class LocalRtcpReceiverFeedback : public RtcpReceiverFeedback {
|
| // we need to send in one.
|
| base::TimeTicks now = cast_environment_->Clock()->NowTicks();
|
| cast_environment_->Logging()->InsertFrameEvent(
|
| - now, log_event, rtp_timestamp, kFrameIdUnknown);
|
| + now, log_event, VIDEO_EVENT, rtp_timestamp, kFrameIdUnknown);
|
| }
|
| }
|
|
|
| @@ -160,7 +117,7 @@ Rtcp::Rtcp(scoped_refptr<CastEnvironment> cast_environment,
|
| transport::PacedPacketSender* paced_packet_sender,
|
| RtpReceiverStatistics* rtp_receiver_statistics, RtcpMode rtcp_mode,
|
| const base::TimeDelta& rtcp_interval, uint32 local_ssrc,
|
| - uint32 remote_ssrc, const std::string& c_name)
|
| + uint32 remote_ssrc, const std::string& c_name, bool is_audio)
|
| : cast_environment_(cast_environment),
|
| transport_sender_(transport_sender),
|
| rtcp_interval_(rtcp_interval),
|
| @@ -178,7 +135,8 @@ Rtcp::Rtcp(scoped_refptr<CastEnvironment> cast_environment,
|
| last_received_ntp_seconds_(0),
|
| last_received_ntp_fraction_(0),
|
| min_rtt_(base::TimeDelta::FromMilliseconds(kMaxRttMs)),
|
| - number_of_rtt_in_avg_(0) {
|
| + number_of_rtt_in_avg_(0),
|
| + is_audio_(is_audio) {
|
| rtcp_receiver_.reset(new RtcpReceiver(cast_environment, sender_feedback,
|
| receiver_feedback_.get(),
|
| rtt_feedback_.get(), local_ssrc));
|
| @@ -477,5 +435,42 @@ void Rtcp::UpdateNextTimeToSendRtcp() {
|
| next_time_to_send_rtcp_ = now + time_to_next;
|
| }
|
|
|
| +void Rtcp::OnReceivedReceiverLog(const RtcpReceiverLogMessage& receiver_log) {
|
| + // Add received log messages into our log system.
|
| + RtcpReceiverLogMessage::const_iterator it = receiver_log.begin();
|
| + EventMediaType media_type = is_audio_ ? AUDIO_EVENT : VIDEO_EVENT;
|
| + for (; it != receiver_log.end(); ++it) {
|
| + uint32 rtp_timestamp = it->rtp_timestamp_;
|
| +
|
| + RtcpReceiverEventLogMessages::const_iterator event_it =
|
| + it->event_log_messages_.begin();
|
| + for (; event_it != it->event_log_messages_.end(); ++event_it) {
|
| + switch (event_it->type) {
|
| + case PACKET_RECEIVED:
|
| + cast_environment_->Logging()->InsertPacketEvent(
|
| + event_it->event_timestamp, event_it->type,
|
| + media_type, rtp_timestamp,
|
| + kFrameIdUnknown, event_it->packet_id, 0, 0);
|
| + break;
|
| + case FRAME_ACK_SENT:
|
| + case FRAME_DECODED:
|
| + cast_environment_->Logging()->InsertFrameEvent(
|
| + event_it->event_timestamp, event_it->type, media_type,
|
| + rtp_timestamp, kFrameIdUnknown);
|
| + break;
|
| + case FRAME_PLAYOUT:
|
| + cast_environment_->Logging()->InsertFrameEventWithDelay(
|
| + event_it->event_timestamp, event_it->type, media_type,
|
| + rtp_timestamp, kFrameIdUnknown, event_it->delay_delta);
|
| + break;
|
| + default:
|
| + VLOG(2) << "Received log message via RTCP that we did not expect: "
|
| + << static_cast<int>(event_it->type);
|
| + break;
|
| + }
|
| + }
|
| + }
|
| +}
|
| +
|
| } // namespace cast
|
| } // namespace media
|
|
|