Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1007)

Unified Diff: media/cast/logging/encoding_event_subscriber.cc

Issue 241833002: Cast: Limit number of events/packets in EncodingEventSubscriber protos. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();
}

Powered by Google App Engine
This is Rietveld 408576698