OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 | 197 |
198 ASSERT_EQ(succeeded_capturers, capturers.size()); | 198 ASSERT_EQ(succeeded_capturers, capturers.size()); |
199 } | 199 } |
200 | 200 |
201 // Expects |capturer| to successfully capture a frame, and returns it. | 201 // Expects |capturer| to successfully capture a frame, and returns it. |
202 std::unique_ptr<DesktopFrame> CaptureFrame(ScreenCapturer* capturer) { | 202 std::unique_ptr<DesktopFrame> CaptureFrame(ScreenCapturer* capturer) { |
203 std::unique_ptr<DesktopFrame> frame; | 203 std::unique_ptr<DesktopFrame> frame; |
204 EXPECT_CALL(callback_, | 204 EXPECT_CALL(callback_, |
205 OnCaptureResultPtr(DesktopCapturer::Result::SUCCESS, _)) | 205 OnCaptureResultPtr(DesktopCapturer::Result::SUCCESS, _)) |
206 .WillOnce(SaveUniquePtrArg(&frame)); | 206 .WillOnce(SaveUniquePtrArg(&frame)); |
207 capturer->Capture(DesktopRegion()); | 207 capturer->CaptureFrame(); |
208 EXPECT_TRUE(frame); | 208 EXPECT_TRUE(frame); |
209 return frame; | 209 return frame; |
210 } | 210 } |
211 }; | 211 }; |
212 | 212 |
213 class FakeSharedMemory : public SharedMemory { | 213 class FakeSharedMemory : public SharedMemory { |
214 public: | 214 public: |
215 FakeSharedMemory(char* buffer, size_t size) | 215 FakeSharedMemory(char* buffer, size_t size) |
216 : SharedMemory(buffer, size, 0, kTestSharedMemoryId), | 216 : SharedMemory(buffer, size, 0, kTestSharedMemoryId), |
217 buffer_(buffer) { | 217 buffer_(buffer) { |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 } | 252 } |
253 | 253 |
254 TEST_F(ScreenCapturerTest, Capture) { | 254 TEST_F(ScreenCapturerTest, Capture) { |
255 // Assume that Start() treats the screen as invalid initially. | 255 // Assume that Start() treats the screen as invalid initially. |
256 std::unique_ptr<DesktopFrame> frame; | 256 std::unique_ptr<DesktopFrame> frame; |
257 EXPECT_CALL(callback_, | 257 EXPECT_CALL(callback_, |
258 OnCaptureResultPtr(DesktopCapturer::Result::SUCCESS, _)) | 258 OnCaptureResultPtr(DesktopCapturer::Result::SUCCESS, _)) |
259 .WillOnce(SaveUniquePtrArg(&frame)); | 259 .WillOnce(SaveUniquePtrArg(&frame)); |
260 | 260 |
261 capturer_->Start(&callback_); | 261 capturer_->Start(&callback_); |
262 capturer_->Capture(DesktopRegion()); | 262 capturer_->CaptureFrame(); |
263 | 263 |
264 ASSERT_TRUE(frame); | 264 ASSERT_TRUE(frame); |
265 EXPECT_GT(frame->size().width(), 0); | 265 EXPECT_GT(frame->size().width(), 0); |
266 EXPECT_GT(frame->size().height(), 0); | 266 EXPECT_GT(frame->size().height(), 0); |
267 EXPECT_GE(frame->stride(), | 267 EXPECT_GE(frame->stride(), |
268 frame->size().width() * DesktopFrame::kBytesPerPixel); | 268 frame->size().width() * DesktopFrame::kBytesPerPixel); |
269 EXPECT_TRUE(frame->shared_memory() == NULL); | 269 EXPECT_TRUE(frame->shared_memory() == NULL); |
270 | 270 |
271 // Verify that the region contains whole screen. | 271 // Verify that the region contains whole screen. |
272 EXPECT_FALSE(frame->updated_region().is_empty()); | 272 EXPECT_FALSE(frame->updated_region().is_empty()); |
(...skipping 22 matching lines...) Expand all Loading... |
295 | 295 |
296 TEST_F(ScreenCapturerTest, UseSharedBuffers) { | 296 TEST_F(ScreenCapturerTest, UseSharedBuffers) { |
297 std::unique_ptr<DesktopFrame> frame; | 297 std::unique_ptr<DesktopFrame> frame; |
298 EXPECT_CALL(callback_, | 298 EXPECT_CALL(callback_, |
299 OnCaptureResultPtr(DesktopCapturer::Result::SUCCESS, _)) | 299 OnCaptureResultPtr(DesktopCapturer::Result::SUCCESS, _)) |
300 .WillOnce(SaveUniquePtrArg(&frame)); | 300 .WillOnce(SaveUniquePtrArg(&frame)); |
301 | 301 |
302 capturer_->Start(&callback_); | 302 capturer_->Start(&callback_); |
303 capturer_->SetSharedMemoryFactory( | 303 capturer_->SetSharedMemoryFactory( |
304 std::unique_ptr<SharedMemoryFactory>(new FakeSharedMemoryFactory())); | 304 std::unique_ptr<SharedMemoryFactory>(new FakeSharedMemoryFactory())); |
305 capturer_->Capture(DesktopRegion()); | 305 capturer_->CaptureFrame(); |
306 | 306 |
307 ASSERT_TRUE(frame); | 307 ASSERT_TRUE(frame); |
308 ASSERT_TRUE(frame->shared_memory()); | 308 ASSERT_TRUE(frame->shared_memory()); |
309 EXPECT_EQ(frame->shared_memory()->id(), kTestSharedMemoryId); | 309 EXPECT_EQ(frame->shared_memory()->id(), kTestSharedMemoryId); |
310 } | 310 } |
311 | 311 |
312 TEST_F(ScreenCapturerTest, UseMagnifier) { | 312 TEST_F(ScreenCapturerTest, UseMagnifier) { |
313 CreateMagnifierCapturer(); | 313 CreateMagnifierCapturer(); |
314 | 314 |
315 std::unique_ptr<DesktopFrame> frame; | 315 std::unique_ptr<DesktopFrame> frame; |
316 EXPECT_CALL(callback_, | 316 EXPECT_CALL(callback_, |
317 OnCaptureResultPtr(DesktopCapturer::Result::SUCCESS, _)) | 317 OnCaptureResultPtr(DesktopCapturer::Result::SUCCESS, _)) |
318 .WillOnce(SaveUniquePtrArg(&frame)); | 318 .WillOnce(SaveUniquePtrArg(&frame)); |
319 | 319 |
320 capturer_->Start(&callback_); | 320 capturer_->Start(&callback_); |
321 capturer_->Capture(DesktopRegion()); | 321 capturer_->CaptureFrame(); |
322 ASSERT_TRUE(frame); | 322 ASSERT_TRUE(frame); |
323 } | 323 } |
324 | 324 |
325 TEST_F(ScreenCapturerTest, UseDirectxCapturer) { | 325 TEST_F(ScreenCapturerTest, UseDirectxCapturer) { |
326 if (!CreateDirectxCapturer()) { | 326 if (!CreateDirectxCapturer()) { |
327 return; | 327 return; |
328 } | 328 } |
329 | 329 |
330 std::unique_ptr<DesktopFrame> frame; | 330 std::unique_ptr<DesktopFrame> frame; |
331 EXPECT_CALL(callback_, | 331 EXPECT_CALL(callback_, |
332 OnCaptureResultPtr(DesktopCapturer::Result::SUCCESS, _)) | 332 OnCaptureResultPtr(DesktopCapturer::Result::SUCCESS, _)) |
333 .WillOnce(SaveUniquePtrArg(&frame)); | 333 .WillOnce(SaveUniquePtrArg(&frame)); |
334 | 334 |
335 capturer_->Start(&callback_); | 335 capturer_->Start(&callback_); |
336 capturer_->Capture(DesktopRegion()); | 336 capturer_->CaptureFrame(); |
337 ASSERT_TRUE(frame); | 337 ASSERT_TRUE(frame); |
338 } | 338 } |
339 | 339 |
340 TEST_F(ScreenCapturerTest, UseDirectxCapturerWithSharedBuffers) { | 340 TEST_F(ScreenCapturerTest, UseDirectxCapturerWithSharedBuffers) { |
341 if (!CreateDirectxCapturer()) { | 341 if (!CreateDirectxCapturer()) { |
342 return; | 342 return; |
343 } | 343 } |
344 | 344 |
345 std::unique_ptr<DesktopFrame> frame; | 345 std::unique_ptr<DesktopFrame> frame; |
346 EXPECT_CALL(callback_, | 346 EXPECT_CALL(callback_, |
347 OnCaptureResultPtr(DesktopCapturer::Result::SUCCESS, _)) | 347 OnCaptureResultPtr(DesktopCapturer::Result::SUCCESS, _)) |
348 .WillOnce(SaveUniquePtrArg(&frame)); | 348 .WillOnce(SaveUniquePtrArg(&frame)); |
349 | 349 |
350 capturer_->Start(&callback_); | 350 capturer_->Start(&callback_); |
351 capturer_->SetSharedMemoryFactory( | 351 capturer_->SetSharedMemoryFactory( |
352 std::unique_ptr<SharedMemoryFactory>(new FakeSharedMemoryFactory())); | 352 std::unique_ptr<SharedMemoryFactory>(new FakeSharedMemoryFactory())); |
353 capturer_->Capture(DesktopRegion()); | 353 capturer_->CaptureFrame(); |
354 ASSERT_TRUE(frame); | 354 ASSERT_TRUE(frame); |
355 ASSERT_TRUE(frame->shared_memory()); | 355 ASSERT_TRUE(frame->shared_memory()); |
356 EXPECT_EQ(frame->shared_memory()->id(), kTestSharedMemoryId); | 356 EXPECT_EQ(frame->shared_memory()->id(), kTestSharedMemoryId); |
357 } | 357 } |
358 | 358 |
359 // Disabled due to being flaky due to the fact that it uses rendering / UI, see | 359 // Disabled due to being flaky due to the fact that it uses rendering / UI, see |
360 // webrtc/6366. | 360 // webrtc/6366. |
361 TEST_F(ScreenCapturerTest, DISABLED_CaptureUpdatedRegionWithDirectxCapturer) { | 361 TEST_F(ScreenCapturerTest, DISABLED_CaptureUpdatedRegionWithDirectxCapturer) { |
362 if (!CreateDirectxCapturer()) { | 362 if (!CreateDirectxCapturer()) { |
363 return; | 363 return; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
400 DISABLED_MaybeCaptureUpdatedRegionWithDirectxCapturer) { | 400 DISABLED_MaybeCaptureUpdatedRegionWithDirectxCapturer) { |
401 // Even DirectX capturer is not supported in current system, we should be able | 401 // Even DirectX capturer is not supported in current system, we should be able |
402 // to select a usable capturer. | 402 // to select a usable capturer. |
403 MaybeCreateDirectxCapturer(); | 403 MaybeCreateDirectxCapturer(); |
404 TestCaptureUpdatedRegion(); | 404 TestCaptureUpdatedRegion(); |
405 } | 405 } |
406 | 406 |
407 #endif // defined(WEBRTC_WIN) | 407 #endif // defined(WEBRTC_WIN) |
408 | 408 |
409 } // namespace webrtc | 409 } // namespace webrtc |
OLD | NEW |