diff --git a/webrtc/media/base/videoengine_unittest.h b/webrtc/media/base/videoengine_unittest.h index 394b9c9a8e..60f1155931 100644 --- a/webrtc/media/base/videoengine_unittest.h +++ b/webrtc/media/base/videoengine_unittest.h @@ -1063,7 +1063,16 @@ class VideoMediaChannelTest : public testing::Test, void TwoStreamsSendAndReceive(const cricket::VideoCodec& codec) { SetUpSecondStream(); // Test sending and receiving on first stream. - SendAndReceive(codec); + EXPECT_TRUE(SetOneCodec(codec)); + EXPECT_TRUE(SetSend(true)); + EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_)); + EXPECT_EQ(0, renderer_.num_rendered_frames()); + EXPECT_TRUE(SendFrame()); + // Since multiple streams share this link we should be receiving smaller + // initial frames (start at QVGA since shared bitrate is 150k each). + EXPECT_FRAME_WAIT(1, codec.width / 2, codec.height / 2, kTimeout); + std::unique_ptr p(GetRtpPacket(0)); + EXPECT_EQ(codec.id, GetPayloadType(p.get())); // Test sending and receiving on second stream. EXPECT_EQ_WAIT(1, renderer2_.num_rendered_frames(), kTimeout); EXPECT_GT(NumRtpPackets(), 0); diff --git a/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc b/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc index 29a40e673b..41257133c5 100644 --- a/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc +++ b/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc @@ -606,9 +606,8 @@ int VP8EncoderImpl::InitEncode(const VideoCodec* inst, // go back down). const int kLowQpThreshold = 29; const int kDisabledBadQpThreshold = 100; - // TODO(glaznev/sprang): consider passing codec initial bitrate to quality - // scaler to avoid starting with HD for low initial bitrates. - quality_scaler_.Init(kLowQpThreshold, kDisabledBadQpThreshold, false, 0, 0, 0, + quality_scaler_.Init(kLowQpThreshold, kDisabledBadQpThreshold, false, + codec_.startBitrate, codec_.width, codec_.height, codec_.maxFramerate); // Only apply scaling to improve for single-layer streams. The scaling metrics