OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 2097 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2108 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size()); | 2108 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size()); |
2109 FakeVideoSendStream* send_stream = fake_call_->GetVideoSendStreams().front(); | 2109 FakeVideoSendStream* send_stream = fake_call_->GetVideoSendStreams().front(); |
2110 | 2110 |
2111 EXPECT_TRUE(capturer.CaptureCustomFrame(1280, 720, cricket::FOURCC_I420)); | 2111 EXPECT_TRUE(capturer.CaptureCustomFrame(1280, 720, cricket::FOURCC_I420)); |
2112 EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames()); | 2112 EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames()); |
2113 EXPECT_EQ(1280, send_stream->GetLastWidth()); | 2113 EXPECT_EQ(1280, send_stream->GetLastWidth()); |
2114 EXPECT_EQ(720, send_stream->GetLastHeight()); | 2114 EXPECT_EQ(720, send_stream->GetLastHeight()); |
2115 | 2115 |
2116 // Trigger overuse. | 2116 // Trigger overuse. |
2117 rtc::VideoSinkWants wants; | 2117 rtc::VideoSinkWants wants; |
2118 wants.max_pixel_count = | 2118 wants.max_pixel_count = rtc::Optional<int>( |
2119 send_stream->GetLastWidth() * send_stream->GetLastHeight() - 1; | 2119 send_stream->GetLastWidth() * send_stream->GetLastHeight() - 1); |
2120 send_stream->InjectVideoSinkWants(wants); | 2120 send_stream->InjectVideoSinkWants(wants); |
2121 EXPECT_TRUE(capturer.CaptureCustomFrame(1280, 720, cricket::FOURCC_I420)); | 2121 EXPECT_TRUE(capturer.CaptureCustomFrame(1280, 720, cricket::FOURCC_I420)); |
2122 EXPECT_EQ(2, send_stream->GetNumberOfSwappedFrames()); | 2122 EXPECT_EQ(2, send_stream->GetNumberOfSwappedFrames()); |
2123 EXPECT_EQ(1280 * 3 / 4, send_stream->GetLastWidth()); | 2123 EXPECT_EQ(1280 * 3 / 4, send_stream->GetLastWidth()); |
2124 EXPECT_EQ(720 * 3 / 4, send_stream->GetLastHeight()); | 2124 EXPECT_EQ(720 * 3 / 4, send_stream->GetLastHeight()); |
2125 | 2125 |
2126 // Trigger overuse again. | 2126 // Trigger overuse again. |
2127 wants.max_pixel_count = | 2127 wants.max_pixel_count = rtc::Optional<int>( |
2128 send_stream->GetLastWidth() * send_stream->GetLastHeight() - 1; | 2128 send_stream->GetLastWidth() * send_stream->GetLastHeight() - 1); |
2129 send_stream->InjectVideoSinkWants(wants); | 2129 send_stream->InjectVideoSinkWants(wants); |
2130 EXPECT_TRUE(capturer.CaptureCustomFrame(1280, 720, cricket::FOURCC_I420)); | 2130 EXPECT_TRUE(capturer.CaptureCustomFrame(1280, 720, cricket::FOURCC_I420)); |
2131 EXPECT_EQ(3, send_stream->GetNumberOfSwappedFrames()); | 2131 EXPECT_EQ(3, send_stream->GetNumberOfSwappedFrames()); |
2132 EXPECT_EQ(1280 * 2 / 4, send_stream->GetLastWidth()); | 2132 EXPECT_EQ(1280 * 2 / 4, send_stream->GetLastWidth()); |
2133 EXPECT_EQ(720 * 2 / 4, send_stream->GetLastHeight()); | 2133 EXPECT_EQ(720 * 2 / 4, send_stream->GetLastHeight()); |
2134 | 2134 |
2135 // Change input resolution. | 2135 // Change input resolution. |
2136 EXPECT_TRUE(capturer.CaptureCustomFrame(1284, 724, cricket::FOURCC_I420)); | 2136 EXPECT_TRUE(capturer.CaptureCustomFrame(1284, 724, cricket::FOURCC_I420)); |
2137 EXPECT_EQ(4, send_stream->GetNumberOfSwappedFrames()); | 2137 EXPECT_EQ(4, send_stream->GetNumberOfSwappedFrames()); |
2138 EXPECT_EQ(1284 / 2, send_stream->GetLastWidth()); | 2138 EXPECT_EQ(1284 / 2, send_stream->GetLastWidth()); |
2139 EXPECT_EQ(724 / 2, send_stream->GetLastHeight()); | 2139 EXPECT_EQ(724 / 2, send_stream->GetLastHeight()); |
2140 | 2140 |
2141 // Trigger underuse which should go back up in resolution. | 2141 // Trigger underuse which should go back up in resolution. |
2142 int current_pixel_count = | 2142 int current_pixel_count = |
2143 send_stream->GetLastWidth() * send_stream->GetLastHeight(); | 2143 send_stream->GetLastWidth() * send_stream->GetLastHeight(); |
2144 // Cap the max to 4x the pixel count (assuming max 1/2 x 1/2 scale downs) | 2144 // Cap the max to 4x the pixel count (assuming max 1/2 x 1/2 scale downs) |
2145 // of the current stream, so we don't take too large steps. | 2145 // of the current stream, so we don't take too large steps. |
2146 wants.max_pixel_count = current_pixel_count * 4; | 2146 wants.max_pixel_count = rtc::Optional<int>(current_pixel_count * 4); |
2147 // Default step down is 3/5 pixel count, so go up by 5/3. | 2147 // Default step down is 3/5 pixel count, so go up by 5/3. |
2148 wants.target_pixel_count = rtc::Optional<int>((current_pixel_count * 5) / 3); | 2148 wants.target_pixel_count = rtc::Optional<int>((current_pixel_count * 5) / 3); |
2149 send_stream->InjectVideoSinkWants(wants); | 2149 send_stream->InjectVideoSinkWants(wants); |
2150 EXPECT_TRUE(capturer.CaptureCustomFrame(1284, 724, cricket::FOURCC_I420)); | 2150 EXPECT_TRUE(capturer.CaptureCustomFrame(1284, 724, cricket::FOURCC_I420)); |
2151 EXPECT_EQ(5, send_stream->GetNumberOfSwappedFrames()); | 2151 EXPECT_EQ(5, send_stream->GetNumberOfSwappedFrames()); |
2152 EXPECT_EQ(1284 * 3 / 4, send_stream->GetLastWidth()); | 2152 EXPECT_EQ(1284 * 3 / 4, send_stream->GetLastWidth()); |
2153 EXPECT_EQ(724 * 3 / 4, send_stream->GetLastHeight()); | 2153 EXPECT_EQ(724 * 3 / 4, send_stream->GetLastHeight()); |
2154 | 2154 |
2155 // Trigger underuse again, should go back up to full resolution. | 2155 // Trigger underuse again, should go back up to full resolution. |
2156 current_pixel_count = | 2156 current_pixel_count = |
2157 send_stream->GetLastWidth() * send_stream->GetLastHeight(); | 2157 send_stream->GetLastWidth() * send_stream->GetLastHeight(); |
2158 wants.max_pixel_count = current_pixel_count * 4; | 2158 wants.max_pixel_count = rtc::Optional<int>(current_pixel_count * 4); |
2159 wants.target_pixel_count = rtc::Optional<int>((current_pixel_count * 5) / 3); | 2159 wants.target_pixel_count = rtc::Optional<int>((current_pixel_count * 5) / 3); |
2160 send_stream->InjectVideoSinkWants(wants); | 2160 send_stream->InjectVideoSinkWants(wants); |
2161 EXPECT_TRUE(capturer.CaptureCustomFrame(1284, 724, cricket::FOURCC_I420)); | 2161 EXPECT_TRUE(capturer.CaptureCustomFrame(1284, 724, cricket::FOURCC_I420)); |
2162 EXPECT_EQ(6, send_stream->GetNumberOfSwappedFrames()); | 2162 EXPECT_EQ(6, send_stream->GetNumberOfSwappedFrames()); |
2163 EXPECT_EQ(1284, send_stream->GetLastWidth()); | 2163 EXPECT_EQ(1284, send_stream->GetLastWidth()); |
2164 EXPECT_EQ(724, send_stream->GetLastHeight()); | 2164 EXPECT_EQ(724, send_stream->GetLastHeight()); |
2165 | 2165 |
2166 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); | 2166 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); |
2167 } | 2167 } |
2168 | 2168 |
(...skipping 23 matching lines...) Expand all Loading... |
2192 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size()); | 2192 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size()); |
2193 FakeVideoSendStream* send_stream = fake_call_->GetVideoSendStreams().front(); | 2193 FakeVideoSendStream* send_stream = fake_call_->GetVideoSendStreams().front(); |
2194 | 2194 |
2195 EXPECT_TRUE(capturer.CaptureCustomFrame(1280, 720, cricket::FOURCC_I420)); | 2195 EXPECT_TRUE(capturer.CaptureCustomFrame(1280, 720, cricket::FOURCC_I420)); |
2196 EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames()); | 2196 EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames()); |
2197 EXPECT_EQ(1280, send_stream->GetLastWidth()); | 2197 EXPECT_EQ(1280, send_stream->GetLastWidth()); |
2198 EXPECT_EQ(720, send_stream->GetLastHeight()); | 2198 EXPECT_EQ(720, send_stream->GetLastHeight()); |
2199 | 2199 |
2200 // Trigger overuse. | 2200 // Trigger overuse. |
2201 rtc::VideoSinkWants wants; | 2201 rtc::VideoSinkWants wants; |
2202 wants.max_pixel_count = | 2202 wants.max_pixel_count = rtc::Optional<int>( |
2203 send_stream->GetLastWidth() * send_stream->GetLastHeight() - 1; | 2203 send_stream->GetLastWidth() * send_stream->GetLastHeight() - 1); |
2204 send_stream->InjectVideoSinkWants(wants); | 2204 send_stream->InjectVideoSinkWants(wants); |
2205 EXPECT_TRUE(capturer.CaptureCustomFrame(1280, 720, cricket::FOURCC_I420)); | 2205 EXPECT_TRUE(capturer.CaptureCustomFrame(1280, 720, cricket::FOURCC_I420)); |
2206 EXPECT_EQ(2, send_stream->GetNumberOfSwappedFrames()); | 2206 EXPECT_EQ(2, send_stream->GetNumberOfSwappedFrames()); |
2207 EXPECT_EQ(1280 * 3 / 4, send_stream->GetLastWidth()); | 2207 EXPECT_EQ(1280 * 3 / 4, send_stream->GetLastWidth()); |
2208 EXPECT_EQ(720 * 3 / 4, send_stream->GetLastHeight()); | 2208 EXPECT_EQ(720 * 3 / 4, send_stream->GetLastHeight()); |
2209 | 2209 |
2210 // Switch to screen share. Expect no CPU adaptation. | 2210 // Switch to screen share. Expect no CPU adaptation. |
2211 cricket::FakeVideoCapturer screen_share(true); | 2211 cricket::FakeVideoCapturer screen_share(true); |
2212 ASSERT_EQ(cricket::CS_RUNNING, | 2212 ASSERT_EQ(cricket::CS_RUNNING, |
2213 screen_share.Start(screen_share.GetSupportedFormats()->front())); | 2213 screen_share.Start(screen_share.GetSupportedFormats()->front())); |
(...skipping 21 matching lines...) Expand all Loading... |
2235 send_stream = fake_call_->GetVideoSendStreams().front(); | 2235 send_stream = fake_call_->GetVideoSendStreams().front(); |
2236 EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames()); | 2236 EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames()); |
2237 EXPECT_EQ(1280 * 3 / 4, send_stream->GetLastWidth()); | 2237 EXPECT_EQ(1280 * 3 / 4, send_stream->GetLastWidth()); |
2238 EXPECT_EQ(720 * 3 / 4, send_stream->GetLastHeight()); | 2238 EXPECT_EQ(720 * 3 / 4, send_stream->GetLastHeight()); |
2239 | 2239 |
2240 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); | 2240 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); |
2241 } | 2241 } |
2242 | 2242 |
2243 void WebRtcVideoChannel2Test::TestCpuAdaptation(bool enable_overuse, | 2243 void WebRtcVideoChannel2Test::TestCpuAdaptation(bool enable_overuse, |
2244 bool is_screenshare) { | 2244 bool is_screenshare) { |
2245 const int kDefaultFps = 30; | |
2246 cricket::VideoCodec codec = GetEngineCodec("VP8"); | 2245 cricket::VideoCodec codec = GetEngineCodec("VP8"); |
2247 cricket::VideoSendParameters parameters; | 2246 cricket::VideoSendParameters parameters; |
2248 parameters.codecs.push_back(codec); | 2247 parameters.codecs.push_back(codec); |
2249 | 2248 |
2250 MediaConfig media_config = GetMediaConfig(); | 2249 MediaConfig media_config = GetMediaConfig(); |
2251 if (enable_overuse) { | 2250 if (enable_overuse) { |
2252 media_config.video.enable_cpu_overuse_detection = true; | 2251 media_config.video.enable_cpu_overuse_detection = true; |
2253 } | 2252 } |
2254 channel_.reset( | 2253 channel_.reset( |
2255 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); | 2254 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); |
2256 channel_->OnReadyToSend(true); | 2255 channel_->OnReadyToSend(true); |
2257 | 2256 |
2258 EXPECT_TRUE(channel_->SetSendParameters(parameters)); | 2257 EXPECT_TRUE(channel_->SetSendParameters(parameters)); |
2259 | 2258 |
2260 AddSendStream(); | 2259 AddSendStream(); |
2261 | 2260 |
2262 cricket::FakeVideoCapturer capturer; | 2261 cricket::FakeVideoCapturer capturer; |
2263 VideoOptions options; | 2262 VideoOptions options; |
2264 options.is_screencast = rtc::Optional<bool>(is_screenshare); | 2263 options.is_screencast = rtc::Optional<bool>(is_screenshare); |
2265 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, &options, &capturer)); | 2264 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, &options, &capturer)); |
2266 cricket::VideoFormat capture_format = capturer.GetSupportedFormats()->front(); | 2265 cricket::VideoFormat capture_format = capturer.GetSupportedFormats()->front(); |
2267 capture_format.interval = rtc::kNumNanosecsPerSec / kDefaultFps; | |
2268 EXPECT_EQ(cricket::CS_RUNNING, capturer.Start(capture_format)); | 2266 EXPECT_EQ(cricket::CS_RUNNING, capturer.Start(capture_format)); |
2269 | 2267 |
2270 EXPECT_TRUE(channel_->SetSend(true)); | 2268 EXPECT_TRUE(channel_->SetSend(true)); |
2271 | 2269 |
2272 FakeVideoSendStream* send_stream = fake_call_->GetVideoSendStreams().front(); | 2270 FakeVideoSendStream* send_stream = fake_call_->GetVideoSendStreams().front(); |
2273 | 2271 |
2274 if (!enable_overuse) { | 2272 if (!enable_overuse || is_screenshare) { |
2275 EXPECT_FALSE(send_stream->resolution_scaling_enabled()); | 2273 EXPECT_FALSE(send_stream->resolution_scaling_enabled()); |
2276 EXPECT_FALSE(send_stream->framerate_scaling_enabled()); | |
2277 EXPECT_EQ(is_screenshare, send_stream->framerate_scaling_enabled()); | |
2278 | 2274 |
2279 EXPECT_TRUE(capturer.CaptureFrame()); | 2275 EXPECT_TRUE(capturer.CaptureFrame()); |
2280 EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames()); | 2276 EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames()); |
2281 | 2277 |
2282 EXPECT_EQ(capture_format.width, send_stream->GetLastWidth()); | 2278 EXPECT_EQ(capture_format.width, send_stream->GetLastWidth()); |
2283 EXPECT_EQ(capture_format.height, send_stream->GetLastHeight()); | 2279 EXPECT_EQ(capture_format.height, send_stream->GetLastHeight()); |
2284 | 2280 |
2285 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); | 2281 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); |
2286 return; | 2282 return; |
2287 } | 2283 } |
2288 | 2284 |
2289 if (is_screenshare) { | 2285 EXPECT_TRUE(send_stream->resolution_scaling_enabled()); |
2290 EXPECT_FALSE(send_stream->resolution_scaling_enabled()); | |
2291 EXPECT_TRUE(send_stream->framerate_scaling_enabled()); | |
2292 } else { | |
2293 EXPECT_TRUE(send_stream->resolution_scaling_enabled()); | |
2294 EXPECT_FALSE(send_stream->framerate_scaling_enabled()); | |
2295 } | |
2296 | |
2297 // Trigger overuse. | 2286 // Trigger overuse. |
2298 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size()); | 2287 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size()); |
2299 | 2288 |
2300 rtc::VideoSinkWants wants; | 2289 rtc::VideoSinkWants wants; |
2301 if (is_screenshare) { | 2290 wants.max_pixel_count = |
2302 wants.max_framerate_fps = (kDefaultFps * 2) / 3; | 2291 rtc::Optional<int>(capture_format.width * capture_format.height - 1); |
2303 } else { | |
2304 wants.max_pixel_count = capture_format.width * capture_format.height - 1; | |
2305 } | |
2306 send_stream->InjectVideoSinkWants(wants); | 2292 send_stream->InjectVideoSinkWants(wants); |
2307 | 2293 |
2308 for (int i = 0; i < kDefaultFps; ++i) | 2294 EXPECT_TRUE(capturer.CaptureFrame()); |
2309 EXPECT_TRUE(capturer.CaptureFrame()); | 2295 EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames()); |
2310 | 2296 |
2311 if (is_screenshare) { | 2297 EXPECT_TRUE(capturer.CaptureFrame()); |
2312 // Drops every third frame. | 2298 EXPECT_EQ(2, send_stream->GetNumberOfSwappedFrames()); |
2313 EXPECT_EQ(kDefaultFps * 2 / 3, send_stream->GetNumberOfSwappedFrames()); | 2299 |
2314 EXPECT_EQ(send_stream->GetLastWidth(), capture_format.width); | 2300 EXPECT_LT(send_stream->GetLastWidth(), capture_format.width); |
2315 EXPECT_EQ(send_stream->GetLastHeight(), capture_format.height); | 2301 EXPECT_LT(send_stream->GetLastHeight(), capture_format.height); |
2316 } else { | |
2317 EXPECT_EQ(kDefaultFps, send_stream->GetNumberOfSwappedFrames()); | |
2318 EXPECT_LT(send_stream->GetLastWidth(), capture_format.width); | |
2319 EXPECT_LT(send_stream->GetLastHeight(), capture_format.height); | |
2320 } | |
2321 | 2302 |
2322 // Trigger underuse which should go back to normal resolution. | 2303 // Trigger underuse which should go back to normal resolution. |
2323 int last_pixel_count = | 2304 int last_pixel_count = |
2324 send_stream->GetLastWidth() * send_stream->GetLastHeight(); | 2305 send_stream->GetLastWidth() * send_stream->GetLastHeight(); |
2325 if (is_screenshare) { | 2306 wants.max_pixel_count = rtc::Optional<int>(last_pixel_count * 4); |
2326 wants.max_framerate_fps = kDefaultFps; | 2307 wants.target_pixel_count = rtc::Optional<int>((last_pixel_count * 5) / 3); |
2327 } else { | |
2328 wants.max_pixel_count = last_pixel_count * 4; | |
2329 wants.target_pixel_count.emplace((last_pixel_count * 5) / 3); | |
2330 } | |
2331 send_stream->InjectVideoSinkWants(wants); | 2308 send_stream->InjectVideoSinkWants(wants); |
2332 | 2309 |
2333 for (int i = 0; i < kDefaultFps; ++i) | 2310 EXPECT_TRUE(capturer.CaptureFrame()); |
2334 EXPECT_TRUE(capturer.CaptureFrame()); | 2311 EXPECT_EQ(3, send_stream->GetNumberOfSwappedFrames()); |
2335 | |
2336 if (is_screenshare) { | |
2337 EXPECT_EQ(kDefaultFps + (kDefaultFps * 2 / 3), | |
2338 send_stream->GetNumberOfSwappedFrames()); | |
2339 } else { | |
2340 EXPECT_EQ(kDefaultFps * 2, send_stream->GetNumberOfSwappedFrames()); | |
2341 } | |
2342 | 2312 |
2343 EXPECT_EQ(capture_format.width, send_stream->GetLastWidth()); | 2313 EXPECT_EQ(capture_format.width, send_stream->GetLastWidth()); |
2344 EXPECT_EQ(capture_format.height, send_stream->GetLastHeight()); | 2314 EXPECT_EQ(capture_format.height, send_stream->GetLastHeight()); |
2345 | 2315 |
2346 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); | 2316 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); |
2347 } | 2317 } |
2348 | 2318 |
2349 TEST_F(WebRtcVideoChannel2Test, EstimatesNtpStartTimeCorrectly) { | 2319 TEST_F(WebRtcVideoChannel2Test, EstimatesNtpStartTimeCorrectly) { |
2350 // Start at last timestamp to verify that wraparounds are estimated correctly. | 2320 // Start at last timestamp to verify that wraparounds are estimated correctly. |
2351 static const uint32_t kInitialTimestamp = 0xFFFFFFFFu; | 2321 static const uint32_t kInitialTimestamp = 0xFFFFFFFFu; |
(...skipping 2032 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4384 } | 4354 } |
4385 | 4355 |
4386 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsForSimulcastScreenshare) { | 4356 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsForSimulcastScreenshare) { |
4387 webrtc::test::ScopedFieldTrials override_field_trials_( | 4357 webrtc::test::ScopedFieldTrials override_field_trials_( |
4388 "WebRTC-SimulcastScreenshare/Enabled/"); | 4358 "WebRTC-SimulcastScreenshare/Enabled/"); |
4389 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 2, true, | 4359 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 2, true, |
4390 true); | 4360 true); |
4391 } | 4361 } |
4392 | 4362 |
4393 } // namespace cricket | 4363 } // namespace cricket |
OLD | NEW |