diff options
author | pbos@webrtc.org <pbos@webrtc.org> | 2014-11-04 15:29:29 +0000 |
---|---|---|
committer | pbos@webrtc.org <pbos@webrtc.org> | 2014-11-04 15:29:29 +0000 |
commit | e540565f11e4edc9a7f9ee9fea047680e6c10401 (patch) | |
tree | 765cfdfff094d46f17aff746a71a96ebd39919eb | |
parent | 4fb0d5af90819ec9666b847f6295b933f58c8301 (diff) | |
download | talk-e540565f11e4edc9a7f9ee9fea047680e6c10401.tar.gz |
Falling back on single-stream on multiple SSRC.
Instead of failing, use one stream. Also clamp video min bitrate.
R=stefan@webrtc.org
BUG=1788
Review URL: https://webrtc-codereview.appspot.com/31949004
git-svn-id: http://webrtc.googlecode.com/svn/trunk/talk@7615 4adac7df-926f-26a2-2b94-8c16560cd09d
-rw-r--r-- | media/webrtc/webrtcvideoengine2.cc | 11 | ||||
-rw-r--r-- | media/webrtc/webrtcvideoengine2_unittest.cc | 6 |
2 files changed, 12 insertions, 5 deletions
diff --git a/media/webrtc/webrtcvideoengine2.cc b/media/webrtc/webrtcvideoengine2.cc index a877921..d79f71d 100644 --- a/media/webrtc/webrtcvideoengine2.cc +++ b/media/webrtc/webrtcvideoengine2.cc @@ -249,8 +249,9 @@ std::vector<webrtc::VideoStream> WebRtcVideoEncoderFactory2::CreateVideoStreams( const VideoOptions& options, size_t num_streams) { if (num_streams != 1) { - LOG(LS_ERROR) << "Unsupported number of streams: " << num_streams; - return std::vector<webrtc::VideoStream>(); + LOG(LS_WARNING) << "Unsupported number of streams (" << num_streams + << "), falling back to one."; + num_streams = 1; } webrtc::VideoStream stream; @@ -261,6 +262,12 @@ std::vector<webrtc::VideoStream> WebRtcVideoEncoderFactory2::CreateVideoStreams( int min_bitrate = kMinVideoBitrate; codec.GetParam(kCodecParamMinBitrate, &min_bitrate); + // Clamp the min video bitrate, this is set from JavaScript directly and needs + // to be sanitized. + if (min_bitrate < kMinVideoBitrate) { + min_bitrate = kMinVideoBitrate; + } + int max_bitrate = kMaxVideoBitrate; codec.GetParam(kCodecParamMaxBitrate, &max_bitrate); stream.min_bitrate_bps = min_bitrate * 1000; diff --git a/media/webrtc/webrtcvideoengine2_unittest.cc b/media/webrtc/webrtcvideoengine2_unittest.cc index e45ad6d..0b85723 100644 --- a/media/webrtc/webrtcvideoengine2_unittest.cc +++ b/media/webrtc/webrtcvideoengine2_unittest.cc @@ -1634,13 +1634,13 @@ TEST_F(WebRtcVideoChannel2Test, SetSendCodecsChangesExistingStreams) { } TEST_F(WebRtcVideoChannel2Test, SetSendCodecsWithMinMaxBitrate) { - SetSendCodecsShouldWorkForBitrates("10", "20"); + SetSendCodecsShouldWorkForBitrates("100", "200"); } TEST_F(WebRtcVideoChannel2Test, SetSendCodecsRejectsMaxLessThanMinBitrate) { std::vector<VideoCodec> video_codecs = engine_.codecs(); - video_codecs[0].params[kCodecParamMinBitrate] = "30"; - video_codecs[0].params[kCodecParamMaxBitrate] = "20"; + video_codecs[0].params[kCodecParamMinBitrate] = "300"; + video_codecs[0].params[kCodecParamMaxBitrate] = "200"; EXPECT_FALSE(channel_->SetSendCodecs(video_codecs)); } |