From 5aa2d344d7e0b8940794d3c4422f81ac81249022 Mon Sep 17 00:00:00 2001 From: kjellander Date: Tue, 19 Apr 2016 08:18:42 -0700 Subject: [PATCH] Revert of Use initial bitrates for software VP8. (patchset #3 id:40001 of https://codereview.webrtc.org/1893313002/ ) Reason for revert: Likely broke Chromium: https://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux%20Tester/builds/26838 https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win10%20Tester/builds/2224 Original issue's description: > Use initial bitrates for software VP8. > > Makes the software encoder start at VGA as well, since ~300k isn't good > enough to produce a good HD stream. > > BUG=webrtc:5678 > R=glaznev@webrtc.org, stefan@webrtc.org > > Committed: https://crrev.com/e1da27e543bdb1983638118172a4efd599ca51b5 > Cr-Commit-Position: refs/heads/master@{#12428} TBR=stefan@webrtc.org,glaznev@webrtc.org,pbos@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:5678 Review URL: https://codereview.webrtc.org/1898183002 Cr-Commit-Position: refs/heads/master@{#12430} --- webrtc/media/base/videoengine_unittest.h | 11 +---------- webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc | 5 +++-- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/webrtc/media/base/videoengine_unittest.h b/webrtc/media/base/videoengine_unittest.h index 60f1155931..394b9c9a8e 100644 --- a/webrtc/media/base/videoengine_unittest.h +++ b/webrtc/media/base/videoengine_unittest.h @@ -1063,16 +1063,7 @@ class VideoMediaChannelTest : public testing::Test, void TwoStreamsSendAndReceive(const cricket::VideoCodec& codec) { SetUpSecondStream(); // Test sending and receiving on first stream. - 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())); + SendAndReceive(codec); // 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 41257133c5..29a40e673b 100644 --- a/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc +++ b/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc @@ -606,8 +606,9 @@ int VP8EncoderImpl::InitEncode(const VideoCodec* inst, // go back down). const int kLowQpThreshold = 29; const int kDisabledBadQpThreshold = 100; - quality_scaler_.Init(kLowQpThreshold, kDisabledBadQpThreshold, false, - codec_.startBitrate, codec_.width, codec_.height, + // 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, codec_.maxFramerate); // Only apply scaling to improve for single-layer streams. The scaling metrics