Revert "googBandwidthLimitedResolution stat is not always set depending on configuration."

This reverts commit 59283e4c66d038a00923736685457f4b53f922fe.

Reason for revert: This CL is preventing rolls into Chromium because it fails to compile with MSVC.

Sample error log:

[13258/43857] CXX obj/third_party/webrtc/video/video/send_statistics_proxy.obj
FAILED: obj/third_party/webrtc/video/video/send_statistics_proxy.obj 
ninja -t msvc -e environment.x64 -- E:\b\c\goma_client/gomacc.exe "e:\b\c\win_toolchain\vs_files\a9e1098bba66d2acccc377d5ee81265910f29272\vc\tools\msvc\14.11.25503\bin\hostx64\x64/cl.exe" /nologo /showIncludes  @obj/third_party/webrtc/video/video/send_statistics_proxy.obj.rsp /c ../../third_party/webrtc/video/send_statistics_proxy.cc /Foobj/third_party/webrtc/video/video/send_statistics_proxy.obj /Fd"obj/third_party/webrtc/video/video_cc.pdb"
../../third_party/webrtc/video/send_statistics_proxy.cc(217): error C2220: warning treated as error - no 'object' file generated
../../third_party/webrtc/video/send_statistics_proxy.cc(217): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
../../third_party/webrtc/video/send_statistics_proxy.cc(632): warning C4267: '=': conversion from 'size_t' to 'uint32_t', possible loss of data


Original change's description:
> googBandwidthLimitedResolution stat is not always set depending on configuration.
> 
> Currently |bw_resolutions_disabled| is set per VP8EncoderImpl instance and reported via
> OnEncodedImage callback.
> 
> Instead move logic to SendStatisticsProxy to determine if resolution is bw limited or not based
> on info that is reported to SendStatisticsProxy::OnEncodedImage.
> 
> Bug: webrtc:8643
> Change-Id: I6c148e3507a0f04a793775b9f84ce54028b64d0f
> Reviewed-on: https://webrtc-review.googlesource.com/31460
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Commit-Queue: Åsa Persson <asapersson@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21249}

TBR=brandtr@webrtc.org,asapersson@webrtc.org,stefan@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:8643
Change-Id: Ib9ef55b8894ea72236a5dc1e9a839adecd401afb
Reviewed-on: https://webrtc-review.googlesource.com/33100
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21284}
This commit is contained in:
Guido Urdaneta
2017-12-14 17:01:38 +00:00
committed by Commit Bot
parent 7284e8a650
commit 62e9ebe589
7 changed files with 87 additions and 208 deletions

View File

@ -254,6 +254,8 @@ TEST_F(TestVp8Impl, OnEncodedImageReportsInfo) {
EXPECT_EQ(kWidth, static_cast<int>(encoded_cb_.encoded_frame_._encodedWidth));
EXPECT_EQ(kHeight,
static_cast<int>(encoded_cb_.encoded_frame_._encodedHeight));
EXPECT_EQ(-1, // Disabled for single stream.
encoded_cb_.encoded_frame_.adapt_reason_.bw_resolutions_disabled);
}
// We only test the encoder here, since the decoded frame rotation is set based

View File

@ -115,6 +115,15 @@ bool ValidSimulcastTemporalLayers(const VideoCodec& codec, int num_streams) {
return true;
}
int NumStreamsDisabled(const std::vector<bool>& streams) {
int num_disabled = 0;
for (bool stream : streams) {
if (!stream)
++num_disabled;
}
return num_disabled;
}
bool GetGfBoostPercentageFromFieldTrialGroup(int* boost_percentage) {
std::string group = webrtc::field_trial::FindFullName(kVp8GfBoostFieldTrial);
if (group.empty())
@ -865,6 +874,9 @@ void VP8EncoderImpl::PopulateCodecSpecific(
int VP8EncoderImpl::GetEncodedPartitions(
const TemporalLayers::FrameConfig tl_configs[],
const VideoFrame& input_image) {
int bw_resolutions_disabled =
(encoders_.size() > 1) ? NumStreamsDisabled(send_stream_) : -1;
int stream_idx = static_cast<int>(encoders_.size()) - 1;
int result = WEBRTC_VIDEO_CODEC_OK;
for (size_t encoder_idx = 0; encoder_idx < encoders_.size();
@ -937,6 +949,9 @@ int VP8EncoderImpl::GetEncodedPartitions(
codec_.simulcastStream[stream_idx].height;
encoded_images_[encoder_idx]._encodedWidth =
codec_.simulcastStream[stream_idx].width;
// Report once per frame (lowest stream always sent).
encoded_images_[encoder_idx].adapt_reason_.bw_resolutions_disabled =
(stream_idx == 0) ? bw_resolutions_disabled : -1;
int qp_128 = -1;
vpx_codec_control(&encoders_[encoder_idx], VP8E_GET_LAST_QUANTIZER,
&qp_128);