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

Unified Diff: talk/media/base/fakevideocapturer.h

Issue 1587193006: Move talk/media to webrtc/media (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebased to b647aca12a884a13c1728118586245399b55fa3d (#11493) Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « talk/media/base/fakescreencapturerfactory.h ('k') | talk/media/base/fakevideorenderer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: talk/media/base/fakevideocapturer.h
diff --git a/talk/media/base/fakevideocapturer.h b/talk/media/base/fakevideocapturer.h
deleted file mode 100644
index a668ea7d0c937467a80ae4736530d3336ea41afc..0000000000000000000000000000000000000000
--- a/talk/media/base/fakevideocapturer.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * libjingle
- * Copyright 2004 Google Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef TALK_MEDIA_BASE_FAKEVIDEOCAPTURER_H_
-#define TALK_MEDIA_BASE_FAKEVIDEOCAPTURER_H_
-
-#include <string.h>
-
-#include <vector>
-
-#include "talk/media/base/videocapturer.h"
-#include "talk/media/base/videocommon.h"
-#include "talk/media/base/videoframe.h"
-#include "webrtc/base/timeutils.h"
-#ifdef HAVE_WEBRTC_VIDEO
-#include "talk/media/webrtc/webrtcvideoframefactory.h"
-#endif
-
-namespace cricket {
-
-// Fake video capturer that allows the test to manually pump in frames.
-class FakeVideoCapturer : public cricket::VideoCapturer {
- public:
- FakeVideoCapturer()
- : running_(false),
- initial_unix_timestamp_(time(NULL) * rtc::kNumNanosecsPerSec),
- next_timestamp_(rtc::kNumNanosecsPerMillisec),
- is_screencast_(false),
- rotation_(webrtc::kVideoRotation_0) {
-#ifdef HAVE_WEBRTC_VIDEO
- set_frame_factory(new cricket::WebRtcVideoFrameFactory());
-#endif
- // Default supported formats. Use ResetSupportedFormats to over write.
- std::vector<cricket::VideoFormat> formats;
- formats.push_back(cricket::VideoFormat(1280, 720,
- cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
- formats.push_back(cricket::VideoFormat(640, 480,
- cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
- formats.push_back(cricket::VideoFormat(320, 240,
- cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
- formats.push_back(cricket::VideoFormat(160, 120,
- cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420));
- formats.push_back(cricket::VideoFormat(1280, 720,
- cricket::VideoFormat::FpsToInterval(60), cricket::FOURCC_I420));
- ResetSupportedFormats(formats);
- }
- ~FakeVideoCapturer() {
- SignalDestroyed(this);
- }
-
- void ResetSupportedFormats(const std::vector<cricket::VideoFormat>& formats) {
- SetSupportedFormats(formats);
- }
- bool CaptureFrame() {
- if (!GetCaptureFormat()) {
- return false;
- }
- return CaptureCustomFrame(GetCaptureFormat()->width,
- GetCaptureFormat()->height,
- GetCaptureFormat()->interval,
- GetCaptureFormat()->fourcc);
- }
- bool CaptureCustomFrame(int width, int height, uint32_t fourcc) {
- // default to 30fps
- return CaptureCustomFrame(width, height, 33333333, fourcc);
- }
- bool CaptureCustomFrame(int width,
- int height,
- int64_t timestamp_interval,
- uint32_t fourcc) {
- if (!running_) {
- return false;
- }
- // Currently, |fourcc| is always I420 or ARGB.
- // TODO(fbarchard): Extend SizeOf to take fourcc.
- uint32_t size = 0u;
- if (fourcc == cricket::FOURCC_ARGB) {
- size = width * 4 * height;
- } else if (fourcc == cricket::FOURCC_I420) {
- size = static_cast<uint32_t>(cricket::VideoFrame::SizeOf(width, height));
- } else {
- return false; // Unsupported FOURCC.
- }
- if (size == 0u) {
- return false; // Width and/or Height were zero.
- }
-
- cricket::CapturedFrame frame;
- frame.width = width;
- frame.height = height;
- frame.fourcc = fourcc;
- frame.data_size = size;
- frame.time_stamp = initial_unix_timestamp_ + next_timestamp_;
- next_timestamp_ += timestamp_interval;
-
- rtc::scoped_ptr<char[]> data(new char[size]);
- frame.data = data.get();
- // Copy something non-zero into the buffer so Validate wont complain that
- // the frame is all duplicate.
- memset(frame.data, 1, size / 2);
- memset(reinterpret_cast<uint8_t*>(frame.data) + (size / 2), 2,
- size - (size / 2));
- memcpy(frame.data, reinterpret_cast<const uint8_t*>(&fourcc), 4);
- frame.rotation = rotation_;
- // TODO(zhurunz): SignalFrameCaptured carry returned value to be able to
- // capture results from downstream.
- SignalFrameCaptured(this, &frame);
- return true;
- }
-
- void SignalCapturedFrame(cricket::CapturedFrame* frame) {
- SignalFrameCaptured(this, frame);
- }
-
- sigslot::signal1<FakeVideoCapturer*> SignalDestroyed;
-
- virtual cricket::CaptureState Start(const cricket::VideoFormat& format) {
- cricket::VideoFormat supported;
- if (GetBestCaptureFormat(format, &supported)) {
- SetCaptureFormat(&supported);
- }
- running_ = true;
- SetCaptureState(cricket::CS_RUNNING);
- return cricket::CS_RUNNING;
- }
- virtual void Stop() {
- running_ = false;
- SetCaptureFormat(NULL);
- SetCaptureState(cricket::CS_STOPPED);
- }
- virtual bool IsRunning() { return running_; }
- void SetScreencast(bool is_screencast) {
- is_screencast_ = is_screencast;
- }
- virtual bool IsScreencast() const { return is_screencast_; }
- bool GetPreferredFourccs(std::vector<uint32_t>* fourccs) {
- fourccs->push_back(cricket::FOURCC_I420);
- fourccs->push_back(cricket::FOURCC_MJPG);
- return true;
- }
-
- void SetRotation(webrtc::VideoRotation rotation) {
- rotation_ = rotation;
- }
-
- webrtc::VideoRotation GetRotation() { return rotation_; }
-
- private:
- bool running_;
- int64_t initial_unix_timestamp_;
- int64_t next_timestamp_;
- bool is_screencast_;
- webrtc::VideoRotation rotation_;
-};
-
-} // namespace cricket
-
-#endif // TALK_MEDIA_BASE_FAKEVIDEOCAPTURER_H_
« no previous file with comments | « talk/media/base/fakescreencapturerfactory.h ('k') | talk/media/base/fakevideorenderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698