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 #ifndef WEBRTC_VIDEO_ENGINE_TEST_COMMON_VCM_CAPTURER_H_ 11 #define WEBRTC_VIDEO_ENGINE_TEST_COMMON_VCM_CAPTURER_H_ 12 13 #include "webrtc/common_types.h" 14 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h" 15 #include "webrtc/modules/video_capture/include/video_capture.h" 16 #include "webrtc/test/video_capturer.h" 17 18 namespace webrtc { 19 namespace test { 20 21 class VcmCapturer : public VideoCapturer, public VideoCaptureDataCallback { 22 public: 23 static VcmCapturer* Create(VideoSendStreamInput* input, size_t width, 24 size_t height, size_t target_fps); 25 virtual ~VcmCapturer(); 26 27 virtual void Start() OVERRIDE; 28 virtual void Stop() OVERRIDE; 29 30 virtual void OnIncomingCapturedFrame( 31 const int32_t id, I420VideoFrame& frame) OVERRIDE; // NOLINT 32 virtual void OnCaptureDelayChanged(const int32_t id, const int32_t delay) 33 OVERRIDE; 34 35 private: 36 explicit VcmCapturer(VideoSendStreamInput* input); 37 bool Init(size_t width, size_t height, size_t target_fps); 38 void Destroy(); 39 40 bool started_; 41 VideoCaptureModule* vcm_; 42 VideoCaptureCapability capability_; 43 }; 44 } // test 45 } // webrtc 46 47 #endif // WEBRTC_VIDEO_ENGINE_TEST_COMMON_VCM_CAPTURER_H_ 48