diff options
author | magjed@webrtc.org <magjed@webrtc.org> | 2014-11-13 15:43:11 +0000 |
---|---|---|
committer | magjed@webrtc.org <magjed@webrtc.org> | 2014-11-13 15:43:11 +0000 |
commit | 52da44b7e61bb6cf3f36c8c4f8de1a888e2814bb (patch) | |
tree | 7a242d325dd9256fa0fc0df4d7032698f599b912 /talk | |
parent | 49ff40e32e408bc77e8c9bec6090f6aa2e445173 (diff) | |
download | webrtc-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.h | 6 | ||||
-rw-r--r-- | talk/media/base/videocapturer_unittest.cc | 2 | ||||
-rw-r--r-- | talk/media/webrtc/webrtcvideoengine.cc | 16 | ||||
-rw-r--r-- | talk/media/webrtc/webrtcvideoengine_unittest.cc | 6 | ||||
-rw-r--r-- | talk/session/media/channelmanager_unittest.cc | 4 |
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)); |