rust_mediamtx_http_api/
structs.rs

1use serde::{Deserialize, Serialize};
2#[derive(Serialize, Deserialize, Debug, Clone)]
3#[serde(rename_all = "camelCase")]
4pub struct WebRTCICEServer {
5    url: String,
6    username: String,
7    password: String,
8}
9#[derive(Serialize, Deserialize, Debug, Clone)]
10#[serde(rename_all = "camelCase")]
11pub struct TMediaMTXGlobalConfig {
12    pub log_level: String,
13
14    pub log_destinations: Vec<String>,
15
16    pub log_file: String,
17
18    pub read_timeout: String,
19
20    pub write_timeout: String,
21
22    pub write_queue_size: i32,
23
24    pub udp_max_payload_size: i32,
25
26    pub external_authentication_url: Option<String>,
27    pub api: bool,
28
29    pub api_address: String,
30    pub metrics: bool,
31
32    pub metrics_address: String,
33    pub pprof: bool,
34
35    pub pprof_address: String,
36
37    pub run_on_connect: String,
38
39    pub run_on_connect_restart: bool,
40
41    pub run_on_disconnect: String,
42    pub rtsp: bool,
43    pub protocols: Vec<String>,
44    pub encryption: String,
45
46    pub rtsp_address: String,
47
48    pub rtsps_address: String,
49
50    pub rtp_address: String,
51
52    pub rtcp_address: String,
53
54    pub multicast_ip_range: Option<String>,
55
56    pub multicast_rtp_port: Option<i32>,
57
58    pub multicast_rtcp_port: Option<i32>,
59
60    pub server_key: String,
61
62    pub server_cert: String,
63
64    pub auth_methods: Vec<String>,
65    pub rtmp: bool,
66
67    pub rtmp_address: String,
68
69    pub rtmp_encryption: String,
70
71    pub rtmps_address: String,
72
73    pub rtmp_server_key: String,
74
75    pub rtmp_server_cert: String,
76    pub hls: bool,
77
78    pub hls_address: String,
79
80    pub hls_encryption: bool,
81
82    pub hls_server_key: String,
83
84    pub hls_server_cert: String,
85
86    pub hls_always_remux: bool,
87
88    pub hls_variant: String,
89
90    pub hls_segment_count: i32,
91
92    pub hls_segment_duration: String,
93
94    pub hls_part_duration: String,
95
96    pub hls_segment_max_size: String,
97
98    pub hls_allow_origin: String,
99
100    pub hls_trusted_proxies: Vec<String>,
101
102    pub hls_directory: String,
103    pub webrtc: bool,
104
105    pub webrtc_address: String,
106
107    pub webrtc_encryption: bool,
108
109    pub webrtc_server_key: String,
110
111    pub webrtc_server_cert: String,
112
113    pub webrtc_allow_origin: String,
114
115    pub webrtc_trusted_proxies: Vec<String>,
116
117    pub webrtc_local_udp_address: Option<String>,
118
119    pub webrtc_local_tcp_address: Option<String>,
120
121    pub webrtc_ips_from_interfaces: Option<bool>,
122
123    pub webrtc_ips_from_interfaces_list: Option<Vec<String>>,
124
125    pub webrtc_additional_hosts: Vec<String>,
126
127    pub webrtc_ice_servers2: Option<Vec<WebRTCICEServer>>,
128    pub srt: bool,
129
130    pub srt_address: String,
131}
132
133#[derive(Serialize, Deserialize, Debug, Clone)]
134#[serde(rename_all = "camelCase")]
135pub struct TMediaMTXGlobalPatch {
136    pub log_level: Option<String>,
137
138    pub log_destinations: Option<Vec<String>>,
139
140    pub log_file: Option<String>,
141
142    pub read_timeout: Option<String>,
143
144    pub write_timeout: Option<String>,
145
146    pub write_queue_size: Option<u32>,
147
148    pub udp_max_payload_size: Option<u32>,
149
150    pub external_authentication_url: Option<String>,
151    pub api: Option<bool>,
152
153    pub api_address: Option<String>,
154    pub metrics: Option<bool>,
155
156    pub metrics_address: Option<String>,
157    pprof: Option<bool>,
158
159    pub pprof_address: Option<String>,
160
161    pub run_on_connect: Option<String>,
162
163    pub run_on_connect_restart: Option<bool>,
164
165    pub run_on_disconnect: Option<String>,
166    pub rtsp: Option<bool>,
167    pub protocols: Option<Vec<String>>,
168    pub encryption: Option<String>,
169
170    pub rtsp_address: Option<String>,
171
172    pub rtsps_address: Option<String>,
173
174    pub rtp_address: Option<String>,
175
176    pub rtcp_address: Option<String>,
177
178    pub multicast_ip_range: Option<String>,
179
180    pub multicast_rtp_port: Option<u32>,
181
182    pub multicast_rtcp_port: Option<u32>,
183
184    pub server_key: Option<String>,
185
186    pub server_cert: Option<String>,
187
188    pub auth_methods: Option<Vec<String>>,
189    rtmp: Option<bool>,
190
191    pub rtmp_address: Option<String>,
192
193    pub rtmp_encryption: Option<String>,
194
195    pub rtmps_address: Option<String>,
196
197    pub rtmp_server_key: Option<String>,
198
199    pub rtmp_server_cert: Option<String>,
200    pub hls: Option<bool>,
201
202    pub hls_address: Option<String>,
203
204    pub hls_encryption: Option<bool>,
205
206    pub hls_server_key: Option<String>,
207
208    pub hls_server_cert: Option<String>,
209
210    pub hls_always_remux: Option<bool>,
211
212    pub hls_variant: Option<String>,
213
214    pub hls_segment_count: Option<u32>,
215
216    pub hls_segment_duration: Option<String>,
217
218    pub hls_part_duration: Option<String>,
219
220    pub hls_segment_max_size: Option<String>,
221
222    pub hls_allow_origin: Option<String>,
223
224    pub hls_trusted_proxies: Option<Vec<String>>,
225
226    pub hls_directory: Option<String>,
227    pub webrtc: Option<bool>,
228
229    pub webrtc_address: Option<String>,
230
231    pub webrtc_encryption: Option<bool>,
232
233    pub webrtc_server_key: Option<String>,
234
235    pub webrtc_server_cert: Option<String>,
236
237    pub webrtc_allow_origin: Option<String>,
238
239    pub webrtc_trusted_proxies: Option<Vec<String>>,
240
241    pub webrtc_local_udp_address: Option<String>,
242
243    pub webrtc_local_tcp_address: Option<String>,
244
245    pub webrtc_ips_from_interfaces: Option<bool>,
246
247    pub webrtc_ips_from_interfaces_list: Option<Vec<String>>,
248
249    pub webrtc_additional_hosts: Option<Vec<String>>,
250
251    pub webrtc_ice_servers2: Option<Vec<WebRTCICEServer>>,
252    srt: Option<bool>,
253
254    pub srt_address: Option<String>,
255}
256
257#[derive(Serialize, Deserialize, Debug, Clone)]
258#[serde(rename_all = "camelCase")]
259pub struct TMediaMTXGetDefaultPath {
260    pub name: String,
261    pub source: String,
262    pub source_fingerprint: String,
263    pub source_on_demand: bool,
264    pub source_on_demand_start_timeout: String,
265    pub source_on_demand_close_after: String,
266    pub max_readers: i32,
267    pub srt_read_passphrase: String,
268    pub fallback: String,
269    pub record: bool,
270    pub record_path: String,
271    pub record_format: String,
272    pub record_part_duration: String,
273    pub record_segment_duration: String,
274    pub record_delete_after: String,
275    pub publish_user: String,
276    pub publish_pass: String,
277    pub publish_ips: Option<Vec<String>>,
278    pub read_user: String,
279    pub read_pass: String,
280    pub read_ips: Option<Vec<String>>,
281    pub override_publisher: bool,
282    pub srt_publish_passphrase: String,
283    pub rtsp_transport: String,
284    pub rtsp_any_port: bool,
285    pub rtsp_range_type: String,
286    pub rtsp_range_start: String,
287    pub source_redirect: String,
288    pub rpi_camera_cam_id: Option<i32>,
289    pub rpi_camera_width: i32,
290    pub rpi_camera_height: i32,
291    pub rpi_camera_h_flip: bool,
292    pub rpi_camera_v_flip: bool,
293    pub rpi_camera_brightness: i32,
294    pub rpi_camera_contrast: i32,
295    pub rpi_camera_saturation: i32,
296    pub rpi_camera_sharpness: i32,
297    pub rpi_camera_exposure: String,
298    pub rpi_camera_awb: Option<String>,
299    pub rpi_camera_denoise: String,
300    pub rpi_camera_shutter: i32,
301    pub rpi_camera_metering: String,
302    pub rpi_camera_gain: i32,
303    pub rpi_camera_ev: Option<i32>,
304    pub rpi_camera_roi: Option<String>,
305    pub rpi_camera_hdr: Option<bool>,
306    pub rpi_camera_tuning_file: String,
307    pub rpi_camera_mode: String,
308    pub rpi_camera_fps: Option<i32>,
309    pub rpi_camera_idr_period: Option<i32>,
310    pub rpi_camera_bitrate: i32,
311    pub rpi_camera_profile: String,
312    pub rpi_camera_level: String,
313    pub rpi_camera_af_mode: String,
314    pub rpi_camera_af_range: String,
315    pub rpi_camera_af_speed: String,
316    pub rpi_camera_lens_position: i32,
317    pub rpi_camera_af_window: String,
318    pub rpi_camera_text_overlay_enable: bool,
319    pub rpi_camera_text_overlay: String,
320    pub run_on_init: String,
321    pub run_on_init_restart: bool,
322    pub run_on_demand: String,
323    pub run_on_demand_restart: bool,
324    pub run_on_demand_start_timeout: String,
325    pub run_on_demand_close_after: String,
326    pub run_on_un_demand: String,
327    pub run_on_ready: String,
328    pub run_on_ready_restart: bool,
329    pub run_on_not_ready: String,
330    pub run_on_read: String,
331    pub run_on_read_restart: bool,
332    pub run_on_unread: String,
333    pub run_on_record_segment_create: String,
334    pub run_on_record_segment_complete: String,
335}
336
337#[derive(Serialize, Deserialize, Debug)]
338#[serde(rename_all = "camelCase")]
339pub struct TMediaMTXPatchDefaultPath {
340    pub name: Option<String>,
341    pub source: Option<String>,
342    pub source_fingerprint: Option<String>,
343    pub source_on_demand: Option<bool>,
344    pub source_on_demand_start_timeout: Option<String>,
345    pub source_on_demand_close_after: Option<String>,
346    pub max_readers: Option<i32>,
347    pub srt_read_passphrase: Option<String>,
348    pub fallback: Option<String>,
349    pub record: Option<bool>,
350    pub record_path: Option<String>,
351    pub record_format: Option<String>,
352    pub record_part_duration: Option<String>,
353    pub record_segment_duration: Option<String>,
354    pub record_delete_after: Option<String>,
355    pub publish_user: Option<String>,
356    pub publish_pass: Option<String>,
357    pub publish_ips: Option<Vec<String>>,
358    pub read_user: Option<String>,
359    pub read_pass: Option<String>,
360    pub read_ips: Option<Vec<String>>,
361    pub override_publisher: Option<bool>,
362    pub srt_publish_passphrase: Option<String>,
363    pub rtsp_transport: Option<String>,
364    pub rtsp_any_port: Option<bool>,
365    pub rtsp_range_type: Option<String>,
366    pub rtsp_range_start: Option<String>,
367    pub source_redirect: Option<String>,
368    pub rpi_camera_cam_id: Option<i32>,
369    pub rpi_camera_width: Option<i32>,
370    pub rpi_camera_height: Option<i32>,
371    pub rpi_camera_h_flip: Option<bool>,
372    pub rpi_camera_v_flip: Option<bool>,
373    pub rpi_camera_brightness: Option<i32>,
374    pub rpi_camera_contrast: Option<i32>,
375    pub rpi_camera_saturation: Option<i32>,
376    pub rpi_camera_sharpness: Option<i32>,
377    pub rpi_camera_exposure: Option<String>,
378    pub rpi_camera_awb: Option<String>,
379    pub rpi_camera_denoise: Option<String>,
380    pub rpi_camera_shutter: Option<i32>,
381    pub rpi_camera_metering: Option<String>,
382    pub rpi_camera_gain: Option<i32>,
383    pub rpi_camera_ev: Option<i32>,
384    pub rpi_camera_roi: Option<String>,
385    pub rpi_camera_hdr: Option<bool>,
386    pub rpi_camera_tuning_file: Option<String>,
387    pub rpi_camera_mode: Option<String>,
388    pub rpi_camera_fps: Option<i32>,
389    pub rpi_camera_idr_period: Option<i32>,
390    pub rpi_camera_bitrate: Option<i32>,
391    pub rpi_camera_profile: Option<String>,
392    pub rpi_camera_level: Option<String>,
393    pub rpi_camera_af_mode: Option<String>,
394    pub rpi_camera_af_range: Option<String>,
395    pub rpi_camera_af_speed: Option<String>,
396    pub rpi_camera_lens_position: Option<i32>,
397    pub rpi_camera_af_window: Option<String>,
398    pub rpi_camera_text_overlay_enable: Option<bool>,
399    pub rpi_camera_text_overlay: Option<String>,
400    pub run_on_init: Option<String>,
401    pub run_on_init_restart: Option<bool>,
402    pub run_on_demand: Option<String>,
403    pub run_on_demand_restart: Option<bool>,
404    pub run_on_demand_start_timeout: Option<String>,
405    pub run_on_demand_close_after: Option<String>,
406    pub run_on_un_demand: Option<String>,
407
408    pub run_on_ready: Option<String>,
409    pub run_on_ready_restart: Option<bool>,
410    pub run_on_not_ready: Option<String>,
411    pub run_on_read: Option<String>,
412    pub run_on_read_restart: Option<bool>,
413    pub run_on_unread: Option<String>,
414    pub run_on_record_segment_create: Option<String>,
415    pub run_on_record_segment_complete: Option<String>,
416}
417
418#[derive(Debug, Serialize, Deserialize, Clone)]
419#[serde(rename_all = "camelCase")]
420
421pub struct MediaMTXPathsConfigs {
422    pub page_count: u32,
423    pub items: Vec<TMediaMTXGetDefaultPath>,
424}
425
426#[derive(Serialize, Deserialize, Debug, Clone)]
427#[serde(rename_all = "camelCase")]
428pub struct TMediaMTXAddPath {
429    pub name: String,
430    pub source: Option<String>,
431    pub source_fingerprint: Option<String>,
432    pub source_on_demand: Option<bool>,
433    pub source_on_demand_start_timeout: Option<String>,
434    pub source_on_demand_close_after: Option<String>,
435    pub max_readers: Option<i32>,
436    pub srt_read_passphrase: Option<String>,
437    pub fallback: Option<String>,
438    pub record: Option<bool>,
439    pub record_path: Option<String>,
440    pub record_format: Option<String>,
441    pub record_part_duration: Option<String>,
442    pub record_segment_duration: Option<String>,
443    pub record_delete_after: Option<String>,
444    pub publish_user: Option<String>,
445    pub publish_pass: Option<String>,
446    pub publish_ips: Option<Vec<String>>,
447    pub read_user: Option<String>,
448    pub read_pass: Option<String>,
449    pub read_ips: Option<Vec<String>>,
450    pub override_publisher: Option<bool>,
451    pub srt_publish_passphrase: Option<String>,
452    pub rtsp_transport: Option<String>,
453    pub rtsp_any_port: Option<bool>,
454    pub rtsp_range_type: Option<String>,
455    pub rtsp_range_start: Option<String>,
456    pub source_redirect: Option<String>,
457    pub rpi_camera_cam_id: Option<i32>,
458    pub rpi_camera_width: Option<i32>,
459    pub rpi_camera_height: Option<i32>,
460    pub rpi_camera_h_flip: Option<bool>,
461    pub rpi_camera_v_flip: Option<bool>,
462    pub rpi_camera_brightness: Option<i32>,
463    pub rpi_camera_contrast: Option<i32>,
464    pub rpi_camera_saturation: Option<i32>,
465    pub rpi_camera_sharpness: Option<i32>,
466    pub rpi_camera_exposure: Option<String>,
467    pub rpi_camera_awb: Option<String>,
468    pub rpi_camera_denoise: Option<String>,
469    pub rpi_camera_shutter: Option<i32>,
470    pub rpi_camera_metering: Option<String>,
471    pub rpi_camera_gain: Option<i32>,
472    pub rpi_camera_ev: Option<i32>,
473    pub rpi_camera_roi: Option<String>,
474    pub rpi_camera_hdr: Option<bool>,
475    pub rpi_camera_tuning_file: Option<String>,
476    pub rpi_camera_mode: Option<String>,
477    pub rpi_camera_fps: Option<i32>,
478    pub rpi_camera_idr_period: Option<i32>,
479    pub rpi_camera_bitrate: Option<i32>,
480    pub rpi_camera_profile: Option<String>,
481    pub rpi_camera_level: Option<String>,
482    pub rpi_camera_af_mode: Option<String>,
483    pub rpi_camera_af_range: Option<String>,
484    pub rpi_camera_af_speed: Option<String>,
485    pub rpi_camera_lens_position: Option<i32>,
486    pub rpi_camera_af_window: Option<String>,
487    pub rpi_camera_text_overlay_enable: Option<bool>,
488    pub rpi_camera_text_overlay: Option<String>,
489    pub run_on_init: Option<String>,
490    pub run_on_init_restart: Option<bool>,
491    pub run_on_demand: Option<String>,
492    pub run_on_demand_restart: Option<bool>,
493    pub run_on_demand_start_timeout: Option<String>,
494    pub run_on_demand_close_after: Option<String>,
495    pub run_on_un_demand: Option<String>,
496
497    pub run_on_ready: Option<String>,
498    pub run_on_ready_restart: Option<bool>,
499    pub run_on_not_ready: Option<String>,
500    pub run_on_read: Option<String>,
501    pub run_on_read_restart: Option<bool>,
502    pub run_on_unread: Option<String>,
503    pub run_on_record_segment_create: Option<String>,
504    pub run_on_record_segment_complete: Option<String>,
505}
506
507#[derive(Serialize, Deserialize, Debug, Clone)]
508#[serde(rename_all = "camelCase")]
509pub struct TMediaMTXDeletePath {
510    pub name: String,
511}
512#[derive(Debug, Serialize, Deserialize, Clone)]
513pub struct MediaMTXPathSource {
514    #[serde(rename = "type")]
515    pub type_field: String,
516    pub id: String,
517}
518
519#[derive(Debug, Serialize, Deserialize, Clone)]
520pub struct MediaMTXPathReader {
521    #[serde(rename = "type")]
522    pub type_field: String,
523    pub id: String,
524}
525#[derive(Debug, Serialize, Deserialize, Clone)]
526#[serde(rename_all = "camelCase")]
527
528pub struct MediaMTXPathStatus {
529    pub name: String,
530    pub conf_name: String,
531    pub source: MediaMTXPathSource,
532    pub ready: bool,
533    pub ready_time: String,
534    pub tracks: Vec<String>,
535    pub bytes_received: u64,
536    pub bytes_sent: u64,
537    pub readers: Vec<MediaMTXPathReader>,
538}
539#[derive(Debug, Serialize, Deserialize, Clone)]
540#[serde(rename_all = "camelCase")]
541
542pub struct MediaMTXPathsStatusList {
543    pub page_count: u32,
544    pub items: Vec<MediaMTXPathStatus>,
545}