OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/media/media_stream_video_source.h" | 5 #include "content/renderer/media/media_stream_video_source.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 | 166 |
167 if (constraint_name == MediaStreamVideoSource::kMinWidth) { | 167 if (constraint_name == MediaStreamVideoSource::kMinWidth) { |
168 return (value <= format->frame_size.width()); | 168 return (value <= format->frame_size.width()); |
169 } else if (constraint_name == MediaStreamVideoSource::kMaxWidth) { | 169 } else if (constraint_name == MediaStreamVideoSource::kMaxWidth) { |
170 return value > 0.0; | 170 return value > 0.0; |
171 } else if (constraint_name == MediaStreamVideoSource::kMinHeight) { | 171 } else if (constraint_name == MediaStreamVideoSource::kMinHeight) { |
172 return (value <= format->frame_size.height()); | 172 return (value <= format->frame_size.height()); |
173 } else if (constraint_name == MediaStreamVideoSource::kMaxHeight) { | 173 } else if (constraint_name == MediaStreamVideoSource::kMaxHeight) { |
174 return value > 0.0; | 174 return value > 0.0; |
175 } else if (constraint_name == MediaStreamVideoSource::kMinFrameRate) { | 175 } else if (constraint_name == MediaStreamVideoSource::kMinFrameRate) { |
176 return (value <= format->frame_rate); | 176 return (value > 0.0) && (value <= format->frame_rate); |
177 } else if (constraint_name == MediaStreamVideoSource::kMaxFrameRate) { | 177 } else if (constraint_name == MediaStreamVideoSource::kMaxFrameRate) { |
178 if (value == 0.0) { | 178 if (value <= 0.0) { |
179 // The frame rate is set by constraint. | 179 // The frame rate is set by constraint. |
180 // Don't allow 0 as frame rate if it is a mandatory constraint. | 180 // Don't allow 0 as frame rate if it is a mandatory constraint. |
181 // Set the frame rate to 1 if it is not mandatory. | 181 // Set the frame rate to 1 if it is not mandatory. |
182 if (mandatory) { | 182 if (mandatory) { |
183 return false; | 183 return false; |
184 } else { | 184 } else { |
185 value = 1.0; | 185 value = 1.0; |
186 } | 186 } |
187 } | 187 } |
188 format->frame_rate = | 188 format->frame_rate = |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
380 // Tab capture and Screen capture needs the maximum requested height | 380 // Tab capture and Screen capture needs the maximum requested height |
381 // and width to decide on the resolution. | 381 // and width to decide on the resolution. |
382 int max_requested_width = 0; | 382 int max_requested_width = 0; |
383 GetMandatoryConstraintValueAsInteger(constraints, kMaxWidth, | 383 GetMandatoryConstraintValueAsInteger(constraints, kMaxWidth, |
384 &max_requested_width); | 384 &max_requested_width); |
385 | 385 |
386 int max_requested_height = 0; | 386 int max_requested_height = 0; |
387 GetMandatoryConstraintValueAsInteger(constraints, kMaxHeight, | 387 GetMandatoryConstraintValueAsInteger(constraints, kMaxHeight, |
388 &max_requested_height); | 388 &max_requested_height); |
389 | 389 |
| 390 double max_requested_frame_rate; |
| 391 if (!GetConstraintValueAsDouble(constraints, kMaxFrameRate, |
| 392 &max_requested_frame_rate)) { |
| 393 max_requested_frame_rate = kDefaultFrameRate; |
| 394 } |
| 395 |
390 state_ = RETRIEVING_CAPABILITIES; | 396 state_ = RETRIEVING_CAPABILITIES; |
391 GetCurrentSupportedFormats( | 397 GetCurrentSupportedFormats( |
392 max_requested_width, | 398 max_requested_width, |
393 max_requested_height, | 399 max_requested_height, |
| 400 max_requested_frame_rate, |
394 base::Bind(&MediaStreamVideoSource::OnSupportedFormats, | 401 base::Bind(&MediaStreamVideoSource::OnSupportedFormats, |
395 weak_factory_.GetWeakPtr())); | 402 weak_factory_.GetWeakPtr())); |
396 | 403 |
397 break; | 404 break; |
398 } | 405 } |
399 case STARTING: | 406 case STARTING: |
400 case RETRIEVING_CAPABILITIES: { | 407 case RETRIEVING_CAPABILITIES: { |
401 // The |callback| will be triggered once the source has started or | 408 // The |callback| will be triggered once the source has started or |
402 // the capabilities have been retrieved. | 409 // the capabilities have been retrieved. |
403 break; | 410 break; |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
610 : track(track), | 617 : track(track), |
611 frame_callback(frame_callback), | 618 frame_callback(frame_callback), |
612 constraints(constraints), | 619 constraints(constraints), |
613 callback(callback) { | 620 callback(callback) { |
614 } | 621 } |
615 | 622 |
616 MediaStreamVideoSource::RequestedConstraints::~RequestedConstraints() { | 623 MediaStreamVideoSource::RequestedConstraints::~RequestedConstraints() { |
617 } | 624 } |
618 | 625 |
619 } // namespace content | 626 } // namespace content |
OLD | NEW |