Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: webrtc/modules/video_capture/include/video_capture.h

Issue 1439823002: Remove webrtc/modules/video_{capture,render}/include (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2012 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 #ifndef WEBRTC_MODULES_VIDEO_CAPTURE_INCLUDE_VIDEO_CAPTURE_H_
12 #define WEBRTC_MODULES_VIDEO_CAPTURE_INCLUDE_VIDEO_CAPTURE_H_
13
14 #include "webrtc/common_video/rotation.h"
15 #include "webrtc/modules/include/module.h"
16 #include "webrtc/modules/video_capture/include/video_capture_defines.h"
17
18 namespace webrtc {
19
20 class VideoCaptureModule: public RefCountedModule {
21 public:
22 // Interface for receiving information about available camera devices.
23 class DeviceInfo {
24 public:
25 virtual uint32_t NumberOfDevices() = 0;
26
27 // Returns the available capture devices.
28 // deviceNumber - Index of capture device.
29 // deviceNameUTF8 - Friendly name of the capture device.
30 // deviceUniqueIdUTF8 - Unique name of the capture device if it exist.
31 // Otherwise same as deviceNameUTF8.
32 // productUniqueIdUTF8 - Unique product id if it exist.
33 // Null terminated otherwise.
34 virtual int32_t GetDeviceName(
35 uint32_t deviceNumber,
36 char* deviceNameUTF8,
37 uint32_t deviceNameLength,
38 char* deviceUniqueIdUTF8,
39 uint32_t deviceUniqueIdUTF8Length,
40 char* productUniqueIdUTF8 = 0,
41 uint32_t productUniqueIdUTF8Length = 0) = 0;
42
43
44 // Returns the number of capabilities this device.
45 virtual int32_t NumberOfCapabilities(
46 const char* deviceUniqueIdUTF8) = 0;
47
48 // Gets the capabilities of the named device.
49 virtual int32_t GetCapability(
50 const char* deviceUniqueIdUTF8,
51 const uint32_t deviceCapabilityNumber,
52 VideoCaptureCapability& capability) = 0;
53
54 // Gets clockwise angle the captured frames should be rotated in order
55 // to be displayed correctly on a normally rotated display.
56 virtual int32_t GetOrientation(const char* deviceUniqueIdUTF8,
57 VideoRotation& orientation) = 0;
58
59 // Gets the capability that best matches the requested width, height and
60 // frame rate.
61 // Returns the deviceCapabilityNumber on success.
62 virtual int32_t GetBestMatchedCapability(
63 const char* deviceUniqueIdUTF8,
64 const VideoCaptureCapability& requested,
65 VideoCaptureCapability& resulting) = 0;
66
67 // Display OS /capture device specific settings dialog
68 virtual int32_t DisplayCaptureSettingsDialogBox(
69 const char* deviceUniqueIdUTF8,
70 const char* dialogTitleUTF8,
71 void* parentWindow,
72 uint32_t positionX,
73 uint32_t positionY) = 0;
74
75 virtual ~DeviceInfo() {}
76 };
77
78 class VideoCaptureEncodeInterface {
79 public:
80 virtual int32_t ConfigureEncoder(const VideoCodec& codec,
81 uint32_t maxPayloadSize) = 0;
82 // Inform the encoder about the new target bit rate.
83 // - newBitRate : New target bit rate in Kbit/s.
84 // - frameRate : The target frame rate.
85 virtual int32_t SetRates(int32_t newBitRate, int32_t frameRate) = 0;
86 // Inform the encoder about the packet loss and the round-trip time.
87 // - packetLoss : Fraction lost
88 // (loss rate in percent = 100 * packetLoss / 255).
89 // - rtt : Round-trip time in milliseconds.
90 virtual int32_t SetChannelParameters(uint32_t packetLoss, int64_t rtt) = 0;
91
92 // Encode the next frame as key frame.
93 virtual int32_t EncodeFrameType(const FrameType type) = 0;
94 protected:
95 virtual ~VideoCaptureEncodeInterface() {
96 }
97 };
98
99 // Register capture data callback
100 virtual void RegisterCaptureDataCallback(
101 VideoCaptureDataCallback& dataCallback) = 0;
102
103 // Remove capture data callback
104 virtual void DeRegisterCaptureDataCallback() = 0;
105
106 // Register capture callback.
107 virtual void RegisterCaptureCallback(VideoCaptureFeedBack& callBack) = 0;
108
109 // Remove capture callback.
110 virtual void DeRegisterCaptureCallback() = 0;
111
112 // Start capture device
113 virtual int32_t StartCapture(
114 const VideoCaptureCapability& capability) = 0;
115
116 virtual int32_t StopCapture() = 0;
117
118 // Returns the name of the device used by this module.
119 virtual const char* CurrentDeviceName() const = 0;
120
121 // Returns true if the capture device is running
122 virtual bool CaptureStarted() = 0;
123
124 // Gets the current configuration.
125 virtual int32_t CaptureSettings(VideoCaptureCapability& settings) = 0;
126
127 virtual void SetCaptureDelay(int32_t delayMS) = 0;
128
129 // Returns the current CaptureDelay. Only valid when the camera is running.
130 virtual int32_t CaptureDelay() = 0;
131
132 // Set the rotation of the captured frames.
133 // If the rotation is set to the same as returned by
134 // DeviceInfo::GetOrientation the captured frames are
135 // displayed correctly if rendered.
136 virtual int32_t SetCaptureRotation(VideoRotation rotation) = 0;
137
138 // Tells the capture module whether to apply the pending rotation. By default,
139 // the rotation is applied and the generated frame is up right. When set to
140 // false, generated frames will carry the rotation information from
141 // SetCaptureRotation. Return value indicates whether this operation succeeds.
142 virtual bool SetApplyRotation(bool enable) = 0;
143
144 // Return whether the rotation is applied or left pending.
145 virtual bool GetApplyRotation() = 0;
146
147 // Gets a pointer to an encode interface if the capture device supports the
148 // requested type and size. NULL otherwise.
149 virtual VideoCaptureEncodeInterface* GetEncodeInterface(
150 const VideoCodec& codec) = 0;
151
152 virtual void EnableFrameRateCallback(const bool enable) = 0;
153 virtual void EnableNoPictureAlarm(const bool enable) = 0;
154
155 protected:
156 virtual ~VideoCaptureModule() {};
157 };
158
159 } // namespace webrtc
160 #endif // WEBRTC_MODULES_VIDEO_CAPTURE_INCLUDE_VIDEO_CAPTURE_H_
OLDNEW
« no previous file with comments | « webrtc/modules/video_capture/device_info_impl.h ('k') | webrtc/modules/video_capture/include/video_capture_defines.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698