Commit b09aeb1e authored by imcheng@chromium.org's avatar imcheng@chromium.org

Cast: Split kDuplicatePacketReceived into separate events for audio/video.

This change brings this type of event in line with the rest - having separate types
for audio / video. As a new type that is potentially sent over in RTCP is introduced,
a new RTCP encoding for that type is added as well.

This change is backwards-compatible because these events aren't being sent over in RTCP because they are not processed by ReceiverRtcpEventSubscriber.

BUG=337901

Review URL: https://codereview.chromium.org/164253003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251301 0039d316-1c4b-4281-b951-d872f2087c98
parent 65c55a0c
...@@ -198,7 +198,7 @@ void AudioReceiver::IncomingParsedRtpPacket(const uint8* payload_data, ...@@ -198,7 +198,7 @@ void AudioReceiver::IncomingParsedRtpPacket(const uint8* payload_data,
rtp_header, &duplicate); rtp_header, &duplicate);
if (duplicate) { if (duplicate) {
cast_environment_->Logging()->InsertPacketEvent( cast_environment_->Logging()->InsertPacketEvent(
now, kDuplicatePacketReceived, rtp_header.webrtc.header.timestamp, now, kDuplicateAudioPacketReceived, rtp_header.webrtc.header.timestamp,
rtp_header.frame_id, rtp_header.packet_id, rtp_header.max_packet_id, rtp_header.frame_id, rtp_header.packet_id, rtp_header.max_packet_id,
payload_size); payload_size);
// Duplicate packets are ignored. // Duplicate packets are ignored.
......
...@@ -63,7 +63,8 @@ std::string CastLoggingToString(CastLoggingEvent event) { ...@@ -63,7 +63,8 @@ std::string CastLoggingToString(CastLoggingEvent event) {
ENUM_TO_STRING(PacketRetransmitted); ENUM_TO_STRING(PacketRetransmitted);
ENUM_TO_STRING(AudioPacketReceived); ENUM_TO_STRING(AudioPacketReceived);
ENUM_TO_STRING(VideoPacketReceived); ENUM_TO_STRING(VideoPacketReceived);
ENUM_TO_STRING(DuplicatePacketReceived); ENUM_TO_STRING(DuplicateAudioPacketReceived);
ENUM_TO_STRING(DuplicateVideoPacketReceived);
case kNumOfLoggingEvents: case kNumOfLoggingEvents:
NOTREACHED(); NOTREACHED();
return ""; return "";
......
...@@ -67,7 +67,8 @@ enum CastLoggingEvent { ...@@ -67,7 +67,8 @@ enum CastLoggingEvent {
// Receive-side packet events. // Receive-side packet events.
kAudioPacketReceived, kAudioPacketReceived,
kVideoPacketReceived, kVideoPacketReceived,
kDuplicatePacketReceived, kDuplicateAudioPacketReceived,
kDuplicateVideoPacketReceived,
kNumOfLoggingEvents, kNumOfLoggingEvents,
}; };
......
...@@ -39,7 +39,10 @@ media::cast::proto::EventType ToProtoEventType(CastLoggingEvent event) { ...@@ -39,7 +39,10 @@ media::cast::proto::EventType ToProtoEventType(CastLoggingEvent event) {
TO_PROTO_ENUM(kPacketRetransmitted, PACKET_RETRANSMITTED); TO_PROTO_ENUM(kPacketRetransmitted, PACKET_RETRANSMITTED);
TO_PROTO_ENUM(kAudioPacketReceived, AUDIO_PACKET_RECEIVED); TO_PROTO_ENUM(kAudioPacketReceived, AUDIO_PACKET_RECEIVED);
TO_PROTO_ENUM(kVideoPacketReceived, VIDEO_PACKET_RECEIVED); TO_PROTO_ENUM(kVideoPacketReceived, VIDEO_PACKET_RECEIVED);
TO_PROTO_ENUM(kDuplicatePacketReceived, DUPLICATE_PACKET_RECEIVED); TO_PROTO_ENUM(kDuplicateAudioPacketReceived,
DUPLICATE_AUDIO_PACKET_RECEIVED);
TO_PROTO_ENUM(kDuplicateVideoPacketReceived,
DUPLICATE_VIDEO_PACKET_RECEIVED);
case kNumOfLoggingEvents: case kNumOfLoggingEvents:
NOTREACHED(); NOTREACHED();
return media::cast::proto::UNKNOWN; return media::cast::proto::UNKNOWN;
......
...@@ -44,7 +44,8 @@ enum EventType { ...@@ -44,7 +44,8 @@ enum EventType {
// Receiver-side packet events. // Receiver-side packet events.
AUDIO_PACKET_RECEIVED = 22; AUDIO_PACKET_RECEIVED = 22;
VIDEO_PACKET_RECEIVED = 23; VIDEO_PACKET_RECEIVED = 23;
DUPLICATE_PACKET_RECEIVED = 24; DUPLICATE_AUDIO_PACKET_RECEIVED = 24;
DUPLICATE_VIDEO_PACKET_RECEIVED = 25;
} }
message AggregatedFrameEvent { message AggregatedFrameEvent {
......
...@@ -79,7 +79,8 @@ class LocalRtcpReceiverFeedback : public RtcpReceiverFeedback { ...@@ -79,7 +79,8 @@ class LocalRtcpReceiverFeedback : public RtcpReceiverFeedback {
switch (event_it->type) { switch (event_it->type) {
case kAudioPacketReceived: case kAudioPacketReceived:
case kVideoPacketReceived: case kVideoPacketReceived:
case kDuplicatePacketReceived: case kDuplicateAudioPacketReceived:
case kDuplicateVideoPacketReceived:
cast_environment_->Logging()->InsertPacketEvent( cast_environment_->Logging()->InsertPacketEvent(
event_it->event_timestamp, event_it->type, rtp_timestamp, event_it->event_timestamp, event_it->type, rtp_timestamp,
kFrameIdUnknown, event_it->packet_id, 0, 0); kFrameIdUnknown, event_it->packet_id, 0, 0);
......
...@@ -29,7 +29,9 @@ media::cast::CastLoggingEvent TranslateToLogEventFromWireFormat(uint8 event) { ...@@ -29,7 +29,9 @@ media::cast::CastLoggingEvent TranslateToLogEventFromWireFormat(uint8 event) {
case 8: case 8:
return media::cast::kVideoPacketReceived; return media::cast::kVideoPacketReceived;
case 9: case 9:
return media::cast::kDuplicatePacketReceived; return media::cast::kDuplicateAudioPacketReceived;
case 10:
return media::cast::kDuplicateVideoPacketReceived;
default: default:
// If the sender adds new log messages we will end up here until we add // If the sender adds new log messages we will end up here until we add
// the new messages in the receiver. // the new messages in the receiver.
......
...@@ -42,8 +42,10 @@ int ConvertEventTypeToWireFormat(const media::cast::CastLoggingEvent& event) { ...@@ -42,8 +42,10 @@ int ConvertEventTypeToWireFormat(const media::cast::CastLoggingEvent& event) {
return 7; return 7;
case media::cast::kVideoPacketReceived: case media::cast::kVideoPacketReceived:
return 8; return 8;
case media::cast::kDuplicatePacketReceived: case media::cast::kDuplicateAudioPacketReceived:
return 9; return 9;
case media::cast::kDuplicateVideoPacketReceived:
return 10;
default: default:
return 0; // Not an interesting event. return 0; // Not an interesting event.
} }
...@@ -645,7 +647,8 @@ void RtcpSender::BuildReceiverLog(RtcpReceiverLogMessage* receiver_log_message, ...@@ -645,7 +647,8 @@ void RtcpSender::BuildReceiverLog(RtcpReceiverLogMessage* receiver_log_message,
break; break;
case kAudioPacketReceived: case kAudioPacketReceived:
case kVideoPacketReceived: case kVideoPacketReceived:
case kDuplicatePacketReceived: case kDuplicateAudioPacketReceived:
case kDuplicateVideoPacketReceived:
big_endian_writer.WriteU16(event_message.packet_id); big_endian_writer.WriteU16(event_message.packet_id);
big_endian_writer.WriteU16(event_type_and_timestamp_delta); big_endian_writer.WriteU16(event_type_and_timestamp_delta);
break; break;
......
...@@ -443,7 +443,7 @@ void VideoReceiver::IncomingParsedRtpPacket(const uint8* payload_data, ...@@ -443,7 +443,7 @@ void VideoReceiver::IncomingParsedRtpPacket(const uint8* payload_data,
if (duplicate) { if (duplicate) {
cast_environment_->Logging()->InsertPacketEvent( cast_environment_->Logging()->InsertPacketEvent(
now, now,
kDuplicatePacketReceived, kDuplicateVideoPacketReceived,
rtp_header.webrtc.header.timestamp, rtp_header.webrtc.header.timestamp,
rtp_header.frame_id, rtp_header.frame_id,
rtp_header.packet_id, rtp_header.packet_id,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment