| Index: webrtc/video/send_statistics_proxy_unittest.cc
|
| diff --git a/webrtc/video/send_statistics_proxy_unittest.cc b/webrtc/video/send_statistics_proxy_unittest.cc
|
| index bb404fb8bed65a29b2729a9c7055e24c8e0981c0..dae0b46a4547de43543d1cae1f71682d58c8137f 100644
|
| --- a/webrtc/video/send_statistics_proxy_unittest.cc
|
| +++ b/webrtc/video/send_statistics_proxy_unittest.cc
|
| @@ -21,11 +21,16 @@
|
| #include "webrtc/test/histogram.h"
|
|
|
| namespace webrtc {
|
| +namespace {
|
| +const uint32_t kFirstSsrc = 17;
|
| +const uint32_t kSecondSsrc = 42;
|
| +const uint32_t kFirstRtxSsrc = 18;
|
| +const uint32_t kSecondRtxSsrc = 43;
|
|
|
| -static const uint32_t kFirstSsrc = 17;
|
| -static const uint32_t kSecondSsrc = 42;
|
| -static const uint32_t kFirstRtxSsrc = 18;
|
| -static const uint32_t kSecondRtxSsrc = 43;
|
| +const int kMinRequiredSamples = 200;
|
| +const int kQpIdx0 = 21;
|
| +const int kQpIdx1 = 39;
|
| +} // namespace
|
|
|
| class SendStatisticsProxyTest : public ::testing::Test {
|
| public:
|
| @@ -310,7 +315,6 @@ TEST_F(SendStatisticsProxyTest, OnEncodedFrameTimeMeasured) {
|
|
|
| TEST_F(SendStatisticsProxyTest, SwitchContentTypeUpdatesHistograms) {
|
| test::ClearHistograms();
|
| - const int kMinRequiredSamples = 200;
|
| const int kWidth = 640;
|
| const int kHeight = 480;
|
|
|
| @@ -329,11 +333,7 @@ TEST_F(SendStatisticsProxyTest, SwitchContentTypeUpdatesHistograms) {
|
|
|
| TEST_F(SendStatisticsProxyTest, VerifyQpHistogramStats_Vp8) {
|
| test::ClearHistograms();
|
| - const int kMinRequiredSamples = 200;
|
| - const int kQpIdx0 = 21;
|
| - const int kQpIdx1 = 39;
|
| EncodedImage encoded_image;
|
| -
|
| RTPVideoHeader rtp_video_header;
|
| rtp_video_header.codec = kRtpVideoVp8;
|
|
|
| @@ -361,10 +361,7 @@ TEST_F(SendStatisticsProxyTest, VerifyQpHistogramStats_Vp8OneSsrc) {
|
| &fake_clock_, config, VideoEncoderConfig::ContentType::kRealtimeVideo));
|
|
|
| test::ClearHistograms();
|
| - const int kMinRequiredSamples = 200;
|
| - const int kQpIdx0 = 21;
|
| EncodedImage encoded_image;
|
| -
|
| RTPVideoHeader rtp_video_header;
|
| rtp_video_header.codec = kRtpVideoVp8;
|
|
|
| @@ -378,6 +375,54 @@ TEST_F(SendStatisticsProxyTest, VerifyQpHistogramStats_Vp8OneSsrc) {
|
| EXPECT_EQ(kQpIdx0, test::LastHistogramSample("WebRTC.Video.Encoded.Qp.Vp8"));
|
| }
|
|
|
| +TEST_F(SendStatisticsProxyTest, VerifyQpHistogramStats_Vp9) {
|
| + test::ClearHistograms();
|
| + EncodedImage encoded_image;
|
| + RTPVideoHeader rtp_video_header;
|
| + rtp_video_header.simulcastIdx = 0;
|
| + rtp_video_header.codec = kRtpVideoVp9;
|
| + rtp_video_header.codecHeader.VP9.num_spatial_layers = 2;
|
| +
|
| + for (int i = 0; i < kMinRequiredSamples; ++i) {
|
| + encoded_image.qp_ = kQpIdx0;
|
| + rtp_video_header.codecHeader.VP9.spatial_idx = 0;
|
| + statistics_proxy_->OnSendEncodedImage(encoded_image, &rtp_video_header);
|
| + encoded_image.qp_ = kQpIdx1;
|
| + rtp_video_header.codecHeader.VP9.spatial_idx = 1;
|
| + statistics_proxy_->OnSendEncodedImage(encoded_image, &rtp_video_header);
|
| + }
|
| + statistics_proxy_.reset();
|
| + EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.Encoded.Qp.Vp9.S0"));
|
| + EXPECT_EQ(kQpIdx0,
|
| + test::LastHistogramSample("WebRTC.Video.Encoded.Qp.Vp9.S0"));
|
| + EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.Encoded.Qp.Vp9.S1"));
|
| + EXPECT_EQ(kQpIdx1,
|
| + test::LastHistogramSample("WebRTC.Video.Encoded.Qp.Vp9.S1"));
|
| +}
|
| +
|
| +TEST_F(SendStatisticsProxyTest, VerifyQpHistogramStats_Vp9OneSpatialLayer) {
|
| + VideoSendStream::Config config(nullptr);
|
| + config.rtp.ssrcs.push_back(kFirstSsrc);
|
| + statistics_proxy_.reset(new SendStatisticsProxy(
|
| + &fake_clock_, config, VideoEncoderConfig::ContentType::kRealtimeVideo));
|
| +
|
| + test::ClearHistograms();
|
| + EncodedImage encoded_image;
|
| + RTPVideoHeader rtp_video_header;
|
| + rtp_video_header.simulcastIdx = 0;
|
| + rtp_video_header.codec = kRtpVideoVp9;
|
| + rtp_video_header.codecHeader.VP9.num_spatial_layers = 1;
|
| +
|
| + for (int i = 0; i < kMinRequiredSamples; ++i) {
|
| + encoded_image.qp_ = kQpIdx0;
|
| + rtp_video_header.codecHeader.VP9.spatial_idx = 0;
|
| + statistics_proxy_->OnSendEncodedImage(encoded_image, &rtp_video_header);
|
| + }
|
| + statistics_proxy_.reset();
|
| + EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.Encoded.Qp.Vp9"));
|
| + EXPECT_EQ(kQpIdx0, test::LastHistogramSample("WebRTC.Video.Encoded.Qp.Vp9"));
|
| +}
|
| +
|
| TEST_F(SendStatisticsProxyTest, NoSubstreams) {
|
| uint32_t excluded_ssrc =
|
| std::max(
|
|
|