WebRtcVideoMediaChannel::SetSendParams: Don't cap resolution

BUG=3936
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/30039004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7698 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/talk/media/base/fakevideocapturer.h b/talk/media/base/fakevideocapturer.h
index e8d49c0..ffd8d51 100644
--- a/talk/media/base/fakevideocapturer.h
+++ b/talk/media/base/fakevideocapturer.h
@@ -59,10 +59,16 @@
         cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
     formats.push_back(cricket::VideoFormat(640, 480,
         cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
+    formats.push_back(cricket::VideoFormat(640, 400,
+        cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
     formats.push_back(cricket::VideoFormat(320, 240,
         cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
+    formats.push_back(cricket::VideoFormat(320, 200,
+        cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
     formats.push_back(cricket::VideoFormat(160, 120,
         cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
+    formats.push_back(cricket::VideoFormat(160, 100,
+        cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
     ResetSupportedFormats(formats);
   }
   ~FakeVideoCapturer() {
diff --git a/talk/media/base/videocapturer_unittest.cc b/talk/media/base/videocapturer_unittest.cc
index 1760d8a..286a510 100644
--- a/talk/media/base/videocapturer_unittest.cc
+++ b/talk/media/base/videocapturer_unittest.cc
@@ -341,7 +341,7 @@
   EXPECT_EQ(cricket::VideoFormat::FpsToInterval(30), best.interval);
 
   desired.width = 480;
-  desired.height = 270;
+  desired.height = 320;
   // Ask for HVGA. Get VGA.
   EXPECT_TRUE(capturer_.GetBestCaptureFormat(desired, &best));
   EXPECT_EQ(640, best.width);
diff --git a/talk/media/webrtc/webrtcvideoengine.cc b/talk/media/webrtc/webrtcvideoengine.cc
index 88acc3f..67b983e 100644
--- a/talk/media/webrtc/webrtcvideoengine.cc
+++ b/talk/media/webrtc/webrtcvideoengine.cc
@@ -3872,18 +3872,10 @@
   CapturedFrameInfo frame;
   send_channel->last_captured_frame_info().Get(&frame);
 
-  // TODO(pthatcher): This checking of the max height and width is
-  // only needed because some unit tests bypass the VideoAdapter, and
-  // others expect behavior from the adapter different than what it
-  // actually does.  We should fix the tests and remove this block.
-  VideoFormat max = send_channel->adapt_format();
-  size_t max_width = static_cast<size_t>(max.width);
-  size_t max_height = static_cast<size_t>(max.height);
-  if (!send_channel->last_captured_frame_info().IsSet() ||
-      (!frame.screencast &&
-       (frame.width > max_width || frame.height > max_height))) {
-    frame.width = max_width;
-    frame.height = max_height;
+  const VideoFormat max = send_channel->adapt_format();
+  if (!send_channel->last_captured_frame_info().IsSet()) {
+    frame.width = static_cast<size_t>(max.width);
+    frame.height = static_cast<size_t>(max.height);
   }
 
   webrtc::VideoCodec codec;
diff --git a/talk/media/webrtc/webrtcvideoengine_unittest.cc b/talk/media/webrtc/webrtcvideoengine_unittest.cc
index 00d6e4b..5617d31 100644
--- a/talk/media/webrtc/webrtcvideoengine_unittest.cc
+++ b/talk/media/webrtc/webrtcvideoengine_unittest.cc
@@ -677,10 +677,10 @@
   SendI420Frame(kVP8Codec.width / 2, kVP8Codec.height / 2);
   VerifyVP8SendCodec(channel_num, kVP8Codec.width / 2, kVP8Codec.height / 2);
 
-  // Capture a frame bigger than send_codec_ and verify vie send codec has been
-  // reset (and clipped) to send_codec_.
+  // Capture a bigger frame and verify vie send codec has been reset to
+  // the new size.
   SendI420Frame(kVP8Codec.width * 2, kVP8Codec.height * 2);
-  VerifyVP8SendCodec(channel_num, kVP8Codec.width, kVP8Codec.height);
+  VerifyVP8SendCodec(channel_num, kVP8Codec.width * 2, kVP8Codec.height * 2);
 }
 
 // Test that we set our inbound codecs properly.
diff --git a/talk/session/media/channelmanager_unittest.cc b/talk/session/media/channelmanager_unittest.cc
index 4c6f4ab..88cd327 100644
--- a/talk/session/media/channelmanager_unittest.cc
+++ b/talk/session/media/channelmanager_unittest.cc
@@ -215,13 +215,13 @@
   VideoEncoderConfig config(codec, 1, 2);
   EXPECT_TRUE(cm_->Init());
   // A capturer created before the default encoder config is set will have no
-  // set aspect ratio, so it'll be 4:3 (based on the fake video capture impl).
+  // set aspect ratio, so it'll be 16:10 (based on the fake video capture impl).
   VideoCapturer* capturer = cm_->CreateVideoCapturer();
   ASSERT_TRUE(capturer != NULL);
   EXPECT_EQ(CS_RUNNING, capturer->Start(format));
   GetCapturerFrameSize size(capturer);
   EXPECT_EQ(640u, size.width);
-  EXPECT_EQ(480u, size.height);
+  EXPECT_EQ(400u, size.height);
   delete capturer;
   // Try again, but with the encoder config set to 16:9.
   EXPECT_TRUE(cm_->SetDefaultVideoEncoderConfig(config));