Index: webrtc/media/base/videobroadcaster.cc |
diff --git a/webrtc/media/base/videobroadcaster.cc b/webrtc/media/base/videobroadcaster.cc |
index 6655d9365631a690627b7d3fd9dbc55a7e9a3ec5..5d0edeb6dfe4f9dc3129ba19231716f8caea03f5 100644 |
--- a/webrtc/media/base/videobroadcaster.cc |
+++ b/webrtc/media/base/videobroadcaster.cc |
@@ -89,18 +89,20 @@ void VideoBroadcaster::UpdateWants() { |
(*sink.wants.max_pixel_count < *wants.max_pixel_count))) { |
wants.max_pixel_count = sink.wants.max_pixel_count; |
} |
- // wants.max_pixel_count_step_up == MIN(sink.wants.max_pixel_count_step_up) |
- if (sink.wants.max_pixel_count_step_up && |
- (!wants.max_pixel_count_step_up || |
- (*sink.wants.max_pixel_count_step_up < |
- *wants.max_pixel_count_step_up))) { |
- wants.max_pixel_count_step_up = sink.wants.max_pixel_count_step_up; |
+ // Select the minimum requested target_pixel_count, if any, of all sinks so |
+ // that we don't over utilize the resources for any one. |
+ // TODO(sprang): Consider using the median instead, since the limit can be |
+ // expressed by max_pixel_count. |
+ if (sink.wants.target_pixel_count && |
+ (!wants.target_pixel_count || |
+ (*sink.wants.target_pixel_count < *wants.target_pixel_count))) { |
+ wants.target_pixel_count = sink.wants.target_pixel_count; |
} |
} |
- if (wants.max_pixel_count && wants.max_pixel_count_step_up && |
- *wants.max_pixel_count_step_up >= *wants.max_pixel_count) { |
- wants.max_pixel_count_step_up = Optional<int>(); |
+ if (wants.max_pixel_count && wants.target_pixel_count && |
+ *wants.target_pixel_count >= *wants.max_pixel_count) { |
+ wants.target_pixel_count = wants.max_pixel_count; |
} |
current_wants_ = wants; |
} |