diff options
author | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-26 10:54:01 +0000 |
---|---|---|
committer | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-26 10:54:01 +0000 |
commit | 7362421eb71391bd7078fe618f4baa4df5c57c99 (patch) | |
tree | 5e47f55280aa093ac7f957749d33d227b288c2d5 /media | |
parent | 507066ee0c76947e7fe62a839165870366a8da3c (diff) | |
download | chromium_src-7362421eb71391bd7078fe618f4baa4df5c57c99.zip chromium_src-7362421eb71391bd7078fe618f4baa4df5c57c99.tar.gz chromium_src-7362421eb71391bd7078fe618f4baa4df5c57c99.tar.bz2 |
Add a flag to use fake camera for getUserMedia()
Add a flag --use-fake-device-for-media-stream for replacing actual
camera with a fake one.
The fake camera also generates a visual beep every 1 second.
BUG=
Review URL: https://chromiumcodereview.appspot.com/11270026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164313 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/video/capture/fake_video_capture_device.cc | 19 | ||||
-rw-r--r-- | media/video/capture/fake_video_capture_device.h | 1 |
2 files changed, 18 insertions, 2 deletions
diff --git a/media/video/capture/fake_video_capture_device.cc b/media/video/capture/fake_video_capture_device.cc index 7512060..77afe8e 100644 --- a/media/video/capture/fake_video_capture_device.cc +++ b/media/video/capture/fake_video_capture_device.cc @@ -12,7 +12,8 @@ namespace media { -static const int kFakeCaptureTimeoutMs = 100; +static const int kFakeCaptureTimeoutMs = 50; +static const int kFakeCaptureBeepCycle = 20; // Visual beep every 1s. enum { kNumberOfFakeDevices = 2 }; bool FakeVideoCaptureDevice::fail_next_create_ = false; @@ -52,7 +53,8 @@ FakeVideoCaptureDevice::FakeVideoCaptureDevice(const Name& device_name) observer_(NULL), state_(kIdle), capture_thread_("CaptureThread"), - frame_size_(0) { + frame_size_(0), + frame_count_(0) { } FakeVideoCaptureDevice::~FakeVideoCaptureDevice() { @@ -130,6 +132,15 @@ void FakeVideoCaptureDevice::OnCaptureTask() { if (state_ != kCapturing) { return; } + + bool beep = false; + if (frame_count_ % kFakeCaptureBeepCycle == 0) { + beep = true; + // This will fill the frame in grey. + memset(fake_frame_.get(), 128, frame_size_); + } + frame_count_++; + // Give the captured frame to the observer. observer_->OnIncomingCapturedFrame(fake_frame_.get(), frame_size_, @@ -140,6 +151,10 @@ void FakeVideoCaptureDevice::OnCaptureTask() { base::Bind(&FakeVideoCaptureDevice::OnCaptureTask, base::Unretained(this)), base::TimeDelta::FromMilliseconds(kFakeCaptureTimeoutMs)); + + if (beep) { + memset(fake_frame_.get(), 0, frame_size_); + } } } // namespace media diff --git a/media/video/capture/fake_video_capture_device.h b/media/video/capture/fake_video_capture_device.h index bbb7569..082bc0e 100644 --- a/media/video/capture/fake_video_capture_device.h +++ b/media/video/capture/fake_video_capture_device.h @@ -55,6 +55,7 @@ class MEDIA_EXPORT FakeVideoCaptureDevice : public VideoCaptureDevice { base::Thread capture_thread_; int frame_size_; scoped_array<uint8> fake_frame_; + int frame_count_; static bool fail_next_create_; |