33Define MS_KIND_VIDEO for "videoinput"
44Define MS_KIND_AUDIO for "audioinput"
55
6+ Define MS_MODE_NONE for "none"
7+ Define MS_MODE_MANUAL for "manual"
8+ Define MS_MODE_SINGLE_SHOT for "single-shot"
9+ Define MS_MODE_CONTINUOUS for "continuous"
10+
11+ Define MS_RESIZE_MODE_NONE for "none"
12+ Define MS_RESIZE_MODE_CROP_AND_SCALE for "crop-and-scale"
13+
614Struct tInputDeviceInfo
715 String deviceId
816 String groupId
9- String kind // MS_KIND_VIDEO or MS_KIND_AUDIO
17+ String kind // MS_KIND_*
1018 String label
1119End_Struct
1220
21+ Struct tMediaSettingsRange
22+ Number min
23+ Number max
24+ Number step
25+ End_Struct
26+
27+ Struct tMediaTrackCapabilities
28+ String deviceId
29+ String groupId
30+
31+ // Audio
32+ Boolean[] autoGainControl
33+ tMediaSettingsRange channelCount
34+ Boolean[] echoCancellation
35+ tMediaSettingsRange latency
36+ Boolean[] noiseSuppression
37+ tMediaSettingsRange sampleRate
38+ tMediaSettingsRange sampleSize
39+ Boolean[] voiceIsolation
40+
41+ // Video
42+ tMediaSettingsRange aspectRatio
43+ tMediaSettingsRange brightness
44+ tMediaSettingsRange colorTemperature
45+ tMediaSettingsRange contrast
46+ tMediaSettingsRange exposureCompensation
47+ String[] exposureMode // MS_MODE_*
48+ tMediaSettingsRange exposureTime
49+ String[] facingMode
50+ tMediaSettingsRange focusDistance
51+ String[] focusMode // MS_MODE_*
52+ tMediaSettingsRange frameRate
53+ tMediaSettingsRange height
54+ tMediaSettingsRange iso
55+ tMediaSettingsRange pan
56+ String[] resizeMode // MS_RESIZE_MODE_*
57+ tMediaSettingsRange saturation
58+ tMediaSettingsRange sharpness
59+ tMediaSettingsRange tilt
60+ Boolean torch
61+ String[] whiteBalanceMode // MS_MODE_*
62+ tMediaSettingsRange width
63+ tMediaSettingsRange zoom
64+ End_Struct
65+
1366Struct tMediaTrackSettings
1467 String deviceId
1568 String groupId
1669
70+ // Audio
1771 String autoGainControl
1872 String channelCount
1973 String echoCancellation
2074 String latency
2175 String noiseSuppression
2276 String sampleRate
2377 String sampleSize
78+ String voiceIsolation
2479
80+ // Video
2581 String aspectRatio
82+ String brightness
83+ String colorTemperature
84+ String contrast
85+ String exposureCompensation
86+ String exposureMode
87+ String exposureTime
2688 String facingMode
89+ String focusDistance
90+ String focusMode
2791 String frameRate
2892 String height
29- String width
93+ String iso
94+ String pan
3095 String resizeMode
96+ String saturation
97+ String sharpness
98+ String tilt
99+ String torch
100+ String whiteBalanceMode
101+ String width
102+ String zoom
31103
104+ // Display
32105 String cursor
33106 String displaySurface
34107 String logicalSurface
@@ -37,6 +110,7 @@ End_Struct
37110Struct tMediaStreamTrackInfo
38111 String kind
39112 String label
113+ tMediaTrackCapabilities capabilities
40114 tMediaTrackSettings settings
41115End_Struct
42116
@@ -97,6 +171,8 @@ Class cUserMediaStreamAPI is a cMediaStream
97171 Property String psMicrophonePermission ""
98172 { WebProperty=Client DesignTime=False }
99173 Property String psCameraPermission ""
174+ { WebProperty=Client DesignTime=False }
175+ Property String psPanTiltZoomPermission ""
100176
101177 // Set to True to include an audio stream
102178 { WebProperty=Client Category=Audio }
@@ -129,6 +205,9 @@ Class cUserMediaStreamAPI is a cMediaStream
129205 // Set to True to include a video stream
130206 { WebProperty=Client Category=Video }
131207 Property Boolean pbVideo False
208+ // Set to True to enable pan/tilt/zoom features if available (will ask for extended permissions)
209+ { WebProperty=Client Category=Video }
210+ Property Boolean pbWithPanTiltZoom False
132211 // Set to a deviceId from OnEnumerateDevices to request a specific device
133212 { WebProperty=Client Category=Video }
134213 Property String psVideoDeviceId ""
@@ -160,6 +239,10 @@ Class cUserMediaStreamAPI is a cMediaStream
160239 { WebProperty=Client Category="Client events" }
161240 Property String psClientOnCameraPermissionChange ""
162241 { WebProperty=Client Category="Server events" }
242+ Property Boolean pbServerOnPanTiltZoomPermissionChange False
243+ { WebProperty=Client Category="Client events" }
244+ Property String psClientOnPanTiltZoomPermissionChange ""
245+ { WebProperty=Client Category="Server events" }
163246 Property Boolean pbServerOnEnumerateDevices False
164247 { WebProperty=Client Category="Client events" }
165248 Property String psClientOnEnumerateDevices ""
@@ -172,6 +255,7 @@ Class cUserMediaStreamAPI is a cMediaStream
172255
173256 WebPublishProcedure OnMicrophonePermissionChange
174257 WebPublishProcedure OnCameraPermissionChange
258+ WebPublishProcedure OnPanTiltZoomPermissionChange
175259 WebPublishProcedure OnEnumerateDevicesProxy
176260 End_Procedure
177261
@@ -202,6 +286,10 @@ Class cUserMediaStreamAPI is a cMediaStream
202286 Procedure OnCameraPermissionChange
203287 End_Procedure
204288
289+ { MethodType=Event }
290+ Procedure OnPanTiltZoomPermissionChange
291+ End_Procedure
292+
205293 { MethodType=Event }
206294 Procedure OnEnumerateDevices tInputDeviceInfo[] stDevices
207295 End_Procedure
0 commit comments