Index: media/cast/logging/encoding_event_subscriber.cc |
diff --git a/media/cast/logging/encoding_event_subscriber.cc b/media/cast/logging/encoding_event_subscriber.cc |
index 10ced1a5cceee7e98f1ee853023291e1bc0c172c..c22efc9dc9c7110fe469f99f3fe4a3acafe6d89e 100644 |
--- a/media/cast/logging/encoding_event_subscriber.cc |
+++ b/media/cast/logging/encoding_event_subscriber.cc |
@@ -51,20 +51,24 @@ void EncodingEventSubscriber::OnReceiveFrameEvent( |
event_proto = it->second; |
} |
- event_proto->add_event_type(ToProtoEventType(frame_event.type)); |
- event_proto->add_event_timestamp_ms( |
- (frame_event.timestamp - base::TimeTicks()).InMilliseconds()); |
- |
- if (frame_event.type == kAudioFrameEncoded) { |
- event_proto->set_encoded_frame_size(frame_event.size); |
- } else if (frame_event.type == kVideoFrameEncoded) { |
- event_proto->set_encoded_frame_size(frame_event.size); |
- event_proto->set_key_frame(frame_event.key_frame); |
- } else if (frame_event.type == kAudioPlayoutDelay || |
- frame_event.type == kVideoRenderDelay) { |
- event_proto->set_delay_millis(frame_event.delay_delta.InMilliseconds()); |
+ if (event_proto->event_type_size() >= kMaxEventsPerProto) { |
Alpha Left Google
2014/04/21 18:14:04
I think we should keep as many as types as possibl
|
+ DVLOG(2) << "Too many events in frame " << frame_event.rtp_timestamp |
+ << ". Dropping frame event."; |
+ } else { |
+ event_proto->add_event_type(ToProtoEventType(frame_event.type)); |
+ event_proto->add_event_timestamp_ms( |
+ (frame_event.timestamp - base::TimeTicks()).InMilliseconds()); |
+ |
+ if (frame_event.type == kAudioFrameEncoded) { |
+ event_proto->set_encoded_frame_size(frame_event.size); |
+ } else if (frame_event.type == kVideoFrameEncoded) { |
+ event_proto->set_encoded_frame_size(frame_event.size); |
+ event_proto->set_key_frame(frame_event.key_frame); |
+ } else if (frame_event.type == kAudioPlayoutDelay || |
+ frame_event.type == kVideoRenderDelay) { |
+ event_proto->set_delay_millis(frame_event.delay_delta.InMilliseconds()); |
+ } |
} |
- |
TruncateFrameEventMapIfNeeded(); |
} |
@@ -107,15 +111,28 @@ void EncodingEventSubscriber::OnReceivePacketEvent( |
} |
} |
if (!base_packet_event_proto) { |
- base_packet_event_proto = event_proto->add_base_packet_event(); |
- base_packet_event_proto->set_packet_id(packet_event.packet_id); |
+ if (event_proto->base_packet_event_size() >= kMaxPacketsPerFrame) { |
+ DVLOG(3) << "Too many packets in AggregatedPacketEvent " |
+ << packet_event.rtp_timestamp << ". Dropping packet event."; |
+ } else { |
+ base_packet_event_proto = event_proto->add_base_packet_event(); |
+ base_packet_event_proto->set_packet_id(packet_event.packet_id); |
+ } |
} |
} |
- base_packet_event_proto->add_event_type( |
- ToProtoEventType(packet_event.type)); |
- base_packet_event_proto->add_event_timestamp_ms( |
- (packet_event.timestamp - base::TimeTicks()).InMilliseconds()); |
+ if (base_packet_event_proto) { |
+ if (base_packet_event_proto->event_type_size() >= kMaxEventsPerProto) { |
+ DVLOG(3) << "Too many events in packet " |
+ << packet_event.rtp_timestamp << ", " |
+ << packet_event.packet_id << ". Dropping packet event."; |
+ } else { |
+ base_packet_event_proto->add_event_type( |
+ ToProtoEventType(packet_event.type)); |
+ base_packet_event_proto->add_event_timestamp_ms( |
+ (packet_event.timestamp - base::TimeTicks()).InMilliseconds()); |
+ } |
+ } |
TruncatePacketEventMapIfNeeded(); |
} |