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

Side by Side Diff: content/renderer/media/media_stream_video_capturer_source_unittest.cc

Issue 1873293002: Report if video capturing meets output protection requirement. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments. Rebased. Created 4 years, 8 months 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/media_stream_video_capturer_source.h" 5 #include "content/renderer/media/media_stream_video_capturer_source.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
(...skipping 29 matching lines...) Expand all
40 MOCK_METHOD4(GetCurrentSupportedFormats, 40 MOCK_METHOD4(GetCurrentSupportedFormats,
41 void(int max_requested_width, 41 void(int max_requested_width,
42 int max_requested_height, 42 int max_requested_height,
43 double max_requested_frame_rate, 43 double max_requested_frame_rate,
44 const VideoCaptureDeviceFormatsCB& callback)); 44 const VideoCaptureDeviceFormatsCB& callback));
45 MOCK_METHOD3(StartCapture, 45 MOCK_METHOD3(StartCapture,
46 void(const media::VideoCaptureParams& params, 46 void(const media::VideoCaptureParams& params,
47 const VideoCaptureDeliverFrameCB& new_frame_callback, 47 const VideoCaptureDeliverFrameCB& new_frame_callback,
48 const RunningCallback& running_callback)); 48 const RunningCallback& running_callback));
49 MOCK_METHOD0(StopCapture, void()); 49 MOCK_METHOD0(StopCapture, void());
50 MOCK_METHOD1(SetCapturingLinkSecured, void(bool is_secure));
50 51
51 void EnumerateDeviceFormats(const VideoCaptureDeviceFormatsCB& callback) { 52 void EnumerateDeviceFormats(const VideoCaptureDeviceFormatsCB& callback) {
52 media::VideoCaptureFormat kFormatSmall(gfx::Size(640, 480), 30.0, 53 media::VideoCaptureFormat kFormatSmall(gfx::Size(640, 480), 30.0,
53 media::PIXEL_FORMAT_I420); 54 media::PIXEL_FORMAT_I420);
54 media::VideoCaptureFormat kFormatLarge(gfx::Size(1920, 1080), 30.0, 55 media::VideoCaptureFormat kFormatLarge(gfx::Size(1920, 1080), 30.0,
55 media::PIXEL_FORMAT_I420); 56 media::PIXEL_FORMAT_I420);
56 media::VideoCaptureFormats formats; 57 media::VideoCaptureFormats formats;
57 formats.push_back(kFormatSmall); 58 formats.push_back(kFormatSmall);
58 formats.push_back(kFormatLarge); 59 formats.push_back(kFormatLarge);
59 callback.Run(formats); 60 callback.Run(formats);
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 public: 333 public:
333 FakeMediaStreamVideoSink(base::TimeTicks* capture_time, 334 FakeMediaStreamVideoSink(base::TimeTicks* capture_time,
334 media::VideoFrameMetadata* metadata, 335 media::VideoFrameMetadata* metadata,
335 base::Closure got_frame_cb) 336 base::Closure got_frame_cb)
336 : capture_time_(capture_time), 337 : capture_time_(capture_time),
337 metadata_(metadata), 338 metadata_(metadata),
338 got_frame_cb_(got_frame_cb) {} 339 got_frame_cb_(got_frame_cb) {}
339 340
340 void ConnectToTrack(const blink::WebMediaStreamTrack& track) { 341 void ConnectToTrack(const blink::WebMediaStreamTrack& track) {
341 MediaStreamVideoSink::ConnectToTrack( 342 MediaStreamVideoSink::ConnectToTrack(
342 track, 343 track, base::Bind(&FakeMediaStreamVideoSink::OnVideoFrame,
343 base::Bind(&FakeMediaStreamVideoSink::OnVideoFrame, 344 base::Unretained(this)),
344 base::Unretained(this))); 345 true);
345 } 346 }
346 347
347 void DisconnectFromTrack() { 348 void DisconnectFromTrack() {
348 MediaStreamVideoSink::DisconnectFromTrack(); 349 MediaStreamVideoSink::DisconnectFromTrack();
349 } 350 }
350 351
351 void OnVideoFrame(const scoped_refptr<media::VideoFrame>& frame, 352 void OnVideoFrame(const scoped_refptr<media::VideoFrame>& frame,
352 base::TimeTicks capture_time) { 353 base::TimeTicks capture_time) {
353 *capture_time_ = capture_time; 354 *capture_time_ = capture_time;
354 metadata_->Clear(); 355 metadata_->Clear();
(...skipping 16 matching lines...) Expand all
371 372
372 VideoCaptureDeliverFrameCB deliver_frame_cb; 373 VideoCaptureDeliverFrameCB deliver_frame_cb;
373 media::VideoCapturerSource::RunningCallback running_cb; 374 media::VideoCapturerSource::RunningCallback running_cb;
374 375
375 InSequence s; 376 InSequence s;
376 EXPECT_CALL(mock_delegate(), GetCurrentSupportedFormats(_, _, _, _)); 377 EXPECT_CALL(mock_delegate(), GetCurrentSupportedFormats(_, _, _, _));
377 EXPECT_CALL(mock_delegate(), StartCapture(_, _, _)) 378 EXPECT_CALL(mock_delegate(), StartCapture(_, _, _))
378 .WillOnce(testing::DoAll(testing::SaveArg<1>(&deliver_frame_cb), 379 .WillOnce(testing::DoAll(testing::SaveArg<1>(&deliver_frame_cb),
379 testing::SaveArg<2>(&running_cb))); 380 testing::SaveArg<2>(&running_cb)));
380 EXPECT_CALL(mock_delegate(), RequestRefreshFrame()); 381 EXPECT_CALL(mock_delegate(), RequestRefreshFrame());
382 EXPECT_CALL(mock_delegate(), SetCapturingLinkSecured(_))
383 .Times(::testing::AtLeast(1));
381 EXPECT_CALL(mock_delegate(), StopCapture()); 384 EXPECT_CALL(mock_delegate(), StopCapture());
382 blink::WebMediaStreamTrack track = StartSource(); 385 blink::WebMediaStreamTrack track = StartSource();
383 running_cb.Run(true); 386 running_cb.Run(true);
384 387
385 base::RunLoop run_loop; 388 base::RunLoop run_loop;
386 base::TimeTicks reference_capture_time = 389 base::TimeTicks reference_capture_time =
387 base::TimeTicks::FromInternalValue(60013); 390 base::TimeTicks::FromInternalValue(60013);
388 base::TimeTicks capture_time; 391 base::TimeTicks capture_time;
389 media::VideoFrameMetadata metadata; 392 media::VideoFrameMetadata metadata;
390 FakeMediaStreamVideoSink fake_sink( 393 FakeMediaStreamVideoSink fake_sink(
391 &capture_time, &metadata, 394 &capture_time, &metadata,
392 media::BindToCurrentLoop(run_loop.QuitClosure())); 395 media::BindToCurrentLoop(run_loop.QuitClosure()));
393 fake_sink.ConnectToTrack(track); 396 fake_sink.ConnectToTrack(track);
394 const scoped_refptr<media::VideoFrame> frame = 397 const scoped_refptr<media::VideoFrame> frame =
395 media::VideoFrame::CreateBlackFrame(gfx::Size(2, 2)); 398 media::VideoFrame::CreateBlackFrame(gfx::Size(2, 2));
396 frame->metadata()->SetDouble(media::VideoFrameMetadata::FRAME_RATE, 30.0); 399 frame->metadata()->SetDouble(media::VideoFrameMetadata::FRAME_RATE, 30.0);
397 child_process_->io_task_runner()->PostTask( 400 child_process_->io_task_runner()->PostTask(
398 FROM_HERE, base::Bind(deliver_frame_cb, frame, reference_capture_time)); 401 FROM_HERE, base::Bind(deliver_frame_cb, frame, reference_capture_time));
399 run_loop.Run(); 402 run_loop.Run();
400 fake_sink.DisconnectFromTrack(); 403 fake_sink.DisconnectFromTrack();
401 EXPECT_EQ(reference_capture_time, capture_time); 404 EXPECT_EQ(reference_capture_time, capture_time);
402 double metadata_value; 405 double metadata_value;
403 EXPECT_TRUE(metadata.GetDouble(media::VideoFrameMetadata::FRAME_RATE, 406 EXPECT_TRUE(metadata.GetDouble(media::VideoFrameMetadata::FRAME_RATE,
404 &metadata_value)); 407 &metadata_value));
405 EXPECT_EQ(30.0, metadata_value); 408 EXPECT_EQ(30.0, metadata_value);
406 } 409 }
407 410
408 } // namespace content 411 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698