summaryrefslogtreecommitdiffstats
path: root/chromium/content/renderer/media/mock_media_stream_video_source.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/renderer/media/mock_media_stream_video_source.cc')
-rw-r--r--chromium/content/renderer/media/mock_media_stream_video_source.cc91
1 files changed, 91 insertions, 0 deletions
diff --git a/chromium/content/renderer/media/mock_media_stream_video_source.cc b/chromium/content/renderer/media/mock_media_stream_video_source.cc
new file mode 100644
index 00000000000..b1e58f3957b
--- /dev/null
+++ b/chromium/content/renderer/media/mock_media_stream_video_source.cc
@@ -0,0 +1,91 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/renderer/media/mock_media_stream_video_source.h"
+
+#include "base/bind.h"
+#include "base/callback_helpers.h"
+#include "base/location.h"
+
+namespace content {
+
+MockMediaStreamVideoSource::MockMediaStreamVideoSource(
+ bool manual_get_supported_formats)
+ : manual_get_supported_formats_(manual_get_supported_formats),
+ max_requested_height_(0),
+ max_requested_width_(0),
+ attempted_to_start_(false) {
+ supported_formats_.push_back(
+ media::VideoCaptureFormat(
+ gfx::Size(MediaStreamVideoSource::kDefaultWidth,
+ MediaStreamVideoSource::kDefaultHeight),
+ MediaStreamVideoSource::kDefaultFrameRate,
+ media::PIXEL_FORMAT_I420));
+}
+
+MockMediaStreamVideoSource::~MockMediaStreamVideoSource() {}
+
+void MockMediaStreamVideoSource::StartMockedSource() {
+ DCHECK(attempted_to_start_);
+ attempted_to_start_ = false;
+ OnStartDone(true);
+}
+
+void MockMediaStreamVideoSource::FailToStartMockedSource() {
+ DCHECK(attempted_to_start_);
+ attempted_to_start_ = false;
+ OnStartDone(false);
+}
+
+void MockMediaStreamVideoSource::CompleteGetSupportedFormats() {
+ DCHECK(!formats_callback_.is_null());
+ base::ResetAndReturn(&formats_callback_).Run(supported_formats_);
+}
+
+void MockMediaStreamVideoSource::GetCurrentSupportedFormats(
+ int max_requested_height,
+ int max_requested_width,
+ const VideoCaptureDeviceFormatsCB& callback) {
+ DCHECK(formats_callback_.is_null());
+ max_requested_height_ = max_requested_height;
+ max_requested_width_ = max_requested_width;
+
+ if (manual_get_supported_formats_) {
+ formats_callback_ = callback;
+ return;
+ }
+ callback.Run(supported_formats_);
+}
+
+void MockMediaStreamVideoSource::StartSourceImpl(
+ const media::VideoCaptureParams& params,
+ const VideoCaptureDeliverFrameCB& frame_callback) {
+ DCHECK(frame_callback_.is_null());
+ params_ = params;
+ attempted_to_start_ = true;
+ frame_callback_ = frame_callback;
+}
+
+void MockMediaStreamVideoSource::StopSourceImpl() {
+}
+
+void MockMediaStreamVideoSource::DeliverVideoFrame(
+ const scoped_refptr<media::VideoFrame>& frame) {
+ DCHECK(!frame_callback_.is_null());
+ io_message_loop()->PostTask(
+ FROM_HERE,
+ base::Bind(&MockMediaStreamVideoSource::DeliverVideoFrameOnIO,
+ base::Unretained(this), frame, params_.requested_format,
+ base::TimeTicks(), frame_callback_));
+}
+
+void MockMediaStreamVideoSource::DeliverVideoFrameOnIO(
+ const scoped_refptr<media::VideoFrame>& frame,
+ media::VideoCaptureFormat format,
+ const base::TimeTicks& estimated_capture_time,
+ const VideoCaptureDeliverFrameCB& frame_callback) {
+ frame_callback.Run(frame, format, estimated_capture_time);
+}
+
+} // namespace content