// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MEDIA_CAPTURE_VIDEO_FAKE_VIDEO_CAPTURE_DEVICE_H_ #define MEDIA_CAPTURE_VIDEO_FAKE_VIDEO_CAPTURE_DEVICE_H_ #include <stdint.h> #include <memory> #include <vector> #include "base/memory/raw_ptr.h" #include "base/threading/thread_checker.h" #include "base/time/time.h" #include "media/capture/video/video_capture_device.h" namespace gpu { class GpuMemoryBufferSupport; } // namespace gpu namespace media { struct FakeDeviceState; class FakePhotoDevice; class FrameDeliverer; class FrameDelivererFactory; // Paints a "pacman-like" animated circle including textual information such // as a frame count and timer. class PacmanFramePainter { … }; // Implementation of VideoCaptureDevice that generates test frames. This is // useful for testing the video capture components without having to use real // devices. The implementation schedules delayed tasks to itself to generate and // deliver frames at the requested rate. class FakeVideoCaptureDevice : public VideoCaptureDevice { … }; // Represents the current state of a FakeVideoCaptureDevice. // This is a separate struct because read-access to it is shared with several // collaborating classes. struct FakeDeviceState { … }; // A dependency needed by FakeVideoCaptureDevice. class FrameDelivererFactory { … }; struct FakePhotoDeviceConfig { … }; // Implements the photo functionality of a FakeVideoCaptureDevice class FakePhotoDevice { … }; } // namespace media #endif // MEDIA_CAPTURE_VIDEO_FAKE_VIDEO_CAPTURE_DEVICE_H_