diff options
Diffstat (limited to 'chromium/third_party/webrtc/modules/video_capture/video_capture_defines.h')
-rw-r--r-- | chromium/third_party/webrtc/modules/video_capture/video_capture_defines.h | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/chromium/third_party/webrtc/modules/video_capture/video_capture_defines.h b/chromium/third_party/webrtc/modules/video_capture/video_capture_defines.h new file mode 100644 index 00000000000..ef97ecab9db --- /dev/null +++ b/chromium/third_party/webrtc/modules/video_capture/video_capture_defines.h @@ -0,0 +1,118 @@ +/* + * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_VIDEO_CAPTURE_DEFINES_H_ +#define WEBRTC_MODULES_VIDEO_CAPTURE_VIDEO_CAPTURE_DEFINES_H_ + +#include "webrtc/modules/include/module_common_types.h" +#include "webrtc/typedefs.h" +#include "webrtc/video_frame.h" + +namespace webrtc +{ +// Defines +#ifndef NULL + #define NULL 0 +#endif + +enum {kVideoCaptureUniqueNameLength =1024}; //Max unique capture device name lenght +enum {kVideoCaptureDeviceNameLength =256}; //Max capture device name lenght +enum {kVideoCaptureProductIdLength =128}; //Max product id length + +struct VideoCaptureCapability +{ + int32_t width; + int32_t height; + int32_t maxFPS; + int32_t expectedCaptureDelay; + RawVideoType rawType; + VideoCodecType codecType; + bool interlaced; + + VideoCaptureCapability() + { + width = 0; + height = 0; + maxFPS = 0; + expectedCaptureDelay = 0; + rawType = kVideoUnknown; + codecType = kVideoCodecUnknown; + interlaced = false; + } + ; + bool operator!=(const VideoCaptureCapability &other) const + { + if (width != other.width) + return true; + if (height != other.height) + return true; + if (maxFPS != other.maxFPS) + return true; + if (rawType != other.rawType) + return true; + if (codecType != other.codecType) + return true; + if (interlaced != other.interlaced) + return true; + return false; + } + bool operator==(const VideoCaptureCapability &other) const + { + return !operator!=(other); + } +}; + +enum VideoCaptureAlarm +{ + Raised = 0, + Cleared = 1 +}; + +/* External Capture interface. Returned by Create + and implemented by the capture module. + */ +class VideoCaptureExternal +{ +public: + // |capture_time| must be specified in the NTP time format in milliseconds. + virtual int32_t IncomingFrame(uint8_t* videoFrame, + size_t videoFrameLength, + const VideoCaptureCapability& frameInfo, + int64_t captureTime = 0) = 0; +protected: + ~VideoCaptureExternal() {} +}; + +// Callback class to be implemented by module user +class VideoCaptureDataCallback +{ +public: + virtual void OnIncomingCapturedFrame(const int32_t id, + const VideoFrame& videoFrame) = 0; + virtual void OnCaptureDelayChanged(const int32_t id, + const int32_t delay) = 0; +protected: + virtual ~VideoCaptureDataCallback(){} +}; + +class VideoCaptureFeedBack +{ +public: + virtual void OnCaptureFrameRate(const int32_t id, + const uint32_t frameRate) = 0; + virtual void OnNoPictureAlarm(const int32_t id, + const VideoCaptureAlarm alarm) = 0; +protected: + virtual ~VideoCaptureFeedBack(){} +}; + +} // namespace webrtc + +#endif // WEBRTC_MODULES_VIDEO_CAPTURE_VIDEO_CAPTURE_DEFINES_H_ |