diff options
Diffstat (limited to 'app/webrtc/videosource.cc')
-rw-r--r-- | app/webrtc/videosource.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/app/webrtc/videosource.cc b/app/webrtc/videosource.cc index 8770e6d..589341d 100644 --- a/app/webrtc/videosource.cc +++ b/app/webrtc/videosource.cc @@ -28,6 +28,7 @@ #include "talk/app/webrtc/videosource.h" #include <vector> +#include <cstdlib> #include "talk/app/webrtc/mediaconstraintsinterface.h" #include "talk/session/media/channelmanager.h" @@ -254,11 +255,15 @@ const cricket::VideoFormat& GetBestCaptureFormat( std::vector<cricket::VideoFormat>::const_iterator it = formats.begin(); std::vector<cricket::VideoFormat>::const_iterator best_it = formats.begin(); - int best_diff = abs(default_area - it->width* it->height); + int best_diff_area = std::abs(default_area - it->width * it->height); + int64 best_diff_interval = kDefaultFormat.interval; for (; it != formats.end(); ++it) { - int diff = abs(default_area - it->width* it->height); - if (diff < best_diff) { - best_diff = diff; + int diff_area = std::abs(default_area - it->width * it->height); + int64 diff_interval = std::abs(kDefaultFormat.interval - it->interval); + if (diff_area < best_diff_area || + (diff_area == best_diff_area && diff_interval < best_diff_interval)) { + best_diff_area = diff_area; + best_diff_interval = diff_interval; best_it = it; } } |