aboutsummaryrefslogtreecommitdiff
path: root/talk
diff options
context:
space:
mode:
authormagjed@webrtc.org <magjed@webrtc.org>2014-11-13 15:43:11 +0000
committermagjed@webrtc.org <magjed@webrtc.org>2014-11-13 15:43:11 +0000
commit52da44b7e61bb6cf3f36c8c4f8de1a888e2814bb (patch)
tree7a242d325dd9256fa0fc0df4d7032698f599b912 /talk
parent49ff40e32e408bc77e8c9bec6090f6aa2e445173 (diff)
downloadwebrtc-52da44b7e61bb6cf3f36c8c4f8de1a888e2814bb.tar.gz
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
Diffstat (limited to 'talk')
-rw-r--r--talk/media/base/fakevideocapturer.h6
-rw-r--r--talk/media/base/videocapturer_unittest.cc2
-rw-r--r--talk/media/webrtc/webrtcvideoengine.cc16
-rw-r--r--talk/media/webrtc/webrtcvideoengine_unittest.cc6
-rw-r--r--talk/session/media/channelmanager_unittest.cc4
5 files changed, 16 insertions, 18 deletions
diff --git a/talk/media/base/fakevideocapturer.h b/talk/media/base/fakevideocapturer.h
index e8d49c0e83..ffd8d51843 100644
--- a/talk/media/base/fakevideocapturer.h
+++ b/talk/media/base/fakevideocapturer.h
@@ -59,10 +59,16 @@ class FakeVideoCapturer : public cricket::VideoCapturer {
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 1760d8a848..286a510907 100644
--- a/talk/media/base/videocapturer_unittest.cc
+++ b/talk/media/base/videocapturer_unittest.cc
@@ -341,7 +341,7 @@ TEST_F(VideoCapturerTest, TestResolutionMatch) {
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 88acc3f5a9..67b983eeab 100644
--- a/talk/media/webrtc/webrtcvideoengine.cc
+++ b/talk/media/webrtc/webrtcvideoengine.cc
@@ -3872,18 +3872,10 @@ bool WebRtcVideoMediaChannel::SetSendParams(
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 00d6e4b1ed..5617d313bf 100644
--- a/talk/media/webrtc/webrtcvideoengine_unittest.cc
+++ b/talk/media/webrtc/webrtcvideoengine_unittest.cc
@@ -677,10 +677,10 @@ TEST_F(WebRtcVideoEngineTestFake, ResetVieSendCodecOnNewFrameSize) {
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 4c6f4ab037..88cd327da4 100644
--- a/talk/session/media/channelmanager_unittest.cc
+++ b/talk/session/media/channelmanager_unittest.cc
@@ -215,13 +215,13 @@ TEST_F(ChannelManagerTest, DefaultCapturerAspectRatio) {
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));