Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(192)

Side by Side Diff: talk/media/webrtc/webrtcvideoengine2_unittest.cc

Issue 1433393002: Add separate send-side UMA stats for screenshare and video. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fixed use-after-free in test Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2004 Google Inc. 3 * Copyright 2004 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 23 matching lines...) Expand all
34 #include "talk/media/webrtc/fakewebrtccall.h" 34 #include "talk/media/webrtc/fakewebrtccall.h"
35 #include "talk/media/webrtc/fakewebrtcvideoengine.h" 35 #include "talk/media/webrtc/fakewebrtcvideoengine.h"
36 #include "talk/media/webrtc/simulcast.h" 36 #include "talk/media/webrtc/simulcast.h"
37 #include "talk/media/webrtc/webrtcvideochannelfactory.h" 37 #include "talk/media/webrtc/webrtcvideochannelfactory.h"
38 #include "talk/media/webrtc/webrtcvideoengine2.h" 38 #include "talk/media/webrtc/webrtcvideoengine2.h"
39 #include "talk/media/webrtc/webrtcvoiceengine.h" 39 #include "talk/media/webrtc/webrtcvoiceengine.h"
40 #include "webrtc/base/arraysize.h" 40 #include "webrtc/base/arraysize.h"
41 #include "webrtc/base/gunit.h" 41 #include "webrtc/base/gunit.h"
42 #include "webrtc/base/stringutils.h" 42 #include "webrtc/base/stringutils.h"
43 #include "webrtc/test/field_trial.h" 43 #include "webrtc/test/field_trial.h"
44 #include "webrtc/test/histogram.h"
44 #include "webrtc/video_encoder.h" 45 #include "webrtc/video_encoder.h"
45 46
46 namespace { 47 namespace {
47 static const int kDefaultQpMax = 56; 48 static const int kDefaultQpMax = 56;
48 static const int kDefaultFramerate = 30; 49 static const int kDefaultFramerate = 30;
49 50
50 static const cricket::VideoCodec kVp8Codec720p(100, "VP8", 1280, 720, 30, 0); 51 static const cricket::VideoCodec kVp8Codec720p(100, "VP8", 1280, 720, 30, 0);
51 static const cricket::VideoCodec kVp8Codec360p(100, "VP8", 640, 360, 30, 0); 52 static const cricket::VideoCodec kVp8Codec360p(100, "VP8", 640, 360, 30, 0);
52 static const cricket::VideoCodec kVp8Codec270p(100, "VP8", 480, 270, 30, 0); 53 static const cricket::VideoCodec kVp8Codec270p(100, "VP8", 480, 270, 30, 0);
53 54
(...skipping 1493 matching lines...) Expand 10 before | Expand all | Expand 10 after
1547 1548
1548 TEST_F(WebRtcVideoChannel2Test, DISABLED_SetBandwidthFixed) { 1549 TEST_F(WebRtcVideoChannel2Test, DISABLED_SetBandwidthFixed) {
1549 FAIL() << "Not implemented."; // TODO(pbos): Implement. 1550 FAIL() << "Not implemented."; // TODO(pbos): Implement.
1550 } 1551 }
1551 1552
1552 TEST_F(WebRtcVideoChannel2Test, DISABLED_SetBandwidthInConference) { 1553 TEST_F(WebRtcVideoChannel2Test, DISABLED_SetBandwidthInConference) {
1553 FAIL() << "Not implemented."; // TODO(pbos): Implement. 1554 FAIL() << "Not implemented."; // TODO(pbos): Implement.
1554 } 1555 }
1555 1556
1556 TEST_F(WebRtcVideoChannel2Test, UsesCorrectSettingsForScreencast) { 1557 TEST_F(WebRtcVideoChannel2Test, UsesCorrectSettingsForScreencast) {
1558 webrtc::test::ClearHistograms();
1557 static const int kScreenshareMinBitrateKbps = 800; 1559 static const int kScreenshareMinBitrateKbps = 800;
1558 cricket::VideoCodec codec = kVp8Codec360p; 1560 cricket::VideoCodec codec = kVp8Codec360p;
1559 cricket::VideoSendParameters parameters; 1561 cricket::VideoSendParameters parameters;
1560 parameters.codecs.push_back(codec); 1562 parameters.codecs.push_back(codec);
1561 parameters.options.screencast_min_bitrate = 1563 parameters.options.screencast_min_bitrate =
1562 rtc::Optional<int>(kScreenshareMinBitrateKbps); 1564 rtc::Optional<int>(kScreenshareMinBitrateKbps);
1563 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1565 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1564 1566
1565 AddSendStream(); 1567 AddSendStream();
1566 1568
(...skipping 19 matching lines...) Expand all
1586 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kRealtimeVideo, 1588 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kRealtimeVideo,
1587 encoder_config.content_type); 1589 encoder_config.content_type);
1588 EXPECT_EQ(codec.width, encoder_config.streams.front().width); 1590 EXPECT_EQ(codec.width, encoder_config.streams.front().width);
1589 EXPECT_EQ(codec.height, encoder_config.streams.front().height); 1591 EXPECT_EQ(codec.height, encoder_config.streams.front().height);
1590 EXPECT_EQ(0, encoder_config.min_transmit_bitrate_bps) 1592 EXPECT_EQ(0, encoder_config.min_transmit_bitrate_bps)
1591 << "Non-screenshare shouldn't use min-transmit bitrate."; 1593 << "Non-screenshare shouldn't use min-transmit bitrate.";
1592 1594
1593 capturer.SetScreencast(true); 1595 capturer.SetScreencast(true);
1594 EXPECT_TRUE(capturer.CaptureFrame()); 1596 EXPECT_TRUE(capturer.CaptureFrame());
1595 1597
1596 EXPECT_EQ(2, send_stream->GetNumberOfSwappedFrames()); 1598 // Changing content type to screen will reset stream, so number of swapped
1599 // frames will be reset.
1600 send_stream = fake_call_->GetVideoSendStreams().front();
1601 EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames());
1597 1602
1598 // Verify screencast settings. 1603 // Verify screencast settings.
1599 encoder_config = send_stream->GetEncoderConfig(); 1604 encoder_config = send_stream->GetEncoderConfig();
1600 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kScreen, 1605 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kScreen,
1601 encoder_config.content_type); 1606 encoder_config.content_type);
1602 EXPECT_EQ(kScreenshareMinBitrateKbps * 1000, 1607 EXPECT_EQ(kScreenshareMinBitrateKbps * 1000,
1603 encoder_config.min_transmit_bitrate_bps); 1608 encoder_config.min_transmit_bitrate_bps);
1604 1609
1605 EXPECT_EQ(capture_format_hd.width, encoder_config.streams.front().width); 1610 EXPECT_EQ(capture_format_hd.width, encoder_config.streams.front().width);
1606 EXPECT_EQ(capture_format_hd.height, encoder_config.streams.front().height); 1611 EXPECT_EQ(capture_format_hd.height, encoder_config.streams.front().height);
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
1872 1877
1873 // Trigger overuse. 1878 // Trigger overuse.
1874 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size()); 1879 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size());
1875 FakeVideoSendStream* send_stream = fake_call_->GetVideoSendStreams().front(); 1880 FakeVideoSendStream* send_stream = fake_call_->GetVideoSendStreams().front();
1876 webrtc::LoadObserver* overuse_callback = 1881 webrtc::LoadObserver* overuse_callback =
1877 send_stream->GetConfig().overuse_callback; 1882 send_stream->GetConfig().overuse_callback;
1878 ASSERT_TRUE(overuse_callback != NULL); 1883 ASSERT_TRUE(overuse_callback != NULL);
1879 overuse_callback->OnLoadUpdate(webrtc::LoadObserver::kOveruse); 1884 overuse_callback->OnLoadUpdate(webrtc::LoadObserver::kOveruse);
1880 1885
1881 EXPECT_TRUE(capturer.CaptureFrame()); 1886 EXPECT_TRUE(capturer.CaptureFrame());
1887 send_stream = fake_call_->GetVideoSendStreams().front();
1882 EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames()); 1888 EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames());
1883 1889
1884 if (enable_overuse && !is_screenshare) { 1890 if (enable_overuse && !is_screenshare) {
1885 EXPECT_LT(send_stream->GetLastWidth(), codec.width); 1891 EXPECT_LT(send_stream->GetLastWidth(), codec.width);
1886 EXPECT_LT(send_stream->GetLastHeight(), codec.height); 1892 EXPECT_LT(send_stream->GetLastHeight(), codec.height);
1887 } else { 1893 } else {
1888 EXPECT_EQ(codec.width, send_stream->GetLastWidth()); 1894 EXPECT_EQ(codec.width, send_stream->GetLastWidth());
1889 EXPECT_EQ(codec.height, send_stream->GetLastHeight()); 1895 EXPECT_EQ(codec.height, send_stream->GetLastHeight());
1890 } 1896 }
1891 1897
(...skipping 1012 matching lines...) Expand 10 before | Expand all | Expand 10 after
2904 } 2910 }
2905 2911
2906 TEST_F(WebRtcVideoChannel2Test, ConfiguresLocalSsrc) { 2912 TEST_F(WebRtcVideoChannel2Test, ConfiguresLocalSsrc) {
2907 TestReceiverLocalSsrcConfiguration(false); 2913 TestReceiverLocalSsrcConfiguration(false);
2908 } 2914 }
2909 2915
2910 TEST_F(WebRtcVideoChannel2Test, ConfiguresLocalSsrcOnExistingReceivers) { 2916 TEST_F(WebRtcVideoChannel2Test, ConfiguresLocalSsrcOnExistingReceivers) {
2911 TestReceiverLocalSsrcConfiguration(true); 2917 TestReceiverLocalSsrcConfiguration(true);
2912 } 2918 }
2913 2919
2920 TEST_F(WebRtcVideoChannel2Test, UpdatesStatsDependingOnContentType) {}
2921
2914 class WebRtcVideoEngine2SimulcastTest : public testing::Test {}; 2922 class WebRtcVideoEngine2SimulcastTest : public testing::Test {};
2915 2923
2916 // Test that if we add a stream with RTX SSRC's, SSRC's get set correctly. 2924 // Test that if we add a stream with RTX SSRC's, SSRC's get set correctly.
2917 TEST_F(WebRtcVideoEngine2SimulcastTest, DISABLED_TestStreamWithRtx) { 2925 TEST_F(WebRtcVideoEngine2SimulcastTest, DISABLED_TestStreamWithRtx) {
2918 // TODO(pbos): Implement. 2926 // TODO(pbos): Implement.
2919 FAIL() << "Not implemented."; 2927 FAIL() << "Not implemented.";
2920 } 2928 }
2921 2929
2922 // Test that if we get too few ssrcs are given in AddSendStream(), 2930 // Test that if we get too few ssrcs are given in AddSendStream(),
2923 // only supported sub-streams will be added. 2931 // only supported sub-streams will be added.
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
3274 // Ensures that the correct settings are applied to the codec when two temporal 3282 // Ensures that the correct settings are applied to the codec when two temporal
3275 // layer screencasting is enabled, and that the correct simulcast settings are 3283 // layer screencasting is enabled, and that the correct simulcast settings are
3276 // reapplied when disabling screencasting. 3284 // reapplied when disabling screencasting.
3277 TEST_F(WebRtcVideoChannel2SimulcastTest, 3285 TEST_F(WebRtcVideoChannel2SimulcastTest,
3278 DISABLED_TwoTemporalLayerScreencastSettings) { 3286 DISABLED_TwoTemporalLayerScreencastSettings) {
3279 // TODO(pbos): Implement. 3287 // TODO(pbos): Implement.
3280 FAIL() << "Not implemented."; 3288 FAIL() << "Not implemented.";
3281 } 3289 }
3282 3290
3283 } // namespace cricket 3291 } // namespace cricket
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698