// Copyright 2013 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_FILE_VIDEO_CAPTURE_DEVICE_H_ #define MEDIA_CAPTURE_VIDEO_FILE_VIDEO_CAPTURE_DEVICE_H_ #include <stdint.h> #include <memory> #include "base/containers/queue.h" #include "base/files/file.h" #include "base/files/memory_mapped_file.h" #include "base/threading/thread.h" #include "base/threading/thread_checker.h" #include "base/time/time.h" #include "gpu/ipc/common/gpu_memory_buffer_support.h" #include "media/capture/video/video_capture_device.h" namespace media { class VideoFileParser; // Implementation of a VideoCaptureDevice class that reads from a file. Used for // testing the video capture pipeline when no real hardware is available. The // supported file formats are YUV4MPEG2 (a.k.a. Y4M) and MJPEG/JPEG. YUV4MPEG2 // is a minimal container with a series of uncompressed video only frames, see // the link http://wiki.multimedia.cx/index.php?title=YUV4MPEG2 for more // information on the file format. Several restrictions and notes apply, see the // implementation file. // Example Y4M videos can be found in http://media.xiph.org/video/derf. // Example MJPEG videos can be found in media/test/data/bear.mjpeg. // Restrictions: Y4M videos should have .y4m file extension and MJPEG videos // should have .mjpeg file extension. class CAPTURE_EXPORT FileVideoCaptureDevice : public VideoCaptureDevice { … }; } // namespace media #endif // MEDIA_CAPTURE_VIDEO_FILE_VIDEO_CAPTURE_DEVICE_H_