• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #include "webrtc/test/video_capturer.h"
12 
13 #include "webrtc/test/testsupport/fileutils.h"
14 #include "webrtc/test/frame_generator_capturer.h"
15 #include "webrtc/test/vcm_capturer.h"
16 
17 namespace webrtc {
18 namespace test {
19 
20 class NullCapturer : public VideoCapturer {
21  public:
NullCapturer()22   NullCapturer() : VideoCapturer(NULL) {}
~NullCapturer()23   virtual ~NullCapturer() {}
24 
Start()25   virtual void Start() {}
Stop()26   virtual void Stop() {}
27 };
28 
VideoCapturer(VideoCaptureInput * input)29 VideoCapturer::VideoCapturer(VideoCaptureInput* input) : input_(input) {
30 }
31 
Create(VideoCaptureInput * input,size_t width,size_t height,int fps,Clock * clock)32 VideoCapturer* VideoCapturer::Create(VideoCaptureInput* input,
33                                      size_t width,
34                                      size_t height,
35                                      int fps,
36                                      Clock* clock) {
37   VcmCapturer* vcm_capturer = VcmCapturer::Create(input, width, height, fps);
38 
39   if (vcm_capturer != NULL) {
40     return vcm_capturer;
41   }
42   // TODO(pbos): Log a warning that this failed.
43 
44   FrameGeneratorCapturer* frame_generator_capturer =
45       FrameGeneratorCapturer::Create(input, width, height, fps, clock);
46   if (frame_generator_capturer != NULL) {
47     return frame_generator_capturer;
48   }
49   // TODO(pbos): Log a warning that this failed.
50 
51   return new NullCapturer();
52 }
53 }  // test
54 }  // webrtc
55