@stinkycomputing/sesame-api-client 1.5.1 → 1.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -22
- package/README.md +433 -433
- package/dist/browser.cjs +21664 -0
- package/dist/browser.cjs.map +7 -0
- package/dist/browser.d.ts +16 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.mjs +21631 -0
- package/dist/browser.mjs.map +7 -0
- package/dist/command-list.d.ts +2 -1
- package/dist/command-list.d.ts.map +1 -1
- package/dist/index.browser.mjs +42 -5
- package/dist/index.browser.mjs.map +2 -2
- package/dist/index.cjs +42 -5
- package/dist/index.cjs.map +2 -2
- package/dist/index.mjs +42 -5
- package/dist/index.mjs.map +2 -2
- package/dist/proto/.gitignore +2 -2
- package/dist/proto/api.d.ts +8 -1
- package/dist/proto/api.js +35 -0
- package/dist/sesame-api-client.d.ts +4 -1
- package/dist/sesame-api-client.d.ts.map +1 -1
- package/dist/sesame-binary-protocol.d.ts +99 -0
- package/dist/sesame-binary-protocol.d.ts.map +1 -0
- package/docs/protocol-reference.md +2368 -2207
- package/package.json +1 -1
|
@@ -1,2207 +1,2368 @@
|
|
|
1
|
-
<!-- Generated from .proto files - do not edit manually. -->
|
|
2
|
-
<!-- Regenerate: cmake --build build --target proto-docs -->
|
|
3
|
-
|
|
4
|
-
# Sesame Protocol Reference
|
|
5
|
-
|
|
6
|
-
Complete reference for all protobuf types available through `@stinkycomputing/sesame-api-client`.
|
|
7
|
-
|
|
8
|
-
```typescript
|
|
9
|
-
import { sesame } from '@stinkycomputing/sesame-api-client';
|
|
10
|
-
// All types under sesame.v1.*
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Table of Contents
|
|
16
|
-
|
|
17
|
-
- [sesame/v1/audio/audio_mixer.proto](#sesame_v1_audio_audio_mixer-proto)
|
|
18
|
-
- [sesame/v1/commands/commands.proto](#sesame_v1_commands_commands-proto)
|
|
19
|
-
- [sesame/v1/common/common.proto](#sesame_v1_common_common-proto)
|
|
20
|
-
- [sesame/v1/compositor/compositor.proto](#sesame_v1_compositor_compositor-proto)
|
|
21
|
-
- [sesame/v1/jobs/jobs.proto](#sesame_v1_jobs_jobs-proto)
|
|
22
|
-
- [sesame/v1/outputs/output.proto](#sesame_v1_outputs_output-proto)
|
|
23
|
-
- [sesame/v1/recorder/recorder.proto](#sesame_v1_recorder_recorder-proto)
|
|
24
|
-
- [sesame/v1/rpc/rpc.proto](#sesame_v1_rpc_rpc-proto)
|
|
25
|
-
- [sesame/v1/rpc/service.proto](#sesame_v1_rpc_service-proto)
|
|
26
|
-
- [sesame/v1/sources/source.proto](#sesame_v1_sources_source-proto)
|
|
27
|
-
- [sesame/v1/status/statistics.proto](#sesame_v1_status_statistics-proto)
|
|
28
|
-
- [sesame/v1/status/status.proto](#sesame_v1_status_status-proto)
|
|
29
|
-
- [sesame/v1/wire/wire.proto](#sesame_v1_wire_wire-proto)
|
|
30
|
-
- [Event Subscriptions](#event-subscriptions)
|
|
31
|
-
- [Scene Graph Properties](#scene-graph-properties)
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
## sesame/v1/audio/audio_mixer.proto
|
|
37
|
-
|
|
38
|
-
`sesame.v1.audio`
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
### AudioMixerChannelType
|
|
44
|
-
|
|
45
|
-
Audio mixer channel type.
|
|
46
|
-
|
|
47
|
-
| Value | Name | Description |
|
|
48
|
-
|-------|------|-------------|
|
|
49
|
-
| 0 | `AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED` | Unspecified (invalid) |
|
|
50
|
-
| 1 | `AUDIO_MIXER_CHANNEL_TYPE_MONO` | Mono channel |
|
|
51
|
-
| 2 | `AUDIO_MIXER_CHANNEL_TYPE_STEREO` | Stereo channel |
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
### AudioChannelAddRequest
|
|
55
|
-
|
|
56
|
-
Request to add a channel to an audio mixer.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
| Field | Type | Description |
|
|
60
|
-
|-------|------|-------------|
|
|
61
|
-
| `mixer_id` | string | |
|
|
62
|
-
| `channel_config` | AudioMixerChannel | |
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
###
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
| Field | Type | Description |
|
|
71
|
-
|-------|------|-------------|
|
|
72
|
-
| `
|
|
73
|
-
| `
|
|
74
|
-
| `
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
| `
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
|
96
|
-
|
|
97
|
-
| `
|
|
98
|
-
| `
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
|
111
|
-
|
|
112
|
-
| `
|
|
113
|
-
| `
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
###
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
| `
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
###
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
| `
|
|
252
|
-
| `
|
|
253
|
-
| `
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
|
295
|
-
|
|
296
|
-
|
|
|
297
|
-
|
|
|
298
|
-
|
|
|
299
|
-
|
|
|
300
|
-
|
|
|
301
|
-
|
|
|
302
|
-
|
|
|
303
|
-
|
|
|
304
|
-
|
|
|
305
|
-
|
|
|
306
|
-
|
|
|
307
|
-
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
|
316
|
-
|
|
317
|
-
|
|
|
318
|
-
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
|
337
|
-
|
|
338
|
-
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
###
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
|
379
|
-
|
|
380
|
-
| `
|
|
381
|
-
| `
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
| `
|
|
395
|
-
| `
|
|
396
|
-
| `
|
|
397
|
-
| `
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
|
409
|
-
|
|
410
|
-
| `
|
|
411
|
-
| `
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
###
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
|
457
|
-
|
|
458
|
-
|
|
|
459
|
-
|
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
###
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
|
470
|
-
|
|
471
|
-
|
|
|
472
|
-
|
|
|
473
|
-
|
|
|
474
|
-
|
|
|
475
|
-
|
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
###
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
| `
|
|
487
|
-
| `
|
|
488
|
-
| `
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
|
533
|
-
|
|
534
|
-
| `
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
|
595
|
-
|
|
596
|
-
|
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
|
608
|
-
|
|
609
|
-
|
|
|
610
|
-
|
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
|
632
|
-
|
|
633
|
-
|
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
|
647
|
-
|
|
648
|
-
| `
|
|
649
|
-
| `
|
|
650
|
-
| `
|
|
651
|
-
| `
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
|
686
|
-
|
|
687
|
-
| `
|
|
688
|
-
| `
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
|
729
|
-
|
|
730
|
-
| `
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
|
739
|
-
|
|
740
|
-
| `
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
| `
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
| `
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
|
795
|
-
|
|
796
|
-
|
|
|
797
|
-
|
|
|
798
|
-
|
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
|
807
|
-
|-------|------|-------------|
|
|
808
|
-
|
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
###
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
| `
|
|
876
|
-
| `
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
|
885
|
-
|-------|------|-------------|
|
|
886
|
-
| `
|
|
887
|
-
| `
|
|
888
|
-
| `
|
|
889
|
-
| `
|
|
890
|
-
| `
|
|
891
|
-
| `
|
|
892
|
-
| `
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
|
903
|
-
|
|
904
|
-
| `
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
| `
|
|
916
|
-
| `
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
|
941
|
-
|
|
942
|
-
| `
|
|
943
|
-
| `
|
|
944
|
-
| `
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
|
994
|
-
|
|
995
|
-
| `
|
|
996
|
-
| `
|
|
997
|
-
| `
|
|
998
|
-
| `
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
|
1026
|
-
|
|
1027
|
-
|
|
|
1028
|
-
|
|
|
1029
|
-
|
|
|
1030
|
-
|
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
|
1041
|
-
|
|
1042
|
-
| `
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
|
1076
|
-
|
|
1077
|
-
| `
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
| `
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
|
1109
|
-
|
|
1110
|
-
| `
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
| `
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
###
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
| Field | Type | Description |
|
|
1166
|
-
|-------|------|-------------|
|
|
1167
|
-
| `
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
| `
|
|
1179
|
-
| `
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
###
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
| Field | Type | Description |
|
|
1246
|
-
|-------|------|-------------|
|
|
1247
|
-
| `
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
|
1434
|
-
|
|
1435
|
-
|
|
|
1436
|
-
|
|
|
1437
|
-
|
|
|
1438
|
-
|
|
|
1439
|
-
|
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
|
1498
|
-
|
|
1499
|
-
| `
|
|
1500
|
-
| `
|
|
1501
|
-
| `
|
|
1502
|
-
| `
|
|
1503
|
-
| `
|
|
1504
|
-
| `
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
|
1538
|
-
|
|
1539
|
-
| `
|
|
1540
|
-
| `
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
|
1574
|
-
|
|
1575
|
-
| `
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
###
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
|
1594
|
-
|
|
1595
|
-
| `
|
|
1596
|
-
| `
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
|
1651
|
-
|
|
1652
|
-
| `
|
|
1653
|
-
| `
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
|
1667
|
-
|
|
1668
|
-
| `
|
|
1669
|
-
| `
|
|
1670
|
-
| `
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
|
1690
|
-
|
|
1691
|
-
| `
|
|
1692
|
-
| `
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
|
1713
|
-
|
|
1714
|
-
| `
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
| `
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
###
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
| Field | Type | Description |
|
|
1734
|
-
|-------|------|-------------|
|
|
1735
|
-
| `
|
|
1736
|
-
| `
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
`
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
|
1787
|
-
|
|
1788
|
-
| `
|
|
1789
|
-
| `
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
|
1814
|
-
|
|
1815
|
-
| `
|
|
1816
|
-
| `
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
###
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
| `
|
|
1828
|
-
| `
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
|
1837
|
-
|
|
1838
|
-
| `
|
|
1839
|
-
| `
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
`
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
|
1875
|
-
|
|
1876
|
-
| `
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
###
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
|
1909
|
-
|
|
1910
|
-
| `
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
| `
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
|
1948
|
-
|
|
1949
|
-
| `
|
|
1950
|
-
| `
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
|
1976
|
-
|
|
1977
|
-
| `
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
|
2000
|
-
|
|
2001
|
-
|
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
|
2012
|
-
|
|
2013
|
-
| `
|
|
2014
|
-
| `
|
|
2015
|
-
| `
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
| `
|
|
2027
|
-
| `
|
|
2028
|
-
| `
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
###
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
| `
|
|
2064
|
-
| `
|
|
2065
|
-
| `
|
|
2066
|
-
| `
|
|
2067
|
-
| `
|
|
2068
|
-
| `
|
|
2069
|
-
| `
|
|
2070
|
-
| `
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
|
2090
|
-
|
|
2091
|
-
| `
|
|
2092
|
-
| `
|
|
2093
|
-
| `
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
|
2098
|
-
|
|
2099
|
-
| `
|
|
2100
|
-
| `
|
|
2101
|
-
| `
|
|
2102
|
-
| `
|
|
2103
|
-
| `
|
|
2104
|
-
| `
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
|
2149
|
-
|
|
2150
|
-
|
|
|
2151
|
-
|
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
|
2172
|
-
|
|
2173
|
-
|
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
|
2204
|
-
|
|
2205
|
-
| `
|
|
2206
|
-
|
|
2207
|
-
|
|
1
|
+
<!-- Generated from .proto files - do not edit manually. -->
|
|
2
|
+
<!-- Regenerate: cmake --build build --target proto-docs -->
|
|
3
|
+
|
|
4
|
+
# Sesame Protocol Reference
|
|
5
|
+
|
|
6
|
+
Complete reference for all protobuf types available through `@stinkycomputing/sesame-api-client`.
|
|
7
|
+
|
|
8
|
+
```typescript
|
|
9
|
+
import { sesame } from '@stinkycomputing/sesame-api-client';
|
|
10
|
+
// All types under sesame.v1.*
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Table of Contents
|
|
16
|
+
|
|
17
|
+
- [sesame/v1/audio/audio_mixer.proto](#sesame_v1_audio_audio_mixer-proto)
|
|
18
|
+
- [sesame/v1/commands/commands.proto](#sesame_v1_commands_commands-proto)
|
|
19
|
+
- [sesame/v1/common/common.proto](#sesame_v1_common_common-proto)
|
|
20
|
+
- [sesame/v1/compositor/compositor.proto](#sesame_v1_compositor_compositor-proto)
|
|
21
|
+
- [sesame/v1/jobs/jobs.proto](#sesame_v1_jobs_jobs-proto)
|
|
22
|
+
- [sesame/v1/outputs/output.proto](#sesame_v1_outputs_output-proto)
|
|
23
|
+
- [sesame/v1/recorder/recorder.proto](#sesame_v1_recorder_recorder-proto)
|
|
24
|
+
- [sesame/v1/rpc/rpc.proto](#sesame_v1_rpc_rpc-proto)
|
|
25
|
+
- [sesame/v1/rpc/service.proto](#sesame_v1_rpc_service-proto)
|
|
26
|
+
- [sesame/v1/sources/source.proto](#sesame_v1_sources_source-proto)
|
|
27
|
+
- [sesame/v1/status/statistics.proto](#sesame_v1_status_statistics-proto)
|
|
28
|
+
- [sesame/v1/status/status.proto](#sesame_v1_status_status-proto)
|
|
29
|
+
- [sesame/v1/wire/wire.proto](#sesame_v1_wire_wire-proto)
|
|
30
|
+
- [Event Subscriptions](#event-subscriptions)
|
|
31
|
+
- [Scene Graph Properties](#scene-graph-properties)
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## sesame/v1/audio/audio_mixer.proto
|
|
37
|
+
|
|
38
|
+
`sesame.v1.audio`
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
### AudioMixerChannelType
|
|
44
|
+
|
|
45
|
+
Audio mixer channel type.
|
|
46
|
+
|
|
47
|
+
| Value | Name | Description |
|
|
48
|
+
|-------|------|-------------|
|
|
49
|
+
| 0 | `AUDIO_MIXER_CHANNEL_TYPE_UNSPECIFIED` | Unspecified (invalid) |
|
|
50
|
+
| 1 | `AUDIO_MIXER_CHANNEL_TYPE_MONO` | Mono channel |
|
|
51
|
+
| 2 | `AUDIO_MIXER_CHANNEL_TYPE_STEREO` | Stereo channel |
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
### AudioChannelAddRequest
|
|
55
|
+
|
|
56
|
+
Request to add a channel to an audio mixer.
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
| Field | Type | Description |
|
|
60
|
+
|-------|------|-------------|
|
|
61
|
+
| `mixer_id` | string | |
|
|
62
|
+
| `channel_config` | AudioMixerChannel | |
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
### AudioChannelControlRequest
|
|
66
|
+
|
|
67
|
+
Per-channel property updates. Absent optional fields are left unchanged.
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
| Field | Type | Description |
|
|
71
|
+
|-------|------|-------------|
|
|
72
|
+
| `channel_id` | string | |
|
|
73
|
+
| `level` | optional float | |
|
|
74
|
+
| `pan` | optional float | |
|
|
75
|
+
| `plugins` | repeated AudioPluginControlRequest | |
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
### AudioChannelPluginStatus
|
|
79
|
+
|
|
80
|
+
Audio channel plugin status.
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
| Field | Type | Description |
|
|
84
|
+
|-------|------|-------------|
|
|
85
|
+
| `id` | string | |
|
|
86
|
+
| `type` | string | |
|
|
87
|
+
| `params` | repeated AudioPluginParamStatus | |
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
### AudioChannelRemoveRequest
|
|
91
|
+
|
|
92
|
+
Request to remove a channel from an audio mixer.
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
| Field | Type | Description |
|
|
96
|
+
|-------|------|-------------|
|
|
97
|
+
| `mixer_id` | string | |
|
|
98
|
+
| `channel_id` | string | |
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
### AudioChannelStatus
|
|
102
|
+
|
|
103
|
+
Audio channel status.
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
| Field | Type | Description |
|
|
107
|
+
|-------|------|-------------|
|
|
108
|
+
| `id` | string | |
|
|
109
|
+
| `output_type` | AudioMixerChannelType | |
|
|
110
|
+
| `level` | float | |
|
|
111
|
+
| `pan` | float | |
|
|
112
|
+
| `vu` | repeated float | |
|
|
113
|
+
| `has_data` | bool | |
|
|
114
|
+
| `read_errors` | uint32 | |
|
|
115
|
+
| `plugins` | repeated AudioChannelPluginStatus | |
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
### AudioControlRequest
|
|
119
|
+
|
|
120
|
+
Payload for DATA_TYPE_AUDIO_CONTROL frames (transport → server).
|
|
121
|
+
|
|
122
|
+
The target mixer ID is NOT included here — it is resolved server-side from
|
|
123
|
+
the MetadataRouter binding configured for this source track. This mirrors
|
|
124
|
+
AudioMixerStatus: to build a control message, take an AudioMixerStatus,
|
|
125
|
+
pick the channels you want to change, copy their `id` into `channel_id`,
|
|
126
|
+
and set the desired `level`/`pan`/plugin params. Omit fields you don't
|
|
127
|
+
want to change (optional fields that are absent are left unchanged).
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
| Field | Type | Description |
|
|
131
|
+
|-------|------|-------------|
|
|
132
|
+
| `channels` | repeated AudioChannelControlRequest | |
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
### AudioMixerAddRequest
|
|
136
|
+
|
|
137
|
+
Request to add a new audio mixer.
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
| Field | Type | Description |
|
|
141
|
+
|-------|------|-------------|
|
|
142
|
+
| `id` | string | |
|
|
143
|
+
| `config` | AudioMixerConfig | |
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
### AudioMixerChannel
|
|
147
|
+
|
|
148
|
+
Audio mixer channel configuration.
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
| Field | Type | Description |
|
|
152
|
+
|-------|------|-------------|
|
|
153
|
+
| `id` | string | |
|
|
154
|
+
| `source_id` | string | |
|
|
155
|
+
| `channel_type` | AudioMixerChannelType | |
|
|
156
|
+
| `source_channels` | repeated uint32 | |
|
|
157
|
+
| `level` | float | |
|
|
158
|
+
| `pan` | float | |
|
|
159
|
+
| `plugins` | repeated AudioPlugin | |
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
### AudioMixerConfig
|
|
163
|
+
|
|
164
|
+
Audio mixer configuration.
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
| Field | Type | Description |
|
|
168
|
+
|-------|------|-------------|
|
|
169
|
+
| `channels` | repeated AudioMixerChannel | |
|
|
170
|
+
| `output_type` | AudioMixerChannelType | |
|
|
171
|
+
| `order` | uint32 | |
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
### AudioMixerRemoveRequest
|
|
175
|
+
|
|
176
|
+
Request to remove an audio mixer.
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
| Field | Type | Description |
|
|
180
|
+
|-------|------|-------------|
|
|
181
|
+
| `id` | string | |
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
### AudioMixerStatus
|
|
185
|
+
|
|
186
|
+
Audio mixer status.
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
| Field | Type | Description |
|
|
190
|
+
|-------|------|-------------|
|
|
191
|
+
| `id` | string | |
|
|
192
|
+
| `output_type` | AudioMixerChannelType | |
|
|
193
|
+
| `vu` | repeated float | |
|
|
194
|
+
| `channels` | repeated AudioChannelStatus | |
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
### AudioMixerUpdateRequest
|
|
198
|
+
|
|
199
|
+
Request to update an existing audio mixer.
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
| Field | Type | Description |
|
|
203
|
+
|-------|------|-------------|
|
|
204
|
+
| `id` | string | |
|
|
205
|
+
| `config` | AudioMixerConfig | |
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
### AudioPlugin
|
|
209
|
+
|
|
210
|
+
Audio plugin instance.
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
| Field | Type | Description |
|
|
214
|
+
|-------|------|-------------|
|
|
215
|
+
| `id` | string | |
|
|
216
|
+
| `type` | string | |
|
|
217
|
+
| `params` | repeated AudioPluginParam | |
|
|
218
|
+
| `aux_input_mix_ids` | repeated string | |
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
### AudioPluginControlRequest
|
|
222
|
+
|
|
223
|
+
Plugin parameter update within an AudioChannelControlRequest.
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
| Field | Type | Description |
|
|
227
|
+
|-------|------|-------------|
|
|
228
|
+
| `plugin_id` | string | |
|
|
229
|
+
| `params` | repeated AudioPluginParam | |
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
### AudioPluginParam
|
|
233
|
+
|
|
234
|
+
Audio plugin parameter.
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
| Field | Type | Description |
|
|
238
|
+
|-------|------|-------------|
|
|
239
|
+
| `id` | uint32 | |
|
|
240
|
+
| `float_value` | float | |
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
### AudioPluginParamStatus
|
|
244
|
+
|
|
245
|
+
Audio plugin parameter status (with display info).
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
| Field | Type | Description |
|
|
249
|
+
|-------|------|-------------|
|
|
250
|
+
| `id` | uint32 | |
|
|
251
|
+
| `float_value` | float | |
|
|
252
|
+
| `label` | string | |
|
|
253
|
+
| `display_value` | string | |
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
## sesame/v1/commands/commands.proto
|
|
260
|
+
|
|
261
|
+
`sesame.v1.commands`
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
### CommandExecutionResponse
|
|
267
|
+
|
|
268
|
+
Command execution response.
|
|
269
|
+
|
|
270
|
+
Reserved for future per-command results.
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
### CommandList
|
|
274
|
+
|
|
275
|
+
Command list.
|
|
276
|
+
A list of commands to execute in sequence.
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
| Field | Type | Description |
|
|
280
|
+
|-------|------|-------------|
|
|
281
|
+
| `command_list` | repeated CommandListItem | |
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
### CommandListItem
|
|
285
|
+
|
|
286
|
+
Command list item.
|
|
287
|
+
Each item represents a single command to execute at a specific time offset.
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
| Field | Type | Description |
|
|
291
|
+
|-------|------|-------------|
|
|
292
|
+
| `time_offset_us` | int64 | |
|
|
293
|
+
| `add_source` | sesame.v1.sources.SourceAddRequest | |
|
|
294
|
+
| `update_source` | sesame.v1.sources.SourceUpdateRequest | |
|
|
295
|
+
| `remove_source` | sesame.v1.sources.SourceRemoveRequest | |
|
|
296
|
+
| `add_output` | sesame.v1.outputs.OutputAddRequest | |
|
|
297
|
+
| `update_output` | sesame.v1.outputs.OutputUpdateRequest | |
|
|
298
|
+
| `remove_output` | sesame.v1.outputs.OutputRemoveRequest | |
|
|
299
|
+
| `add_compositor` | sesame.v1.compositor.CompositorAddRequest | |
|
|
300
|
+
| `remove_compositor` | sesame.v1.compositor.CompositorRemoveRequest | |
|
|
301
|
+
| `clear_compositor` | sesame.v1.compositor.CompositorClearRequest | |
|
|
302
|
+
| `add_node` | sesame.v1.compositor.NodeAddRequest | |
|
|
303
|
+
| `remove_node` | sesame.v1.compositor.NodeRemoveRequest | |
|
|
304
|
+
| `set_property` | sesame.v1.compositor.PropertySetRequest | |
|
|
305
|
+
| `animate_property` | sesame.v1.compositor.PropertyAnimateRequest | |
|
|
306
|
+
| `add_audio_mixer` | sesame.v1.audio.AudioMixerAddRequest | |
|
|
307
|
+
| `update_audio_mixer` | sesame.v1.audio.AudioMixerUpdateRequest | |
|
|
308
|
+
| `remove_audio_mixer` | sesame.v1.audio.AudioMixerRemoveRequest | |
|
|
309
|
+
| `add_audio_channel` | sesame.v1.audio.AudioChannelAddRequest | |
|
|
310
|
+
| `remove_audio_channel` | sesame.v1.audio.AudioChannelRemoveRequest | |
|
|
311
|
+
| `update_source_transport` | sesame.v1.sources.SourceTransportCommand | |
|
|
312
|
+
| `load_playlist` | sesame.v1.sources.LoadPlaylistRequest | |
|
|
313
|
+
| `eject_playlist` | sesame.v1.sources.EjectPlaylistRequest | |
|
|
314
|
+
| `callback` | sesame.v1.common.Callback | |
|
|
315
|
+
| `set_source_metadata` | sesame.v1.sources.SourceMetadataSetRequest | |
|
|
316
|
+
| `set_metadata_bindings` | SetMetadataBindingsRequest | |
|
|
317
|
+
| `transaction_id` | optional uint32 | |
|
|
318
|
+
| `transaction_deps` | repeated uint32 | |
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
### MetadataBinding
|
|
322
|
+
|
|
323
|
+
Routes metadata between producers and consumers across transport boundaries.
|
|
324
|
+
|
|
325
|
+
Outbound route:
|
|
326
|
+
source_id + metadata_id -> output_id + track_name
|
|
327
|
+
|
|
328
|
+
Inbound route:
|
|
329
|
+
source_id + track_name -> target_id + metadata_id
|
|
330
|
+
|
|
331
|
+
Exactly one route direction should be specified per binding:
|
|
332
|
+
- outbound: output_id is set, target_id is empty
|
|
333
|
+
- inbound: target_id is set, output_id is empty
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
| Field | Type | Description |
|
|
337
|
+
|-------|------|-------------|
|
|
338
|
+
| `source_id` | string | |
|
|
339
|
+
| `metadata_id` | string | |
|
|
340
|
+
| `output_id` | string | |
|
|
341
|
+
| `track_name` | string | |
|
|
342
|
+
| `target_id` | string | |
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
### SetMetadataBindingsRequest
|
|
346
|
+
|
|
347
|
+
Replaces the full metadata routing table.
|
|
348
|
+
Send once after all sources/outputs are configured.
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
| Field | Type | Description |
|
|
352
|
+
|-------|------|-------------|
|
|
353
|
+
| `bindings` | repeated MetadataBinding | |
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
## sesame/v1/common/common.proto
|
|
360
|
+
|
|
361
|
+
`sesame.v1.common`
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
### CodecType
|
|
367
|
+
|
|
368
|
+
Shared codec identifier for video and audio.
|
|
369
|
+
Video codecs occupy numbers 1–63; audio codecs start at 64.
|
|
370
|
+
|
|
371
|
+
| Value | Name | Description |
|
|
372
|
+
|-------|------|-------------|
|
|
373
|
+
| 0 | `CODEC_TYPE_UNSPECIFIED` | Unspecified (invalid) |
|
|
374
|
+
| 1 | `CODEC_TYPE_VIDEO_VP8` | VP8 codec |
|
|
375
|
+
| 2 | `CODEC_TYPE_VIDEO_VP9` | VP9 codec |
|
|
376
|
+
| 3 | `CODEC_TYPE_VIDEO_AVC` | H.264/AVC codec |
|
|
377
|
+
| 4 | `CODEC_TYPE_VIDEO_HEVC` | H.265/HEVC codec |
|
|
378
|
+
| 5 | `CODEC_TYPE_VIDEO_AV1` | AV1 codec |
|
|
379
|
+
| 6 | `CODEC_TYPE_VIDEO_PRORES` | Apple ProRes codec family |
|
|
380
|
+
| 7 | `CODEC_TYPE_VIDEO_DNXHR` | Avid DNxHR codec family |
|
|
381
|
+
| 64 | `CODEC_TYPE_AUDIO_OPUS` | Opus audio codec |
|
|
382
|
+
| 65 | `CODEC_TYPE_AUDIO_AAC` | AAC audio codec |
|
|
383
|
+
| 66 | `CODEC_TYPE_AUDIO_PCM` | PCM 16-bit little-endian audio |
|
|
384
|
+
| 67 | `CODEC_TYPE_AUDIO_PCM_S24LE` | PCM 24-bit little-endian audio |
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
### ConnectionState
|
|
388
|
+
|
|
389
|
+
Connection/lifecycle state for runtime entities (sources, outputs, etc.).
|
|
390
|
+
Used by source/output status models across the API.
|
|
391
|
+
|
|
392
|
+
| Value | Name | Description |
|
|
393
|
+
|-------|------|-------------|
|
|
394
|
+
| 0 | `CONNECTION_STATE_UNSPECIFIED` | Unspecified |
|
|
395
|
+
| 1 | `CONNECTION_STATE_INITIALIZING` | Initializing resources |
|
|
396
|
+
| 2 | `CONNECTION_STATE_CONNECTING` | Connecting/opening |
|
|
397
|
+
| 3 | `CONNECTION_STATE_ONLINE` | Healthy and running |
|
|
398
|
+
| 4 | `CONNECTION_STATE_DEGRADED` | Running with reduced health |
|
|
399
|
+
| 5 | `CONNECTION_STATE_OFFLINE` | Stopped or unavailable |
|
|
400
|
+
| 6 | `CONNECTION_STATE_ERROR` | Failed with error |
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
### EventTopic
|
|
404
|
+
|
|
405
|
+
Typed event topics for subscriptions and event delivery.
|
|
406
|
+
Replaces stringly-typed topic names with compile-time checked values.
|
|
407
|
+
|
|
408
|
+
| Value | Name | Description |
|
|
409
|
+
|-------|------|-------------|
|
|
410
|
+
| 0 | `EVENT_TOPIC_UNSPECIFIED` | Unspecified (invalid) |
|
|
411
|
+
| 1 | `EVENT_TOPIC_ERROR` | Error events |
|
|
412
|
+
| 2 | `EVENT_TOPIC_TRANSPORT` | Source transport/playback state changes |
|
|
413
|
+
| 3 | `EVENT_TOPIC_CALLBACK` | Client callback events |
|
|
414
|
+
| 4 | `EVENT_TOPIC_JOB` | Job events (export, import, etc.) |
|
|
415
|
+
| 5 | `EVENT_TOPIC_METADATA` | JSON metadata track events (inbound data frames routed to apps) |
|
|
416
|
+
| 6 | `EVENT_TOPIC_RECORDER` | Recorder events |
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
### VideoFormat
|
|
420
|
+
|
|
421
|
+
Video format for Decklink and other hardware devices.
|
|
422
|
+
|
|
423
|
+
| Value | Name | Description |
|
|
424
|
+
|-------|------|-------------|
|
|
425
|
+
| 0 | `VIDEO_FORMAT_UNSPECIFIED` | Unspecified (invalid) |
|
|
426
|
+
| 1 | `VIDEO_FORMAT_1080_50I` | 1080i50 |
|
|
427
|
+
| 2 | `VIDEO_FORMAT_1080_50P` | 1080p50 |
|
|
428
|
+
| 3 | `VIDEO_FORMAT_1080_60I` | 1080i60 |
|
|
429
|
+
| 4 | `VIDEO_FORMAT_1080_60P` | 1080p60 |
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
### Callback
|
|
433
|
+
|
|
434
|
+
Callback message for event notifications.
|
|
435
|
+
Used to trigger client-side callbacks when specific events occur.
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
| Field | Type | Description |
|
|
439
|
+
|-------|------|-------------|
|
|
440
|
+
| `event` | string | |
|
|
441
|
+
| `data` | string | |
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
### Empty
|
|
445
|
+
|
|
446
|
+
Empty message for RPCs that don't need request/response data.
|
|
447
|
+
This is the standard protobuf convention for "void" operations.
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
### NameValue
|
|
451
|
+
|
|
452
|
+
Key-value pair for metadata and generic data.
|
|
453
|
+
Used for transport metadata, custom properties, etc.
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
| Field | Type | Description |
|
|
457
|
+
|-------|------|-------------|
|
|
458
|
+
| `name` | string | |
|
|
459
|
+
| `value` | PropValue | |
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
### PropValue
|
|
463
|
+
|
|
464
|
+
Property value union type.
|
|
465
|
+
Used for setting compositor properties, audio parameters, etc.
|
|
466
|
+
Only one field should be set at a time.
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
| Field | Type | Description |
|
|
470
|
+
|-------|------|-------------|
|
|
471
|
+
| `float_value` | float | |
|
|
472
|
+
| `vec4_value` | Vec4 | |
|
|
473
|
+
| `string_value` | string | |
|
|
474
|
+
| `bool_value` | bool | |
|
|
475
|
+
| `int_value` | int64 | |
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
### PropertyDomain
|
|
479
|
+
|
|
480
|
+
Property domain (compositor, audio mixer, etc.).
|
|
481
|
+
Used for property set/animate operations across different domains.
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
| Field | Type | Description |
|
|
485
|
+
|-------|------|-------------|
|
|
486
|
+
| `compositor_id` | string | |
|
|
487
|
+
| `audio_mixer_id` | string | |
|
|
488
|
+
| `replay_id` | string | |
|
|
489
|
+
| `source_id` | string | |
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
### TransportMetadata
|
|
493
|
+
|
|
494
|
+
Transport metadata (timecode, etc.).
|
|
495
|
+
Used for source and recorder metadata operations.
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
| Field | Type | Description |
|
|
499
|
+
|-------|------|-------------|
|
|
500
|
+
| `items` | repeated NameValue | |
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
### Vec4
|
|
504
|
+
|
|
505
|
+
4-component vector used for colors (RGBA), positions, rectangles, etc.
|
|
506
|
+
Components are typically in the range [0.0, 1.0] for colors,
|
|
507
|
+
but can be arbitrary for positions and sizes.
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
| Field | Type | Description |
|
|
511
|
+
|-------|------|-------------|
|
|
512
|
+
| `x` | float | |
|
|
513
|
+
| `y` | float | |
|
|
514
|
+
| `z` | float | |
|
|
515
|
+
| `w` | float | |
|
|
516
|
+
|
|
517
|
+
|
|
518
|
+
---
|
|
519
|
+
|
|
520
|
+
|
|
521
|
+
## sesame/v1/compositor/compositor.proto
|
|
522
|
+
|
|
523
|
+
`sesame.v1.compositor`
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
|
|
527
|
+
|
|
528
|
+
### AnimationChannelEvaluationMode
|
|
529
|
+
|
|
530
|
+
Animation channel evaluation mode.
|
|
531
|
+
|
|
532
|
+
| Value | Name | Description |
|
|
533
|
+
|-------|------|-------------|
|
|
534
|
+
| 0 | `ANIM_MODE_CONSTANT` | Constant (hold last value) |
|
|
535
|
+
| 1 | `ANIM_MODE_STATE_FROM` | State from (use initial value) |
|
|
536
|
+
| 2 | `ANIM_MODE_LOOP` | Loop animation |
|
|
537
|
+
| 3 | `ANIM_MODE_BOUNCE` | Bounce animation (ping-pong) |
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
### NodeType
|
|
541
|
+
|
|
542
|
+
Node type in the scene graph.
|
|
543
|
+
|
|
544
|
+
| Value | Name | Description |
|
|
545
|
+
|-------|------|-------------|
|
|
546
|
+
| 0 | `NODE_TYPE_UNSPECIFIED` | Unspecified (invalid) |
|
|
547
|
+
| 1 | `NODE_TYPE_GROUP` | Group node (container) |
|
|
548
|
+
| 2 | `NODE_TYPE_TEXT` | Text node |
|
|
549
|
+
| 3 | `NODE_TYPE_VIDEO_BOX` | Video box node |
|
|
550
|
+
| 4 | `NODE_TYPE_IMAGE` | Image node |
|
|
551
|
+
| 5 | `NODE_TYPE_EFFECT_RTT` | Render-to-texture effect |
|
|
552
|
+
| 6 | `NODE_TYPE_EFFECT_TIMECODE` | Timecode display effect |
|
|
553
|
+
| 7 | `NODE_TYPE_EFFECT_CLIP_PLANE` | Clip plane effect |
|
|
554
|
+
|
|
555
|
+
|
|
556
|
+
### CompositorAddRequest
|
|
557
|
+
|
|
558
|
+
Request to add a new compositor.
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
| Field | Type | Description |
|
|
562
|
+
|-------|------|-------------|
|
|
563
|
+
| `id` | string | |
|
|
564
|
+
| `multisample` | bool | |
|
|
565
|
+
| `width` | uint32 | |
|
|
566
|
+
| `height` | uint32 | |
|
|
567
|
+
|
|
568
|
+
|
|
569
|
+
### CompositorClearRequest
|
|
570
|
+
|
|
571
|
+
Request to clear a compositor (remove all nodes).
|
|
572
|
+
|
|
573
|
+
|
|
574
|
+
| Field | Type | Description |
|
|
575
|
+
|-------|------|-------------|
|
|
576
|
+
| `id` | string | |
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
### CompositorRemoveRequest
|
|
580
|
+
|
|
581
|
+
Request to remove a compositor.
|
|
582
|
+
|
|
583
|
+
|
|
584
|
+
| Field | Type | Description |
|
|
585
|
+
|-------|------|-------------|
|
|
586
|
+
| `id` | string | |
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
### KeyFrame
|
|
590
|
+
|
|
591
|
+
Animation keyframe.
|
|
592
|
+
|
|
593
|
+
|
|
594
|
+
| Field | Type | Description |
|
|
595
|
+
|-------|------|-------------|
|
|
596
|
+
| `time_us` | int64 | |
|
|
597
|
+
| `value` | sesame.v1.common.PropValue | |
|
|
598
|
+
| `easing_in` | string | |
|
|
599
|
+
| `easing_out` | string | |
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
### NodeAddRequest
|
|
603
|
+
|
|
604
|
+
Request to add a node to the scene graph.
|
|
605
|
+
|
|
606
|
+
|
|
607
|
+
| Field | Type | Description |
|
|
608
|
+
|-------|------|-------------|
|
|
609
|
+
| `compositor_id` | string | |
|
|
610
|
+
| `parent_address` | string | |
|
|
611
|
+
| `node_id` | string | |
|
|
612
|
+
| `node_type` | NodeType | |
|
|
613
|
+
|
|
614
|
+
|
|
615
|
+
### NodeRemoveRequest
|
|
616
|
+
|
|
617
|
+
Request to remove a node from the scene graph.
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
| Field | Type | Description |
|
|
621
|
+
|-------|------|-------------|
|
|
622
|
+
| `compositor_id` | string | |
|
|
623
|
+
| `address` | string | |
|
|
624
|
+
|
|
625
|
+
|
|
626
|
+
### PropertyAnimateRequest
|
|
627
|
+
|
|
628
|
+
Request to animate a property.
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
| Field | Type | Description |
|
|
632
|
+
|-------|------|-------------|
|
|
633
|
+
| `domain` | sesame.v1.common.PropertyDomain | |
|
|
634
|
+
| `address` | string | |
|
|
635
|
+
| `property` | string | |
|
|
636
|
+
| `keyframes` | repeated KeyFrame | |
|
|
637
|
+
| `before` | AnimationChannelEvaluationMode | |
|
|
638
|
+
| `after` | AnimationChannelEvaluationMode | |
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
### PropertySetRequest
|
|
642
|
+
|
|
643
|
+
Request to set a property value.
|
|
644
|
+
|
|
645
|
+
|
|
646
|
+
| Field | Type | Description |
|
|
647
|
+
|-------|------|-------------|
|
|
648
|
+
| `domain` | sesame.v1.common.PropertyDomain | |
|
|
649
|
+
| `address` | string | |
|
|
650
|
+
| `property` | string | |
|
|
651
|
+
| `value` | sesame.v1.common.PropValue | |
|
|
652
|
+
|
|
653
|
+
|
|
654
|
+
---
|
|
655
|
+
|
|
656
|
+
|
|
657
|
+
## sesame/v1/jobs/jobs.proto
|
|
658
|
+
|
|
659
|
+
`sesame.v1.jobs`
|
|
660
|
+
|
|
661
|
+
|
|
662
|
+
|
|
663
|
+
|
|
664
|
+
### ContainerFormat
|
|
665
|
+
|
|
666
|
+
Container format for exported files.
|
|
667
|
+
|
|
668
|
+
| Value | Name | Description |
|
|
669
|
+
|-------|------|-------------|
|
|
670
|
+
| 0 | `CONTAINER_FORMAT_UNSPECIFIED` | Unspecified (invalid) |
|
|
671
|
+
| 1 | `CONTAINER_FORMAT_MP4` | MP4 container |
|
|
672
|
+
| 2 | `CONTAINER_FORMAT_MOV` | QuickTime MOV container |
|
|
673
|
+
| 3 | `CONTAINER_FORMAT_MKV` | Matroska container |
|
|
674
|
+
| 4 | `CONTAINER_FORMAT_MXF` | Material eXchange Format |
|
|
675
|
+
|
|
676
|
+
|
|
677
|
+
### JobStatus
|
|
678
|
+
|
|
679
|
+
Job status.
|
|
680
|
+
|
|
681
|
+
| Value | Name | Description |
|
|
682
|
+
|-------|------|-------------|
|
|
683
|
+
| 0 | `JOB_STATUS_UNSPECIFIED` | Unspecified (invalid) |
|
|
684
|
+
| 1 | `JOB_STATUS_PENDING` | Pending (not started) |
|
|
685
|
+
| 2 | `JOB_STATUS_IN_PROGRESS` | In progress |
|
|
686
|
+
| 3 | `JOB_STATUS_COMPLETE` | Complete |
|
|
687
|
+
| 4 | `JOB_STATUS_ABORTED` | Aborted by user |
|
|
688
|
+
| 5 | `JOB_STATUS_ERROR` | Error occurred |
|
|
689
|
+
|
|
690
|
+
|
|
691
|
+
### JobType
|
|
692
|
+
|
|
693
|
+
Job type.
|
|
694
|
+
|
|
695
|
+
| Value | Name | Description |
|
|
696
|
+
|-------|------|-------------|
|
|
697
|
+
| 0 | `JOB_TYPE_UNSPECIFIED` | Unspecified (invalid) |
|
|
698
|
+
| 1 | `JOB_TYPE_EXPORT` | Playlist export |
|
|
699
|
+
| 2 | `JOB_TYPE_IMPORT` | Clip import |
|
|
700
|
+
|
|
701
|
+
|
|
702
|
+
### RateControlMode
|
|
703
|
+
|
|
704
|
+
Rate control mode for video encoding.
|
|
705
|
+
|
|
706
|
+
| Value | Name | Description |
|
|
707
|
+
|-------|------|-------------|
|
|
708
|
+
| 0 | `RATE_CONTROL_MODE_UNSPECIFIED` | Unspecified (invalid) |
|
|
709
|
+
| 1 | `RATE_CONTROL_MODE_CBR` | Constant bitrate |
|
|
710
|
+
| 2 | `RATE_CONTROL_MODE_VBR` | Variable bitrate |
|
|
711
|
+
| 3 | `RATE_CONTROL_MODE_CQ` | Constant quality |
|
|
712
|
+
|
|
713
|
+
|
|
714
|
+
### ExportConfiguration
|
|
715
|
+
|
|
716
|
+
Playlist export configuration.
|
|
717
|
+
|
|
718
|
+
|
|
719
|
+
| Field | Type | Description |
|
|
720
|
+
|-------|------|-------------|
|
|
721
|
+
| `filename` | string | |
|
|
722
|
+
| `container` | ContainerFormat | |
|
|
723
|
+
| `video_codec` | sesame.v1.common.CodecType | |
|
|
724
|
+
| `width` | uint32 | |
|
|
725
|
+
| `height` | uint32 | |
|
|
726
|
+
| `fps_num` | uint32 | |
|
|
727
|
+
| `fps_den` | uint32 | |
|
|
728
|
+
| `rate_control` | RateControlMode | |
|
|
729
|
+
| `video_bitrate_kbps` | uint32 | |
|
|
730
|
+
| `max_video_bitrate_kbps` | uint32 | |
|
|
731
|
+
| `gop_size` | uint32 | |
|
|
732
|
+
| `max_b_frames` | uint32 | |
|
|
733
|
+
| `profile` | string | |
|
|
734
|
+
| `level` | string | |
|
|
735
|
+
| `pixel_format` | string | |
|
|
736
|
+
| `color_primaries` | string | |
|
|
737
|
+
| `color_transfer` | string | |
|
|
738
|
+
| `color_matrix` | string | |
|
|
739
|
+
| `full_range` | bool | |
|
|
740
|
+
| `audio_codec` | sesame.v1.common.CodecType | |
|
|
741
|
+
| `audio_bitrate_kbps` | uint32 | |
|
|
742
|
+
| `audio_sample_rate_hz` | uint32 | |
|
|
743
|
+
| `audio_channels` | uint32 | |
|
|
744
|
+
| `audio_routing` | repeated uint32 | |
|
|
745
|
+
|
|
746
|
+
|
|
747
|
+
### ExportStartRequest
|
|
748
|
+
|
|
749
|
+
Request to start playlist export.
|
|
750
|
+
|
|
751
|
+
|
|
752
|
+
| Field | Type | Description |
|
|
753
|
+
|-------|------|-------------|
|
|
754
|
+
| `config` | ExportConfiguration | |
|
|
755
|
+
| `items` | repeated sesame.v1.recorder.PlaylistItem | |
|
|
756
|
+
|
|
757
|
+
|
|
758
|
+
### ImportConfiguration
|
|
759
|
+
|
|
760
|
+
Clip import configuration.
|
|
761
|
+
|
|
762
|
+
|
|
763
|
+
| Field | Type | Description |
|
|
764
|
+
|-------|------|-------------|
|
|
765
|
+
| `src_filename` | string | |
|
|
766
|
+
| `audio_routing` | repeated uint32 | |
|
|
767
|
+
| `dst_recorder_id` | string | |
|
|
768
|
+
| `dst_clip_id` | uint64 | |
|
|
769
|
+
| `dst_clip_name` | string | |
|
|
770
|
+
| `dst_clip_user_data` | string | |
|
|
771
|
+
|
|
772
|
+
|
|
773
|
+
### ImportStartRequest
|
|
774
|
+
|
|
775
|
+
Request to start clip import.
|
|
776
|
+
|
|
777
|
+
|
|
778
|
+
| Field | Type | Description |
|
|
779
|
+
|-------|------|-------------|
|
|
780
|
+
| `config` | ImportConfiguration | |
|
|
781
|
+
|
|
782
|
+
|
|
783
|
+
### Job
|
|
784
|
+
|
|
785
|
+
A job. Used as RPC response, list item, and event payload.
|
|
786
|
+
|
|
787
|
+
|
|
788
|
+
| Field | Type | Description |
|
|
789
|
+
|-------|------|-------------|
|
|
790
|
+
| `id` | uint32 | |
|
|
791
|
+
| `type` | JobType | |
|
|
792
|
+
| `status` | JobStatus | |
|
|
793
|
+
| `name` | string | |
|
|
794
|
+
| `description` | string | |
|
|
795
|
+
| `error` | optional string | |
|
|
796
|
+
| `progress` | int64 | |
|
|
797
|
+
| `total` | int64 | |
|
|
798
|
+
| `timing_info` | optional TimingInfo | |
|
|
799
|
+
|
|
800
|
+
|
|
801
|
+
### JobAbortRequest
|
|
802
|
+
|
|
803
|
+
Request to abort a job.
|
|
804
|
+
|
|
805
|
+
|
|
806
|
+
| Field | Type | Description |
|
|
807
|
+
|-------|------|-------------|
|
|
808
|
+
| `job_id` | uint32 | |
|
|
809
|
+
|
|
810
|
+
|
|
811
|
+
### JobList
|
|
812
|
+
|
|
813
|
+
List of jobs.
|
|
814
|
+
|
|
815
|
+
|
|
816
|
+
| Field | Type | Description |
|
|
817
|
+
|-------|------|-------------|
|
|
818
|
+
| `jobs` | repeated Job | |
|
|
819
|
+
|
|
820
|
+
|
|
821
|
+
### JobListRequest
|
|
822
|
+
|
|
823
|
+
Request to list all jobs.
|
|
824
|
+
|
|
825
|
+
|
|
826
|
+
### JobStartRequest
|
|
827
|
+
|
|
828
|
+
Request to start a job.
|
|
829
|
+
|
|
830
|
+
|
|
831
|
+
| Field | Type | Description |
|
|
832
|
+
|-------|------|-------------|
|
|
833
|
+
| `export_request` | ExportStartRequest | |
|
|
834
|
+
| `import_request` | ImportStartRequest | |
|
|
835
|
+
|
|
836
|
+
|
|
837
|
+
### JobStatusRequest
|
|
838
|
+
|
|
839
|
+
Request to get job status.
|
|
840
|
+
|
|
841
|
+
|
|
842
|
+
| Field | Type | Description |
|
|
843
|
+
|-------|------|-------------|
|
|
844
|
+
| `job_id` | uint32 | |
|
|
845
|
+
|
|
846
|
+
|
|
847
|
+
### TimingInfo
|
|
848
|
+
|
|
849
|
+
Timing information for clips.
|
|
850
|
+
|
|
851
|
+
|
|
852
|
+
| Field | Type | Description |
|
|
853
|
+
|-------|------|-------------|
|
|
854
|
+
| `tc_in` | int64 | |
|
|
855
|
+
| `tc_out` | int64 | |
|
|
856
|
+
|
|
857
|
+
|
|
858
|
+
---
|
|
859
|
+
|
|
860
|
+
|
|
861
|
+
## sesame/v1/outputs/output.proto
|
|
862
|
+
|
|
863
|
+
`sesame.v1.outputs`
|
|
864
|
+
|
|
865
|
+
|
|
866
|
+
|
|
867
|
+
|
|
868
|
+
### EncoderPreset
|
|
869
|
+
|
|
870
|
+
Encoder preset.
|
|
871
|
+
|
|
872
|
+
| Value | Name | Description |
|
|
873
|
+
|-------|------|-------------|
|
|
874
|
+
| 0 | `ENCODER_PRESET_UNSPECIFIED` | Unspecified (invalid) |
|
|
875
|
+
| 1 | `ENCODER_PRESET_LOW_LATENCY` | Low-latency tune |
|
|
876
|
+
| 2 | `ENCODER_PRESET_LOW_LATENCY_IDR_ONLY` | Low-latency with IDR-only GOP |
|
|
877
|
+
| 3 | `ENCODER_PRESET_HIGH_QUALITY` | High-quality tune |
|
|
878
|
+
|
|
879
|
+
|
|
880
|
+
### OutputType
|
|
881
|
+
|
|
882
|
+
Type of output.
|
|
883
|
+
|
|
884
|
+
| Value | Name | Description |
|
|
885
|
+
|-------|------|-------------|
|
|
886
|
+
| 0 | `OUTPUT_TYPE_UNSPECIFIED` | Unspecified (invalid) |
|
|
887
|
+
| 1 | `OUTPUT_TYPE_ENCODED_WEBSOCKET` | Encoded WebSocket stream |
|
|
888
|
+
| 2 | `OUTPUT_TYPE_ENCODED_RECORDER` | Encoded recorder |
|
|
889
|
+
| 3 | `OUTPUT_TYPE_DECKLINK` | Blackmagic Decklink output |
|
|
890
|
+
| 4 | `OUTPUT_TYPE_SYSTEM_AUDIO` | System audio output |
|
|
891
|
+
| 5 | `OUTPUT_TYPE_ENCODED_SRT` | Encoded SRT stream |
|
|
892
|
+
| 6 | `OUTPUT_TYPE_ENCODED_MOQ` | Encoded MoQ stream |
|
|
893
|
+
| 7 | `OUTPUT_TYPE_ENCODED_SUPER_SLOWMO_RECORDER` | Super slow-mo recorder |
|
|
894
|
+
|
|
895
|
+
|
|
896
|
+
### RecorderType
|
|
897
|
+
|
|
898
|
+
Recorder type.
|
|
899
|
+
|
|
900
|
+
| Value | Name | Description |
|
|
901
|
+
|-------|------|-------------|
|
|
902
|
+
| 0 | `RECORDER_TYPE_UNSPECIFIED` | Unspecified (invalid) |
|
|
903
|
+
| 1 | `RECORDER_TYPE_LIVE` | Live recorder (circular buffer) |
|
|
904
|
+
| 2 | `RECORDER_TYPE_CLIPS` | Clip recorder; not continuously recording, only ingested frames are persisted |
|
|
905
|
+
|
|
906
|
+
|
|
907
|
+
### DecklinkOutputConfig
|
|
908
|
+
|
|
909
|
+
Decklink output configuration.
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
| Field | Type | Description |
|
|
913
|
+
|-------|------|-------------|
|
|
914
|
+
| `device_index` | uint32 | |
|
|
915
|
+
| `video_format` | sesame.v1.common.VideoFormat | |
|
|
916
|
+
| `key_and_fill` | bool | |
|
|
917
|
+
|
|
918
|
+
|
|
919
|
+
### EncodedMoqOutputConfig
|
|
920
|
+
|
|
921
|
+
|
|
922
|
+
|
|
923
|
+
|
|
924
|
+
| Field | Type | Description |
|
|
925
|
+
|-------|------|-------------|
|
|
926
|
+
| `encoder` | EncoderConfig | |
|
|
927
|
+
| `url` | string | |
|
|
928
|
+
| `broadcast` | string | |
|
|
929
|
+
| `key` | string | |
|
|
930
|
+
| `metadata_tracks` | repeated string | |
|
|
931
|
+
|
|
932
|
+
|
|
933
|
+
### EncodedRecorderOutputConfig
|
|
934
|
+
|
|
935
|
+
|
|
936
|
+
|
|
937
|
+
|
|
938
|
+
| Field | Type | Description |
|
|
939
|
+
|-------|------|-------------|
|
|
940
|
+
| `encoder` | EncoderConfig | |
|
|
941
|
+
| `filename` | string | |
|
|
942
|
+
| `size_gb` | uint32 | |
|
|
943
|
+
| `group_id` | string | |
|
|
944
|
+
| `recorder_type` | RecorderType | |
|
|
945
|
+
|
|
946
|
+
|
|
947
|
+
### EncodedSrtOutputConfig
|
|
948
|
+
|
|
949
|
+
|
|
950
|
+
|
|
951
|
+
|
|
952
|
+
| Field | Type | Description |
|
|
953
|
+
|-------|------|-------------|
|
|
954
|
+
| `url` | string | |
|
|
955
|
+
| `encoder` | EncoderConfig | |
|
|
956
|
+
|
|
957
|
+
|
|
958
|
+
### EncodedSuperSlowMoRecorderOutputConfig
|
|
959
|
+
|
|
960
|
+
|
|
961
|
+
|
|
962
|
+
|
|
963
|
+
| Field | Type | Description |
|
|
964
|
+
|-------|------|-------------|
|
|
965
|
+
| `encoder` | EncoderConfig | |
|
|
966
|
+
| `filename` | string | |
|
|
967
|
+
| `size_gb` | uint32 | |
|
|
968
|
+
| `group_id` | string | |
|
|
969
|
+
| `recorder_type` | RecorderType | |
|
|
970
|
+
| `composition_ids` | repeated string | |
|
|
971
|
+
| `source_ids` | repeated string | |
|
|
972
|
+
|
|
973
|
+
|
|
974
|
+
### EncodedWebSocketOutputConfig
|
|
975
|
+
|
|
976
|
+
-----------------------------------------------------------------------------
|
|
977
|
+
Type-specific output payloads
|
|
978
|
+
-----------------------------------------------------------------------------
|
|
979
|
+
|
|
980
|
+
|
|
981
|
+
| Field | Type | Description |
|
|
982
|
+
|-------|------|-------------|
|
|
983
|
+
| `channel` | string | |
|
|
984
|
+
| `encoder` | EncoderConfig | |
|
|
985
|
+
| `metadata_tracks` | repeated string | |
|
|
986
|
+
|
|
987
|
+
|
|
988
|
+
### EncoderConfig
|
|
989
|
+
|
|
990
|
+
Encoded output configuration (WebSocket, SRT, MoQ).
|
|
991
|
+
|
|
992
|
+
|
|
993
|
+
| Field | Type | Description |
|
|
994
|
+
|-------|------|-------------|
|
|
995
|
+
| `codec` | sesame.v1.common.CodecType | |
|
|
996
|
+
| `preset` | EncoderPreset | |
|
|
997
|
+
| `bitrate_kbps` | uint32 | |
|
|
998
|
+
| `keyframe_interval` | uint32 | |
|
|
999
|
+
| `width` | uint32 | |
|
|
1000
|
+
| `height` | uint32 | |
|
|
1001
|
+
| `fps` | float | |
|
|
1002
|
+
|
|
1003
|
+
|
|
1004
|
+
### KeyframeRequest
|
|
1005
|
+
|
|
1006
|
+
Keyframe request for encoder.
|
|
1007
|
+
Requests an immediate keyframe (IDR frame) from an encoder output.
|
|
1008
|
+
|
|
1009
|
+
|
|
1010
|
+
| Field | Type | Description |
|
|
1011
|
+
|-------|------|-------------|
|
|
1012
|
+
| `id` | string | |
|
|
1013
|
+
|
|
1014
|
+
|
|
1015
|
+
### OutputAddRequest
|
|
1016
|
+
|
|
1017
|
+
Request to add a new output.
|
|
1018
|
+
|
|
1019
|
+
|
|
1020
|
+
| Field | Type | Description |
|
|
1021
|
+
|-------|------|-------------|
|
|
1022
|
+
| `id` | string | |
|
|
1023
|
+
| `composition_id` | string | |
|
|
1024
|
+
| `audio_mix_ids` | repeated string | |
|
|
1025
|
+
| `use_as_clock` | bool | |
|
|
1026
|
+
| `websocket` | EncodedWebSocketOutputConfig | |
|
|
1027
|
+
| `recorder` | EncodedRecorderOutputConfig | |
|
|
1028
|
+
| `super_slowmo_recorder` | EncodedSuperSlowMoRecorderOutputConfig | |
|
|
1029
|
+
| `srt` | EncodedSrtOutputConfig | |
|
|
1030
|
+
| `moq` | EncodedMoqOutputConfig | |
|
|
1031
|
+
| `decklink` | DecklinkOutputConfig | |
|
|
1032
|
+
| `system_audio` | SystemAudioOutputConfig | |
|
|
1033
|
+
|
|
1034
|
+
|
|
1035
|
+
### OutputRemoveRequest
|
|
1036
|
+
|
|
1037
|
+
Request to remove an output.
|
|
1038
|
+
|
|
1039
|
+
|
|
1040
|
+
| Field | Type | Description |
|
|
1041
|
+
|-------|------|-------------|
|
|
1042
|
+
| `id` | string | |
|
|
1043
|
+
|
|
1044
|
+
|
|
1045
|
+
### OutputStatus
|
|
1046
|
+
|
|
1047
|
+
Output status information.
|
|
1048
|
+
|
|
1049
|
+
|
|
1050
|
+
| Field | Type | Description |
|
|
1051
|
+
|-------|------|-------------|
|
|
1052
|
+
| `id` | string | |
|
|
1053
|
+
| `type` | OutputType | |
|
|
1054
|
+
| `state` | sesame.v1.common.ConnectionState | |
|
|
1055
|
+
| `msg` | optional string | |
|
|
1056
|
+
| `url` | string | |
|
|
1057
|
+
| `buffer_size` | uint32 | |
|
|
1058
|
+
| `srt_stats` | optional sesame.v1.status.SRTSendStatistics | |
|
|
1059
|
+
|
|
1060
|
+
|
|
1061
|
+
### OutputUpdateRequest
|
|
1062
|
+
|
|
1063
|
+
Request to update an existing output.
|
|
1064
|
+
|
|
1065
|
+
|
|
1066
|
+
| Field | Type | Description |
|
|
1067
|
+
|-------|------|-------------|
|
|
1068
|
+
| `id` | string | |
|
|
1069
|
+
| `composition_id` | string | |
|
|
1070
|
+
| `audio_mix_ids` | repeated string | |
|
|
1071
|
+
| `use_as_clock` | bool | |
|
|
1072
|
+
| `websocket` | EncodedWebSocketOutputConfig | |
|
|
1073
|
+
| `recorder` | EncodedRecorderOutputConfig | |
|
|
1074
|
+
| `super_slowmo_recorder` | EncodedSuperSlowMoRecorderOutputConfig | |
|
|
1075
|
+
| `srt` | EncodedSrtOutputConfig | |
|
|
1076
|
+
| `moq` | EncodedMoqOutputConfig | |
|
|
1077
|
+
| `decklink` | DecklinkOutputConfig | |
|
|
1078
|
+
| `system_audio` | SystemAudioOutputConfig | |
|
|
1079
|
+
|
|
1080
|
+
|
|
1081
|
+
### SystemAudioOutputConfig
|
|
1082
|
+
|
|
1083
|
+
|
|
1084
|
+
|
|
1085
|
+
|
|
1086
|
+
| Field | Type | Description |
|
|
1087
|
+
|-------|------|-------------|
|
|
1088
|
+
| `device_name` | string | |
|
|
1089
|
+
|
|
1090
|
+
|
|
1091
|
+
---
|
|
1092
|
+
|
|
1093
|
+
|
|
1094
|
+
## sesame/v1/recorder/recorder.proto
|
|
1095
|
+
|
|
1096
|
+
`sesame.v1.recorder`
|
|
1097
|
+
|
|
1098
|
+
|
|
1099
|
+
|
|
1100
|
+
|
|
1101
|
+
### TransitionType
|
|
1102
|
+
|
|
1103
|
+
Transition type for playlist items.
|
|
1104
|
+
|
|
1105
|
+
| Value | Name | Description |
|
|
1106
|
+
|-------|------|-------------|
|
|
1107
|
+
| 0 | `TRANSITION_TYPE_MIX` | Mix/dissolve transition |
|
|
1108
|
+
| 1 | `TRANSITION_TYPE_FADE_TO_COLOR` | Fade to color |
|
|
1109
|
+
| 2 | `TRANSITION_TYPE_FADE_FROM_COLOR` | Fade from color |
|
|
1110
|
+
| 3 | `TRANSITION_TYPE_FADE_TO_FROM_COLOR` | Fade to and from color |
|
|
1111
|
+
|
|
1112
|
+
|
|
1113
|
+
### PlaylistItem
|
|
1114
|
+
|
|
1115
|
+
Playlist item for recorder source playback.
|
|
1116
|
+
|
|
1117
|
+
|
|
1118
|
+
| Field | Type | Description |
|
|
1119
|
+
|-------|------|-------------|
|
|
1120
|
+
| `recorder_id` | string | |
|
|
1121
|
+
| `id` | uint64 | |
|
|
1122
|
+
| `transition_time_us` | int64 | |
|
|
1123
|
+
| `transition_type` | TransitionType | |
|
|
1124
|
+
| `transition_fade_color` | sesame.v1.common.Vec4 | |
|
|
1125
|
+
| `speed` | float | |
|
|
1126
|
+
| `audio_routing` | repeated uint32 | |
|
|
1127
|
+
| `start_time_us` | optional int64 | |
|
|
1128
|
+
| `end_time_us` | optional int64 | |
|
|
1129
|
+
| `audio_levels` | repeated float | |
|
|
1130
|
+
|
|
1131
|
+
|
|
1132
|
+
### RecorderClip
|
|
1133
|
+
|
|
1134
|
+
Recorder clip information.
|
|
1135
|
+
|
|
1136
|
+
|
|
1137
|
+
| Field | Type | Description |
|
|
1138
|
+
|-------|------|-------------|
|
|
1139
|
+
| `id` | uint64 | |
|
|
1140
|
+
| `name` | string | |
|
|
1141
|
+
| `user_data` | string | |
|
|
1142
|
+
| `flags` | uint64 | |
|
|
1143
|
+
| `start_time_us` | int64 | |
|
|
1144
|
+
| `end_time_us` | int64 | |
|
|
1145
|
+
| `locked_start_us` | int64 | |
|
|
1146
|
+
| `locked_end_us` | int64 | |
|
|
1147
|
+
| `user_time_us` | int64 | |
|
|
1148
|
+
|
|
1149
|
+
|
|
1150
|
+
### RecorderClipAddRequest
|
|
1151
|
+
|
|
1152
|
+
Request to add a clip to a recorder.
|
|
1153
|
+
|
|
1154
|
+
|
|
1155
|
+
| Field | Type | Description |
|
|
1156
|
+
|-------|------|-------------|
|
|
1157
|
+
| `clip` | RecorderClip | |
|
|
1158
|
+
|
|
1159
|
+
|
|
1160
|
+
### RecorderClipCopyRequest
|
|
1161
|
+
|
|
1162
|
+
Request to copy a clip.
|
|
1163
|
+
|
|
1164
|
+
|
|
1165
|
+
| Field | Type | Description |
|
|
1166
|
+
|-------|------|-------------|
|
|
1167
|
+
| `clip_id` | uint64 | |
|
|
1168
|
+
| `new_clip_id` | uint64 | |
|
|
1169
|
+
|
|
1170
|
+
|
|
1171
|
+
### RecorderClipFlagSetRequest
|
|
1172
|
+
|
|
1173
|
+
Request to set a clip flag.
|
|
1174
|
+
|
|
1175
|
+
|
|
1176
|
+
| Field | Type | Description |
|
|
1177
|
+
|-------|------|-------------|
|
|
1178
|
+
| `clip_id` | uint64 | |
|
|
1179
|
+
| `flag` | uint64 | |
|
|
1180
|
+
| `value` | bool | |
|
|
1181
|
+
|
|
1182
|
+
|
|
1183
|
+
### RecorderClipRange
|
|
1184
|
+
|
|
1185
|
+
Clip id range.
|
|
1186
|
+
|
|
1187
|
+
|
|
1188
|
+
| Field | Type | Description |
|
|
1189
|
+
|-------|------|-------------|
|
|
1190
|
+
| `low` | uint64 | |
|
|
1191
|
+
| `high` | uint64 | |
|
|
1192
|
+
|
|
1193
|
+
|
|
1194
|
+
### RecorderClipRemoveRequest
|
|
1195
|
+
|
|
1196
|
+
Request to remove a clip.
|
|
1197
|
+
|
|
1198
|
+
|
|
1199
|
+
| Field | Type | Description |
|
|
1200
|
+
|-------|------|-------------|
|
|
1201
|
+
| `clip_id` | uint64 | |
|
|
1202
|
+
|
|
1203
|
+
|
|
1204
|
+
### RecorderClipsClearRequest
|
|
1205
|
+
|
|
1206
|
+
Request to clear clips with filters.
|
|
1207
|
+
|
|
1208
|
+
|
|
1209
|
+
| Field | Type | Description |
|
|
1210
|
+
|-------|------|-------------|
|
|
1211
|
+
| `protected_ranges` | repeated RecorderClipRange | |
|
|
1212
|
+
| `must_have_flags` | uint64 | |
|
|
1213
|
+
| `must_not_have_flags` | uint64 | |
|
|
1214
|
+
|
|
1215
|
+
|
|
1216
|
+
### RecorderClipsGetRequest
|
|
1217
|
+
|
|
1218
|
+
Request to get all clips from a recorder.
|
|
1219
|
+
|
|
1220
|
+
Empty - returns all clips
|
|
1221
|
+
|
|
1222
|
+
|
|
1223
|
+
### RecorderClipsGetResponse
|
|
1224
|
+
|
|
1225
|
+
Response with recorder clips.
|
|
1226
|
+
|
|
1227
|
+
|
|
1228
|
+
| Field | Type | Description |
|
|
1229
|
+
|-------|------|-------------|
|
|
1230
|
+
| `clips` | repeated RecorderClip | |
|
|
1231
|
+
|
|
1232
|
+
|
|
1233
|
+
### RecorderClipsVerifyRequest
|
|
1234
|
+
|
|
1235
|
+
Request to verify clip integrity.
|
|
1236
|
+
|
|
1237
|
+
Empty - verifies all clips
|
|
1238
|
+
|
|
1239
|
+
|
|
1240
|
+
### RecorderClipsVerifyResponse
|
|
1241
|
+
|
|
1242
|
+
Response with verification errors.
|
|
1243
|
+
|
|
1244
|
+
|
|
1245
|
+
| Field | Type | Description |
|
|
1246
|
+
|-------|------|-------------|
|
|
1247
|
+
| `errors` | repeated string | |
|
|
1248
|
+
|
|
1249
|
+
|
|
1250
|
+
### RecorderEvent
|
|
1251
|
+
|
|
1252
|
+
Recorder event notification.
|
|
1253
|
+
|
|
1254
|
+
|
|
1255
|
+
| Field | Type | Description |
|
|
1256
|
+
|-------|------|-------------|
|
|
1257
|
+
| `id` | string | |
|
|
1258
|
+
| `online` | bool | |
|
|
1259
|
+
| `message` | optional string | |
|
|
1260
|
+
|
|
1261
|
+
|
|
1262
|
+
### RecorderLockedDurationSetRequest
|
|
1263
|
+
|
|
1264
|
+
Request to set locked duration.
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
| Field | Type | Description |
|
|
1268
|
+
|-------|------|-------------|
|
|
1269
|
+
| `frames` | uint32 | |
|
|
1270
|
+
|
|
1271
|
+
|
|
1272
|
+
### RecorderMetadataSetRequest
|
|
1273
|
+
|
|
1274
|
+
Request to set recorder metadata.
|
|
1275
|
+
|
|
1276
|
+
|
|
1277
|
+
| Field | Type | Description |
|
|
1278
|
+
|-------|------|-------------|
|
|
1279
|
+
| `metadata` | sesame.v1.common.TransportMetadata | |
|
|
1280
|
+
|
|
1281
|
+
|
|
1282
|
+
### RecorderOkResponse
|
|
1283
|
+
|
|
1284
|
+
Generic OK response.
|
|
1285
|
+
|
|
1286
|
+
Empty - indicates success
|
|
1287
|
+
|
|
1288
|
+
|
|
1289
|
+
### RecorderRequest
|
|
1290
|
+
|
|
1291
|
+
Recorder request wrapper.
|
|
1292
|
+
|
|
1293
|
+
|
|
1294
|
+
| Field | Type | Description |
|
|
1295
|
+
|-------|------|-------------|
|
|
1296
|
+
| `recorder_id` | string | |
|
|
1297
|
+
| `get_clips` | RecorderClipsGetRequest | |
|
|
1298
|
+
| `add_clip` | RecorderClipAddRequest | |
|
|
1299
|
+
| `remove_clip` | RecorderClipRemoveRequest | |
|
|
1300
|
+
| `clear_clips` | RecorderClipsClearRequest | |
|
|
1301
|
+
| `set_metadata` | RecorderMetadataSetRequest | |
|
|
1302
|
+
| `verify_clips` | RecorderClipsVerifyRequest | |
|
|
1303
|
+
| `set_clip_flag` | RecorderClipFlagSetRequest | |
|
|
1304
|
+
| `copy_clip` | RecorderClipCopyRequest | |
|
|
1305
|
+
| `set_locked_duration` | RecorderLockedDurationSetRequest | |
|
|
1306
|
+
|
|
1307
|
+
|
|
1308
|
+
### RecorderResponse
|
|
1309
|
+
|
|
1310
|
+
Recorder response wrapper.
|
|
1311
|
+
|
|
1312
|
+
|
|
1313
|
+
| Field | Type | Description |
|
|
1314
|
+
|-------|------|-------------|
|
|
1315
|
+
| `get_clips_response` | RecorderClipsGetResponse | |
|
|
1316
|
+
| `ok_response` | RecorderOkResponse | |
|
|
1317
|
+
| `verify_clips_response` | RecorderClipsVerifyResponse | |
|
|
1318
|
+
|
|
1319
|
+
|
|
1320
|
+
### RecorderStatus
|
|
1321
|
+
|
|
1322
|
+
Recorder status.
|
|
1323
|
+
|
|
1324
|
+
|
|
1325
|
+
| Field | Type | Description |
|
|
1326
|
+
|-------|------|-------------|
|
|
1327
|
+
| `id` | string | |
|
|
1328
|
+
|
|
1329
|
+
|
|
1330
|
+
---
|
|
1331
|
+
|
|
1332
|
+
|
|
1333
|
+
## sesame/v1/rpc/rpc.proto
|
|
1334
|
+
|
|
1335
|
+
`sesame.v1.rpc`
|
|
1336
|
+
|
|
1337
|
+
|
|
1338
|
+
|
|
1339
|
+
|
|
1340
|
+
### Event
|
|
1341
|
+
|
|
1342
|
+
Server event notification.
|
|
1343
|
+
|
|
1344
|
+
|
|
1345
|
+
| Field | Type | Description |
|
|
1346
|
+
|-------|------|-------------|
|
|
1347
|
+
| `topic` | sesame.v1.common.EventTopic | |
|
|
1348
|
+
| `payload` | bytes | |
|
|
1349
|
+
|
|
1350
|
+
|
|
1351
|
+
### Message
|
|
1352
|
+
|
|
1353
|
+
Top-level message wrapper.
|
|
1354
|
+
All RPC communication uses this message type.
|
|
1355
|
+
Exactly one payload field will be set, determining the message type.
|
|
1356
|
+
|
|
1357
|
+
|
|
1358
|
+
| Field | Type | Description |
|
|
1359
|
+
|-------|------|-------------|
|
|
1360
|
+
| `request` | Request | |
|
|
1361
|
+
| `response` | Response | |
|
|
1362
|
+
| `event` | Event | |
|
|
1363
|
+
|
|
1364
|
+
|
|
1365
|
+
### Request
|
|
1366
|
+
|
|
1367
|
+
RPC request from client to server.
|
|
1368
|
+
|
|
1369
|
+
|
|
1370
|
+
| Field | Type | Description |
|
|
1371
|
+
|-------|------|-------------|
|
|
1372
|
+
| `method` | string | |
|
|
1373
|
+
| `seq` | uint32 | |
|
|
1374
|
+
| `payload` | bytes | |
|
|
1375
|
+
|
|
1376
|
+
|
|
1377
|
+
### Response
|
|
1378
|
+
|
|
1379
|
+
RPC response from server to client.
|
|
1380
|
+
Error handling:
|
|
1381
|
+
- If `ok` is true, `payload` contains the serialized success response and
|
|
1382
|
+
`error` should be empty.
|
|
1383
|
+
- If `ok` is false, `error` contains a human-readable message and `payload`
|
|
1384
|
+
may be empty or contain a partial diagnostic payload.
|
|
1385
|
+
- Transport-level failures (disconnect/timeouts) are not represented here and
|
|
1386
|
+
must be handled by the framing/transport layer.
|
|
1387
|
+
|
|
1388
|
+
|
|
1389
|
+
| Field | Type | Description |
|
|
1390
|
+
|-------|------|-------------|
|
|
1391
|
+
| `seq` | uint32 | |
|
|
1392
|
+
| `ok` | bool | |
|
|
1393
|
+
| `payload` | bytes | |
|
|
1394
|
+
| `error` | string | |
|
|
1395
|
+
|
|
1396
|
+
|
|
1397
|
+
---
|
|
1398
|
+
|
|
1399
|
+
|
|
1400
|
+
## sesame/v1/rpc/service.proto
|
|
1401
|
+
|
|
1402
|
+
`sesame.v1.rpc`
|
|
1403
|
+
|
|
1404
|
+
|
|
1405
|
+
|
|
1406
|
+
|
|
1407
|
+
### PublishMetadataRequest
|
|
1408
|
+
|
|
1409
|
+
Request to publish a metadata payload from an app to all output transports
|
|
1410
|
+
that have a binding from this node+metadataId.
|
|
1411
|
+
|
|
1412
|
+
|
|
1413
|
+
| Field | Type | Description |
|
|
1414
|
+
|-------|------|-------------|
|
|
1415
|
+
| `node_id` | string | |
|
|
1416
|
+
| `metadata_id` | string | |
|
|
1417
|
+
| `payload` | bytes | |
|
|
1418
|
+
| `data_type` | sesame.v1.wire.DataType | |
|
|
1419
|
+
|
|
1420
|
+
|
|
1421
|
+
### SesameAPIService
|
|
1422
|
+
|
|
1423
|
+
Main Sesame API service.
|
|
1424
|
+
|
|
1425
|
+
| Method | Request | Response | Description |
|
|
1426
|
+
|--------|---------|----------|-------------|
|
|
1427
|
+
| `ExecuteCommandList` | .sesame.v1.commands.CommandList | .sesame.v1.commands.CommandExecutionResponse | Execute a list of commands. |
|
|
1428
|
+
| `UpdateSubscriptions` | .sesame.v1.status.SubscriptionRequest | .sesame.v1.common.Empty | Update event subscriptions. |
|
|
1429
|
+
| `NotImplemented` | .sesame.v1.common.Empty | .sesame.v1.common.Empty | Not implemented (placeholder). |
|
|
1430
|
+
| `RequestEvents` | .sesame.v1.common.Empty | stream .sesame.v1.status.Event | Subscribe to events (server streaming). |
|
|
1431
|
+
| `RequestStatus` | .sesame.v1.common.Empty | .sesame.v1.status.Status | Get current system status. |
|
|
1432
|
+
| `RequestRecorderOperation` | .sesame.v1.recorder.RecorderRequest | .sesame.v1.recorder.RecorderResponse | Recorder operations. |
|
|
1433
|
+
| `StartJob` | .sesame.v1.jobs.JobStartRequest | .sesame.v1.jobs.Job | Job operations. |
|
|
1434
|
+
| `AbortJob` | .sesame.v1.jobs.JobAbortRequest | .sesame.v1.jobs.Job | Abort a running job. |
|
|
1435
|
+
| `GetJobStatus` | .sesame.v1.jobs.JobStatusRequest | .sesame.v1.jobs.Job | Fetch status for a job. |
|
|
1436
|
+
| `ListJobs` | .sesame.v1.jobs.JobListRequest | .sesame.v1.jobs.JobList | List jobs. |
|
|
1437
|
+
| `RequestKeyframe` | .sesame.v1.outputs.KeyframeRequest | .sesame.v1.common.Empty | Request keyframe from encoder. |
|
|
1438
|
+
| `RequestIODeviceList` | .sesame.v1.common.Empty | .sesame.v1.status.IODeviceListResponse | Get list of I/O devices. |
|
|
1439
|
+
| `PublishMetadata` | PublishMetadataRequest | .sesame.v1.common.Empty | Publish a JSON metadata payload to all output transports bound to this node+metadataId. Used by apps (e.g. Snigel) to emit state that should be forwarded on MoQ/WebSocket outputs. |
|
|
1440
|
+
|
|
1441
|
+
|
|
1442
|
+
---
|
|
1443
|
+
|
|
1444
|
+
|
|
1445
|
+
## sesame/v1/sources/source.proto
|
|
1446
|
+
|
|
1447
|
+
`sesame.v1.sources`
|
|
1448
|
+
|
|
1449
|
+
|
|
1450
|
+
|
|
1451
|
+
|
|
1452
|
+
### DeinterlaceType
|
|
1453
|
+
|
|
1454
|
+
Deinterlacing mode for interlaced sources.
|
|
1455
|
+
|
|
1456
|
+
| Value | Name | Description |
|
|
1457
|
+
|-------|------|-------------|
|
|
1458
|
+
| 0 | `DEINTERLACE_TYPE_PROGRESSIVE` | Progressive (no deinterlacing) |
|
|
1459
|
+
| 1 | `DEINTERLACE_TYPE_UPPER_FIELD_FIRST` | Upper field first |
|
|
1460
|
+
| 2 | `DEINTERLACE_TYPE_LOWER_FIELD_FIRST` | Lower field first |
|
|
1461
|
+
| 3 | `DEINTERLACE_TYPE_AUTO` | Auto-detect field order |
|
|
1462
|
+
|
|
1463
|
+
|
|
1464
|
+
### PreprocessStep
|
|
1465
|
+
|
|
1466
|
+
Video preprocessing step type.
|
|
1467
|
+
|
|
1468
|
+
| Value | Name | Description |
|
|
1469
|
+
|-------|------|-------------|
|
|
1470
|
+
| 0 | `PREPROCESS_STEP_UNSPECIFIED` | Unspecified (invalid) |
|
|
1471
|
+
| 1 | `PREPROCESS_STEP_VIDEO_SCOPES` | Video scopes/waveform |
|
|
1472
|
+
| 2 | `PREPROCESS_STEP_CHROMA_KEY` | Chroma key |
|
|
1473
|
+
| 3 | `PREPROCESS_STEP_BLUR` | Blur effect |
|
|
1474
|
+
|
|
1475
|
+
|
|
1476
|
+
### SourceTextureSize
|
|
1477
|
+
|
|
1478
|
+
Source texture size for GPU upload.
|
|
1479
|
+
|
|
1480
|
+
| Value | Name | Description |
|
|
1481
|
+
|-------|------|-------------|
|
|
1482
|
+
| 0 | `SOURCE_TEXTURE_SIZE_UNSPECIFIED` | Unspecified (invalid) |
|
|
1483
|
+
| 1 | `SOURCE_TEXTURE_SIZE_HD` | HD resolution (1920x1080) |
|
|
1484
|
+
| 2 | `SOURCE_TEXTURE_SIZE_4K` | 4K resolution (3840x2160) |
|
|
1485
|
+
|
|
1486
|
+
|
|
1487
|
+
### SourceTransportCommandType
|
|
1488
|
+
|
|
1489
|
+
Source transport command type.
|
|
1490
|
+
|
|
1491
|
+
| Value | Name | Description |
|
|
1492
|
+
|-------|------|-------------|
|
|
1493
|
+
| 0 | `SOURCE_TRANSPORT_CMD_UNSPECIFIED` | Unspecified (invalid) |
|
|
1494
|
+
| 1 | `SOURCE_TRANSPORT_CMD_STOP` | Stop playback |
|
|
1495
|
+
| 2 | `SOURCE_TRANSPORT_CMD_PLAY` | Start playback |
|
|
1496
|
+
| 3 | `SOURCE_TRANSPORT_CMD_SEEK` | Seek to position |
|
|
1497
|
+
| 4 | `SOURCE_TRANSPORT_CMD_LOOP` | Set loop mode |
|
|
1498
|
+
| 5 | `SOURCE_TRANSPORT_CMD_LIVE` | Switch to live mode |
|
|
1499
|
+
| 6 | `SOURCE_TRANSPORT_CMD_JOG` | Jog forward/backward |
|
|
1500
|
+
| 7 | `SOURCE_TRANSPORT_CMD_MONITOR` | Monitor mode |
|
|
1501
|
+
| 8 | `SOURCE_TRANSPORT_CMD_SEEK_USER_TIME` | Seek to user timecode |
|
|
1502
|
+
| 9 | `SOURCE_TRANSPORT_CMD_TAKE` | Take/cut to next |
|
|
1503
|
+
| 10 | `SOURCE_TRANSPORT_CMD_POST_ROLL` | Post-roll |
|
|
1504
|
+
| 11 | `SOURCE_TRANSPORT_CMD_PRE_ROLL` | Pre-roll |
|
|
1505
|
+
| 12 | `SOURCE_TRANSPORT_CMD_NEXT` | Next item |
|
|
1506
|
+
| 13 | `SOURCE_TRANSPORT_CMD_SKIP_NEXT` | Skip to next |
|
|
1507
|
+
| 14 | `SOURCE_TRANSPORT_CMD_TRANSITIONS_DISABLED` | Disable transitions |
|
|
1508
|
+
| 15 | `SOURCE_TRANSPORT_CMD_SET_SCRUBBING` | Set scrubbing mode |
|
|
1509
|
+
| 16 | `SOURCE_TRANSPORT_CMD_SET_END_NOTIFICATION` | Set near-end callback threshold (int64 µs before end; 0 = disabled) |
|
|
1510
|
+
|
|
1511
|
+
|
|
1512
|
+
### SourceTransportState
|
|
1513
|
+
|
|
1514
|
+
Source transport/playback state.
|
|
1515
|
+
|
|
1516
|
+
| Value | Name | Description |
|
|
1517
|
+
|-------|------|-------------|
|
|
1518
|
+
| 0 | `SOURCE_TRANSPORT_STATE_STOPPED` | Stopped |
|
|
1519
|
+
| 1 | `SOURCE_TRANSPORT_STATE_PLAYING` | Playing |
|
|
1520
|
+
| 2 | `SOURCE_TRANSPORT_STATE_CUEING` | Cueing to position |
|
|
1521
|
+
| 3 | `SOURCE_TRANSPORT_STATE_ERROR` | Error state |
|
|
1522
|
+
| 4 | `SOURCE_TRANSPORT_STATE_PLAYING_LIVE` | Playing live (no seeking) |
|
|
1523
|
+
|
|
1524
|
+
|
|
1525
|
+
### SourceType
|
|
1526
|
+
|
|
1527
|
+
Type of video/audio source.
|
|
1528
|
+
|
|
1529
|
+
| Value | Name | Description |
|
|
1530
|
+
|-------|------|-------------|
|
|
1531
|
+
| 0 | `SOURCE_TYPE_UNSPECIFIED` | Unspecified (invalid) |
|
|
1532
|
+
| 1 | `SOURCE_TYPE_FILE` | File source (video/audio file) |
|
|
1533
|
+
| 2 | `SOURCE_TYPE_RECORDER` | Recorder playback source |
|
|
1534
|
+
| 3 | `SOURCE_TYPE_BROWSER` | Browser/CEF source |
|
|
1535
|
+
| 4 | `SOURCE_TYPE_RTT` | Render-to-texture source |
|
|
1536
|
+
| 5 | `SOURCE_TYPE_DECKLINK` | Blackmagic Decklink capture |
|
|
1537
|
+
| 6 | `SOURCE_TYPE_SIGNAL_GENERATOR` | Test signal generator |
|
|
1538
|
+
| 7 | `SOURCE_TYPE_SYSTEM_AUDIO` | System audio input |
|
|
1539
|
+
| 8 | `SOURCE_TYPE_SRT_STREAM` | SRT stream |
|
|
1540
|
+
| 9 | `SOURCE_TYPE_WEBSOCKET` | WebSocket stream |
|
|
1541
|
+
| 10 | `SOURCE_TYPE_MOQ` | Media over QUIC stream |
|
|
1542
|
+
|
|
1543
|
+
|
|
1544
|
+
### BrowserSourceConfig
|
|
1545
|
+
|
|
1546
|
+
|
|
1547
|
+
|
|
1548
|
+
|
|
1549
|
+
| Field | Type | Description |
|
|
1550
|
+
|-------|------|-------------|
|
|
1551
|
+
| `url` | string | |
|
|
1552
|
+
| `width` | uint32 | |
|
|
1553
|
+
| `height` | uint32 | |
|
|
1554
|
+
|
|
1555
|
+
|
|
1556
|
+
### DecklinkSourceConfig
|
|
1557
|
+
|
|
1558
|
+
Decklink source configuration.
|
|
1559
|
+
|
|
1560
|
+
|
|
1561
|
+
| Field | Type | Description |
|
|
1562
|
+
|-------|------|-------------|
|
|
1563
|
+
| `device_index` | uint32 | |
|
|
1564
|
+
| `video_format` | sesame.v1.common.VideoFormat | |
|
|
1565
|
+
| `sync_group` | optional uint32 | |
|
|
1566
|
+
|
|
1567
|
+
|
|
1568
|
+
### EjectPlaylistRequest
|
|
1569
|
+
|
|
1570
|
+
Request to eject playlist from recorder source.
|
|
1571
|
+
|
|
1572
|
+
|
|
1573
|
+
| Field | Type | Description |
|
|
1574
|
+
|-------|------|-------------|
|
|
1575
|
+
| `source_id` | string | |
|
|
1576
|
+
|
|
1577
|
+
|
|
1578
|
+
### FileSourceConfig
|
|
1579
|
+
|
|
1580
|
+
Type-specific source payloads.
|
|
1581
|
+
|
|
1582
|
+
|
|
1583
|
+
| Field | Type | Description |
|
|
1584
|
+
|-------|------|-------------|
|
|
1585
|
+
| `url` | string | |
|
|
1586
|
+
|
|
1587
|
+
|
|
1588
|
+
### LoadPlaylistRequest
|
|
1589
|
+
|
|
1590
|
+
Request to load a playlist into a recorder source.
|
|
1591
|
+
|
|
1592
|
+
|
|
1593
|
+
| Field | Type | Description |
|
|
1594
|
+
|-------|------|-------------|
|
|
1595
|
+
| `source_id` | string | |
|
|
1596
|
+
| `user_playlist_id` | string | |
|
|
1597
|
+
| `items` | repeated sesame.v1.recorder.PlaylistItem | |
|
|
1598
|
+
| `start_time_us` | optional int64 | |
|
|
1599
|
+
| `start_index` | optional int64 | |
|
|
1600
|
+
| `material_pos_us` | optional int64 | |
|
|
1601
|
+
|
|
1602
|
+
|
|
1603
|
+
### MoqSourceConfig
|
|
1604
|
+
|
|
1605
|
+
|
|
1606
|
+
|
|
1607
|
+
|
|
1608
|
+
| Field | Type | Description |
|
|
1609
|
+
|-------|------|-------------|
|
|
1610
|
+
| `url` | string | |
|
|
1611
|
+
| `broadcast` | string | |
|
|
1612
|
+
| `key` | string | |
|
|
1613
|
+
| `decode_buffer_frames` | uint32 | |
|
|
1614
|
+
| `incoming_metadata_tracks` | repeated string | |
|
|
1615
|
+
|
|
1616
|
+
|
|
1617
|
+
### RTTSourceConfig
|
|
1618
|
+
|
|
1619
|
+
RTT (Render-to-Texture) source configuration.
|
|
1620
|
+
|
|
1621
|
+
|
|
1622
|
+
| Field | Type | Description |
|
|
1623
|
+
|-------|------|-------------|
|
|
1624
|
+
| `rtt_id` | string | |
|
|
1625
|
+
| `audio_mixes` | repeated string | |
|
|
1626
|
+
| `delay_frames` | uint32 | |
|
|
1627
|
+
|
|
1628
|
+
|
|
1629
|
+
### RecorderSourceConfig
|
|
1630
|
+
|
|
1631
|
+
|
|
1632
|
+
|
|
1633
|
+
|
|
1634
|
+
| Field | Type | Description |
|
|
1635
|
+
|-------|------|-------------|
|
|
1636
|
+
| `recorder_id` | string | |
|
|
1637
|
+
| `codec` | sesame.v1.common.CodecType | |
|
|
1638
|
+
|
|
1639
|
+
|
|
1640
|
+
### SignalGeneratorSourceConfig
|
|
1641
|
+
|
|
1642
|
+
|
|
1643
|
+
|
|
1644
|
+
|
|
1645
|
+
### SourceAddRequest
|
|
1646
|
+
|
|
1647
|
+
Request to add a new source.
|
|
1648
|
+
|
|
1649
|
+
|
|
1650
|
+
| Field | Type | Description |
|
|
1651
|
+
|-------|------|-------------|
|
|
1652
|
+
| `id` | string | |
|
|
1653
|
+
| `config` | SourceConfig | |
|
|
1654
|
+
|
|
1655
|
+
|
|
1656
|
+
### SourceCommonConfig
|
|
1657
|
+
|
|
1658
|
+
Shared fields for all source kinds.
|
|
1659
|
+
|
|
1660
|
+
|
|
1661
|
+
| Field | Type | Description |
|
|
1662
|
+
|-------|------|-------------|
|
|
1663
|
+
| `user_id` | string | |
|
|
1664
|
+
| `use_as_clock` | bool | |
|
|
1665
|
+
| `audio_only` | bool | |
|
|
1666
|
+
| `audio_channels` | uint32 | |
|
|
1667
|
+
| `loop` | bool | |
|
|
1668
|
+
| `play_state` | SourceTransportState | |
|
|
1669
|
+
| `mip_map` | bool | |
|
|
1670
|
+
| `texture_size` | SourceTextureSize | |
|
|
1671
|
+
| `deinterlace` | DeinterlaceType | |
|
|
1672
|
+
| `video_processors` | repeated VideoProcessor | |
|
|
1673
|
+
|
|
1674
|
+
|
|
1675
|
+
### SourceConfig
|
|
1676
|
+
|
|
1677
|
+
Source configuration.
|
|
1678
|
+
Defines how a source is created and configured.
|
|
1679
|
+
|
|
1680
|
+
|
|
1681
|
+
| Field | Type | Description |
|
|
1682
|
+
|-------|------|-------------|
|
|
1683
|
+
| `common` | SourceCommonConfig | |
|
|
1684
|
+
| `file` | FileSourceConfig | |
|
|
1685
|
+
| `recorder` | RecorderSourceConfig | |
|
|
1686
|
+
| `browser` | BrowserSourceConfig | |
|
|
1687
|
+
| `rtt` | RTTSourceConfig | |
|
|
1688
|
+
| `decklink` | DecklinkSourceConfig | |
|
|
1689
|
+
| `signal_generator` | SignalGeneratorSourceConfig | |
|
|
1690
|
+
| `system_audio` | SystemAudioSourceConfig | |
|
|
1691
|
+
| `srt_stream` | SrtSourceConfig | |
|
|
1692
|
+
| `websocket` | WebsocketSourceConfig | |
|
|
1693
|
+
| `moq` | MoqSourceConfig | |
|
|
1694
|
+
|
|
1695
|
+
|
|
1696
|
+
### SourceMetadataEvent
|
|
1697
|
+
|
|
1698
|
+
Source metadata transport event notification.
|
|
1699
|
+
|
|
1700
|
+
|
|
1701
|
+
| Field | Type | Description |
|
|
1702
|
+
|-------|------|-------------|
|
|
1703
|
+
| `source_id` | string | |
|
|
1704
|
+
| `metadata` | sesame.v1.common.TransportMetadata | |
|
|
1705
|
+
|
|
1706
|
+
|
|
1707
|
+
### SourceMetadataSetRequest
|
|
1708
|
+
|
|
1709
|
+
Request to set source metadata.
|
|
1710
|
+
|
|
1711
|
+
|
|
1712
|
+
| Field | Type | Description |
|
|
1713
|
+
|-------|------|-------------|
|
|
1714
|
+
| `source_id` | string | |
|
|
1715
|
+
| `metadata` | sesame.v1.common.TransportMetadata | |
|
|
1716
|
+
|
|
1717
|
+
|
|
1718
|
+
### SourceRemoveRequest
|
|
1719
|
+
|
|
1720
|
+
Request to remove a source.
|
|
1721
|
+
|
|
1722
|
+
|
|
1723
|
+
| Field | Type | Description |
|
|
1724
|
+
|-------|------|-------------|
|
|
1725
|
+
| `id` | string | |
|
|
1726
|
+
|
|
1727
|
+
|
|
1728
|
+
### SourceStatus
|
|
1729
|
+
|
|
1730
|
+
Source status information.
|
|
1731
|
+
|
|
1732
|
+
|
|
1733
|
+
| Field | Type | Description |
|
|
1734
|
+
|-------|------|-------------|
|
|
1735
|
+
| `id` | string | |
|
|
1736
|
+
| `type` | SourceType | |
|
|
1737
|
+
| `user_id` | string | |
|
|
1738
|
+
| `state` | sesame.v1.common.ConnectionState | |
|
|
1739
|
+
| `transport_state` | SourceTransportState | |
|
|
1740
|
+
| `msg` | optional string | |
|
|
1741
|
+
| `url` | string | |
|
|
1742
|
+
| `width` | uint32 | |
|
|
1743
|
+
| `height` | uint32 | |
|
|
1744
|
+
| `fps` | float | |
|
|
1745
|
+
| `duration_us` | int64 | |
|
|
1746
|
+
| `play_position_us` | int64 | |
|
|
1747
|
+
| `video_buf` | int32 | |
|
|
1748
|
+
| `audio_buf` | int32 | |
|
|
1749
|
+
| `gpu_buf` | int32 | |
|
|
1750
|
+
| `audio_channels` | uint32 | |
|
|
1751
|
+
| `audio_level` | float | |
|
|
1752
|
+
| `lip_sync_offset_us` | int64 | |
|
|
1753
|
+
| `decode_timing` | sesame.v1.status.FrameTiming | |
|
|
1754
|
+
| `video_buf_avg` | double | |
|
|
1755
|
+
| `srt_stats` | optional sesame.v1.status.SRTReceiveStatistics | |
|
|
1756
|
+
|
|
1757
|
+
|
|
1758
|
+
### SourceTransportCommand
|
|
1759
|
+
|
|
1760
|
+
Source transport command.
|
|
1761
|
+
|
|
1762
|
+
|
|
1763
|
+
| Field | Type | Description |
|
|
1764
|
+
|-------|------|-------------|
|
|
1765
|
+
| `source_id` | string | |
|
|
1766
|
+
| `cmd_type` | SourceTransportCommandType | |
|
|
1767
|
+
| `value` | sesame.v1.common.PropValue | |
|
|
1768
|
+
|
|
1769
|
+
|
|
1770
|
+
### SourceUpdateRequest
|
|
1771
|
+
|
|
1772
|
+
Request to update an existing source.
|
|
1773
|
+
|
|
1774
|
+
|
|
1775
|
+
| Field | Type | Description |
|
|
1776
|
+
|-------|------|-------------|
|
|
1777
|
+
| `id` | string | |
|
|
1778
|
+
| `config` | SourceConfig | |
|
|
1779
|
+
|
|
1780
|
+
|
|
1781
|
+
### SrtSourceConfig
|
|
1782
|
+
|
|
1783
|
+
|
|
1784
|
+
|
|
1785
|
+
|
|
1786
|
+
| Field | Type | Description |
|
|
1787
|
+
|-------|------|-------------|
|
|
1788
|
+
| `url` | string | |
|
|
1789
|
+
| `decode_buffer_frames` | uint32 | |
|
|
1790
|
+
|
|
1791
|
+
|
|
1792
|
+
### SystemAudioSourceConfig
|
|
1793
|
+
|
|
1794
|
+
|
|
1795
|
+
|
|
1796
|
+
|
|
1797
|
+
| Field | Type | Description |
|
|
1798
|
+
|-------|------|-------------|
|
|
1799
|
+
| `device_name` | string | |
|
|
1800
|
+
|
|
1801
|
+
|
|
1802
|
+
### TransportControlRequest
|
|
1803
|
+
|
|
1804
|
+
Payload for DATA_TYPE_TRANSPORT_CONTROL frames (transport → server).
|
|
1805
|
+
|
|
1806
|
+
The target source ID is NOT included here — it is resolved server-side from
|
|
1807
|
+
the MetadataRouter binding configured for this source track. This mirrors
|
|
1808
|
+
TransportEvent: to build a control message, copy cmd_type and value from
|
|
1809
|
+
the desired SourceTransportCommandType. The server will only apply commands
|
|
1810
|
+
to the source the track is bound to; it cannot control arbitrary sources.
|
|
1811
|
+
|
|
1812
|
+
|
|
1813
|
+
| Field | Type | Description |
|
|
1814
|
+
|-------|------|-------------|
|
|
1815
|
+
| `cmd_type` | SourceTransportCommandType | |
|
|
1816
|
+
| `value` | sesame.v1.common.PropValue | |
|
|
1817
|
+
|
|
1818
|
+
|
|
1819
|
+
### VideoProcessor
|
|
1820
|
+
|
|
1821
|
+
Video processor instance configuration.
|
|
1822
|
+
|
|
1823
|
+
|
|
1824
|
+
| Field | Type | Description |
|
|
1825
|
+
|-------|------|-------------|
|
|
1826
|
+
| `id` | string | |
|
|
1827
|
+
| `type` | PreprocessStep | |
|
|
1828
|
+
| `params` | repeated VideoProcessorParam | |
|
|
1829
|
+
|
|
1830
|
+
|
|
1831
|
+
### VideoProcessorParam
|
|
1832
|
+
|
|
1833
|
+
Video processor parameter (mirrors AudioPluginParam).
|
|
1834
|
+
|
|
1835
|
+
|
|
1836
|
+
| Field | Type | Description |
|
|
1837
|
+
|-------|------|-------------|
|
|
1838
|
+
| `id` | uint32 | |
|
|
1839
|
+
| `float_value` | float | |
|
|
1840
|
+
|
|
1841
|
+
|
|
1842
|
+
### WebsocketSourceConfig
|
|
1843
|
+
|
|
1844
|
+
|
|
1845
|
+
|
|
1846
|
+
|
|
1847
|
+
| Field | Type | Description |
|
|
1848
|
+
|-------|------|-------------|
|
|
1849
|
+
| `channel` | string | |
|
|
1850
|
+
| `decode_buffer_frames` | uint32 | |
|
|
1851
|
+
| `incoming_metadata_tracks` | repeated string | |
|
|
1852
|
+
|
|
1853
|
+
|
|
1854
|
+
---
|
|
1855
|
+
|
|
1856
|
+
|
|
1857
|
+
## sesame/v1/status/statistics.proto
|
|
1858
|
+
|
|
1859
|
+
`sesame.v1.status`
|
|
1860
|
+
|
|
1861
|
+
|
|
1862
|
+
|
|
1863
|
+
|
|
1864
|
+
### FrameTiming
|
|
1865
|
+
|
|
1866
|
+
Frame timing statistics.
|
|
1867
|
+
Used to monitor decode/encode/render performance.
|
|
1868
|
+
All times are in microseconds (us).
|
|
1869
|
+
|
|
1870
|
+
|
|
1871
|
+
| Field | Type | Description |
|
|
1872
|
+
|-------|------|-------------|
|
|
1873
|
+
| `frame_time` | int32 | |
|
|
1874
|
+
| `frame_time_avg` | int32 | |
|
|
1875
|
+
| `frame_time_min` | int32 | |
|
|
1876
|
+
| `frame_time_max` | int32 | |
|
|
1877
|
+
|
|
1878
|
+
|
|
1879
|
+
### MemoryDomainStats
|
|
1880
|
+
|
|
1881
|
+
Memory domain statistics.
|
|
1882
|
+
Tracks memory usage for different allocation domains.
|
|
1883
|
+
|
|
1884
|
+
|
|
1885
|
+
| Field | Type | Description |
|
|
1886
|
+
|-------|------|-------------|
|
|
1887
|
+
| `current_bytes` | uint64 | |
|
|
1888
|
+
| `peak_bytes` | uint64 | |
|
|
1889
|
+
| `budget_bytes` | uint64 | |
|
|
1890
|
+
|
|
1891
|
+
|
|
1892
|
+
### SRTReceiveStatistics
|
|
1893
|
+
|
|
1894
|
+
SRT receive statistics.
|
|
1895
|
+
Provides detailed metrics for SRT stream reception.
|
|
1896
|
+
Used for monitoring stream health and diagnosing issues.
|
|
1897
|
+
|
|
1898
|
+
|
|
1899
|
+
| Field | Type | Description |
|
|
1900
|
+
|-------|------|-------------|
|
|
1901
|
+
| `packets_received` | int64 | |
|
|
1902
|
+
| `packets_received_lost` | int32 | |
|
|
1903
|
+
| `packet_ack_sent` | int32 | |
|
|
1904
|
+
| `packet_nack_sent` | int32 | |
|
|
1905
|
+
| `bytes_received` | int64 | |
|
|
1906
|
+
| `bytes_received_lost` | int64 | |
|
|
1907
|
+
| `receive_rate_mbps` | double | |
|
|
1908
|
+
| `tsbpd_delay` | int32 | |
|
|
1909
|
+
| `bandwidth_mbps` | double | |
|
|
1910
|
+
| `rtt_ms` | double | |
|
|
1911
|
+
|
|
1912
|
+
|
|
1913
|
+
### SRTSendStatistics
|
|
1914
|
+
|
|
1915
|
+
SRT send statistics.
|
|
1916
|
+
Provides detailed metrics for SRT stream transmission.
|
|
1917
|
+
|
|
1918
|
+
|
|
1919
|
+
| Field | Type | Description |
|
|
1920
|
+
|-------|------|-------------|
|
|
1921
|
+
| `packets_sent` | int64 | |
|
|
1922
|
+
| `packets_sent_lost` | int32 | |
|
|
1923
|
+
| `packets_sent_dropped` | int32 | |
|
|
1924
|
+
| `packets_retransmitted` | int32 | |
|
|
1925
|
+
| `packet_ack_received` | int32 | |
|
|
1926
|
+
| `packet_nack_received` | int32 | |
|
|
1927
|
+
| `bytes_sent` | int64 | |
|
|
1928
|
+
| `bytes_sent_dropped` | int64 | |
|
|
1929
|
+
| `send_rate_mbps` | double | |
|
|
1930
|
+
| `bandwidth_mbps` | double | |
|
|
1931
|
+
| `rtt_ms` | double | |
|
|
1932
|
+
|
|
1933
|
+
|
|
1934
|
+
### SystemStatus
|
|
1935
|
+
|
|
1936
|
+
System status information.
|
|
1937
|
+
Provides overall system health and performance metrics.
|
|
1938
|
+
|
|
1939
|
+
|
|
1940
|
+
| Field | Type | Description |
|
|
1941
|
+
|-------|------|-------------|
|
|
1942
|
+
| `uptime` | uint64 | |
|
|
1943
|
+
| `framedrops` | uint32 | |
|
|
1944
|
+
| `framerate` | float | |
|
|
1945
|
+
| `gpu_mem` | uint64 | |
|
|
1946
|
+
| `cpu_mem` | uint64 | |
|
|
1947
|
+
| `mem_gpu_pool` | MemoryDomainStats | |
|
|
1948
|
+
| `mem_cpu_pool` | MemoryDomainStats | |
|
|
1949
|
+
| `mem_gpu_adhoc` | MemoryDomainStats | |
|
|
1950
|
+
| `mem_gpu_pinned` | MemoryDomainStats | |
|
|
1951
|
+
| `gpu_mem_total` | uint64 | |
|
|
1952
|
+
| `gpu_mem_used` | uint64 | |
|
|
1953
|
+
| `gpu_utilization` | uint32 | |
|
|
1954
|
+
| `gpu_mem_utilization` | uint32 | |
|
|
1955
|
+
| `gpu_encoder_utilization` | uint32 | |
|
|
1956
|
+
| `gpu_decoder_utilization` | uint32 | |
|
|
1957
|
+
| `gpu_name` | string | |
|
|
1958
|
+
| `vma_bytes` | uint64 | |
|
|
1959
|
+
|
|
1960
|
+
|
|
1961
|
+
---
|
|
1962
|
+
|
|
1963
|
+
|
|
1964
|
+
## sesame/v1/status/status.proto
|
|
1965
|
+
|
|
1966
|
+
`sesame.v1.status`
|
|
1967
|
+
|
|
1968
|
+
|
|
1969
|
+
|
|
1970
|
+
|
|
1971
|
+
### IODeviceType
|
|
1972
|
+
|
|
1973
|
+
I/O device type.
|
|
1974
|
+
|
|
1975
|
+
| Value | Name | Description |
|
|
1976
|
+
|-------|------|-------------|
|
|
1977
|
+
| 0 | `IO_DEVICE_TYPE_UNSPECIFIED` | Unspecified (invalid) |
|
|
1978
|
+
| 1 | `IO_DEVICE_TYPE_VIDEO_INPUT` | Video input device |
|
|
1979
|
+
| 2 | `IO_DEVICE_TYPE_VIDEO_OUTPUT` | Video output device |
|
|
1980
|
+
| 3 | `IO_DEVICE_TYPE_AUDIO_INPUT` | Audio input device |
|
|
1981
|
+
| 4 | `IO_DEVICE_TYPE_AUDIO_OUTPUT` | Audio output device |
|
|
1982
|
+
|
|
1983
|
+
|
|
1984
|
+
### CompositorStatus
|
|
1985
|
+
|
|
1986
|
+
Compositor status.
|
|
1987
|
+
|
|
1988
|
+
|
|
1989
|
+
| Field | Type | Description |
|
|
1990
|
+
|-------|------|-------------|
|
|
1991
|
+
| `id` | string | |
|
|
1992
|
+
|
|
1993
|
+
|
|
1994
|
+
### ErrorEvent
|
|
1995
|
+
|
|
1996
|
+
Error event.
|
|
1997
|
+
|
|
1998
|
+
|
|
1999
|
+
| Field | Type | Description |
|
|
2000
|
+
|-------|------|-------------|
|
|
2001
|
+
| `msg` | string | |
|
|
2002
|
+
|
|
2003
|
+
|
|
2004
|
+
### Event
|
|
2005
|
+
|
|
2006
|
+
Event message wrapper.
|
|
2007
|
+
|
|
2008
|
+
|
|
2009
|
+
| Field | Type | Description |
|
|
2010
|
+
|-------|------|-------------|
|
|
2011
|
+
| `error_event` | ErrorEvent | |
|
|
2012
|
+
| `transport_event` | TransportEvent | |
|
|
2013
|
+
| `callback_event` | sesame.v1.common.Callback | |
|
|
2014
|
+
| `job_event` | sesame.v1.jobs.Job | |
|
|
2015
|
+
| `metadata_event` | MetadataEvent | |
|
|
2016
|
+
| `recorder_event` | sesame.v1.recorder.RecorderEvent | |
|
|
2017
|
+
|
|
2018
|
+
|
|
2019
|
+
### IODeviceItem
|
|
2020
|
+
|
|
2021
|
+
I/O device item.
|
|
2022
|
+
|
|
2023
|
+
|
|
2024
|
+
| Field | Type | Description |
|
|
2025
|
+
|-------|------|-------------|
|
|
2026
|
+
| `id` | string | |
|
|
2027
|
+
| `name` | string | |
|
|
2028
|
+
| `type` | IODeviceType | |
|
|
2029
|
+
|
|
2030
|
+
|
|
2031
|
+
### IODeviceListResponse
|
|
2032
|
+
|
|
2033
|
+
I/O device list response.
|
|
2034
|
+
|
|
2035
|
+
|
|
2036
|
+
| Field | Type | Description |
|
|
2037
|
+
|-------|------|-------------|
|
|
2038
|
+
| `devices` | repeated IODeviceItem | |
|
|
2039
|
+
|
|
2040
|
+
|
|
2041
|
+
### MetadataEvent
|
|
2042
|
+
|
|
2043
|
+
Fired when a metadata DATA frame arrives on a streaming source and is
|
|
2044
|
+
routed to an app consumer via the metadata binding table.
|
|
2045
|
+
|
|
2046
|
+
|
|
2047
|
+
| Field | Type | Description |
|
|
2048
|
+
|-------|------|-------------|
|
|
2049
|
+
| `source_node_id` | string | |
|
|
2050
|
+
| `track_name` | string | |
|
|
2051
|
+
| `target_node_id` | string | |
|
|
2052
|
+
| `metadata_id` | string | |
|
|
2053
|
+
| `payload` | bytes | |
|
|
2054
|
+
|
|
2055
|
+
|
|
2056
|
+
### Status
|
|
2057
|
+
|
|
2058
|
+
Overall system status.
|
|
2059
|
+
|
|
2060
|
+
|
|
2061
|
+
| Field | Type | Description |
|
|
2062
|
+
|-------|------|-------------|
|
|
2063
|
+
| `system_status` | SystemStatus | |
|
|
2064
|
+
| `render_status_gpu` | FrameTiming | |
|
|
2065
|
+
| `render_status_cpu` | FrameTiming | |
|
|
2066
|
+
| `sources` | repeated sesame.v1.sources.SourceStatus | |
|
|
2067
|
+
| `compositions` | repeated CompositorStatus | |
|
|
2068
|
+
| `audio_mixes` | repeated sesame.v1.audio.AudioMixerStatus | |
|
|
2069
|
+
| `outputs` | repeated sesame.v1.outputs.OutputStatus | |
|
|
2070
|
+
| `recorders` | repeated sesame.v1.recorder.RecorderStatus | |
|
|
2071
|
+
|
|
2072
|
+
|
|
2073
|
+
### SubscriptionRequest
|
|
2074
|
+
|
|
2075
|
+
Subscription request.
|
|
2076
|
+
|
|
2077
|
+
|
|
2078
|
+
| Field | Type | Description |
|
|
2079
|
+
|-------|------|-------------|
|
|
2080
|
+
| `event_topics` | repeated sesame.v1.common.EventTopic | |
|
|
2081
|
+
| `channels` | repeated string | |
|
|
2082
|
+
|
|
2083
|
+
|
|
2084
|
+
### TransportEvent
|
|
2085
|
+
|
|
2086
|
+
Transport event (source playback state change).
|
|
2087
|
+
|
|
2088
|
+
|
|
2089
|
+
| Field | Type | Description |
|
|
2090
|
+
|-------|------|-------------|
|
|
2091
|
+
| `source_id` | string | |
|
|
2092
|
+
| `user_id` | string | |
|
|
2093
|
+
| `uri` | string | |
|
|
2094
|
+
| `state` | sesame.v1.sources.SourceTransportState | |
|
|
2095
|
+
| `duration_us` | int64 | |
|
|
2096
|
+
| `position_us` | int64 | |
|
|
2097
|
+
| `material_position_us` | int64 | |
|
|
2098
|
+
| `user_time_us` | int64 | |
|
|
2099
|
+
| `speed` | float | |
|
|
2100
|
+
| `user_playlist_id` | string | |
|
|
2101
|
+
| `playlist_index` | uint32 | |
|
|
2102
|
+
| `playlist_length` | uint32 | |
|
|
2103
|
+
| `clip_id` | uint64 | |
|
|
2104
|
+
| `clip_position_us` | int64 | |
|
|
2105
|
+
| `clip_duration_us` | int64 | |
|
|
2106
|
+
| `preroll` | uint32 | |
|
|
2107
|
+
| `postroll` | uint32 | |
|
|
2108
|
+
| `metadata` | sesame.v1.common.TransportMetadata | |
|
|
2109
|
+
| `near_end` | bool | True in the single event fired when the end-notification threshold is crossed |
|
|
2110
|
+
|
|
2111
|
+
|
|
2112
|
+
---
|
|
2113
|
+
|
|
2114
|
+
|
|
2115
|
+
## sesame/v1/wire/wire.proto
|
|
2116
|
+
|
|
2117
|
+
`sesame.v1.wire`
|
|
2118
|
+
|
|
2119
|
+
|
|
2120
|
+
|
|
2121
|
+
|
|
2122
|
+
### DataType
|
|
2123
|
+
|
|
2124
|
+
Payload type carried in a FRAME_TYPE_DATA frame.
|
|
2125
|
+
The frame payload bytes are a serialized protobuf message of the indicated
|
|
2126
|
+
type, or raw UTF-8 JSON for DATA_TYPE_JSON.
|
|
2127
|
+
|
|
2128
|
+
| Value | Name | Description |
|
|
2129
|
+
|-------|------|-------------|
|
|
2130
|
+
| 0 | `DATA_TYPE_UNSPECIFIED` | |
|
|
2131
|
+
| 1 | `DATA_TYPE_JSON` | |
|
|
2132
|
+
| 2 | `DATA_TYPE_TRANSPORT_STATUS` | payload: sesame.v1.status.TransportEvent (source → transport) |
|
|
2133
|
+
| 3 | `DATA_TYPE_AUDIO_STATE` | payload: sesame.v1.audio.AudioMixerStatus (mixer → transport) |
|
|
2134
|
+
| 4 | `DATA_TYPE_TRANSPORT_CONTROL` | payload: sesame.v1.sources.TransportControlRequest (transport → source) |
|
|
2135
|
+
| 5 | `DATA_TYPE_AUDIO_CONTROL` | payload: sesame.v1.audio.AudioControlRequest (transport → mixer) |
|
|
2136
|
+
| 6 | `DATA_TYPE_BINARY` | payload: raw binary bytes (opaque to the wire layer) |
|
|
2137
|
+
|
|
2138
|
+
|
|
2139
|
+
### FrameType
|
|
2140
|
+
|
|
2141
|
+
Type of frame carried on the wire.
|
|
2142
|
+
|
|
2143
|
+
| Value | Name | Description |
|
|
2144
|
+
|-------|------|-------------|
|
|
2145
|
+
| 0 | `FRAME_TYPE_UNSPECIFIED` | |
|
|
2146
|
+
| 1 | `FRAME_TYPE_RPC` | |
|
|
2147
|
+
| 2 | `FRAME_TYPE_VIDEO` | |
|
|
2148
|
+
| 3 | `FRAME_TYPE_AUDIO` | |
|
|
2149
|
+
| 4 | `FRAME_TYPE_MUXED` | |
|
|
2150
|
+
| 5 | `FRAME_TYPE_DECODER_DATA` | |
|
|
2151
|
+
| 6 | `FRAME_TYPE_DATA` | |
|
|
2152
|
+
|
|
2153
|
+
|
|
2154
|
+
### DataFrameData
|
|
2155
|
+
|
|
2156
|
+
Header data for FRAME_TYPE_DATA frames.
|
|
2157
|
+
|
|
2158
|
+
|
|
2159
|
+
| Field | Type | Description |
|
|
2160
|
+
|-------|------|-------------|
|
|
2161
|
+
| `data_type` | DataType | |
|
|
2162
|
+
| `track_name` | string | |
|
|
2163
|
+
|
|
2164
|
+
|
|
2165
|
+
### FrameHeader
|
|
2166
|
+
|
|
2167
|
+
Header for every websocket / MoQ frame.
|
|
2168
|
+
Serialized with a 4-byte little-endian size prefix on the wire.
|
|
2169
|
+
|
|
2170
|
+
|
|
2171
|
+
| Field | Type | Description |
|
|
2172
|
+
|-------|------|-------------|
|
|
2173
|
+
| `type` | FrameType | |
|
|
2174
|
+
| `routing_metadata` | string | |
|
|
2175
|
+
| `media` | MediaFrameData | |
|
|
2176
|
+
| `data` | DataFrameData | |
|
|
2177
|
+
|
|
2178
|
+
|
|
2179
|
+
### MediaCodecData
|
|
2180
|
+
|
|
2181
|
+
Codec parameters for a media stream.
|
|
2182
|
+
|
|
2183
|
+
|
|
2184
|
+
| Field | Type | Description |
|
|
2185
|
+
|-------|------|-------------|
|
|
2186
|
+
| `codec_type` | sesame.v1.common.CodecType | |
|
|
2187
|
+
| `sample_rate` | uint32 | |
|
|
2188
|
+
| `timebase_num` | uint32 | |
|
|
2189
|
+
| `timebase_den` | uint32 | |
|
|
2190
|
+
| `codec_profile` | uint32 | |
|
|
2191
|
+
| `codec_level` | uint32 | |
|
|
2192
|
+
| `width` | uint32 | |
|
|
2193
|
+
| `height` | uint32 | |
|
|
2194
|
+
| `channels` | uint32 | |
|
|
2195
|
+
| `bit_depth` | uint32 | |
|
|
2196
|
+
|
|
2197
|
+
|
|
2198
|
+
### MediaFrameData
|
|
2199
|
+
|
|
2200
|
+
Media-specific fields for VIDEO, AUDIO, MUXED, and DECODER_DATA frames.
|
|
2201
|
+
|
|
2202
|
+
|
|
2203
|
+
| Field | Type | Description |
|
|
2204
|
+
|-------|------|-------------|
|
|
2205
|
+
| `pts` | uint64 | |
|
|
2206
|
+
| `keyframe` | bool | |
|
|
2207
|
+
| `codec_data` | MediaCodecData | |
|
|
2208
|
+
|
|
2209
|
+
|
|
2210
|
+
---
|
|
2211
|
+
|
|
2212
|
+
|
|
2213
|
+
## Scene Graph Properties
|
|
2214
|
+
|
|
2215
|
+
Properties are set via `PropertySetRequest` or animated via `PropertyAnimateRequest`. The `domain` field identifies the owning engine object.
|
|
2216
|
+
|
|
2217
|
+
### Compositor Domain (`domain.compositor_id`)
|
|
2218
|
+
|
|
2219
|
+
#### Base Node Properties (all node types)
|
|
2220
|
+
|
|
2221
|
+
| Property | Type | Description |
|
|
2222
|
+
|----------|------|-------------|
|
|
2223
|
+
| `position` | vec4 | XYZ position |
|
|
2224
|
+
| `position.x` | float | X position |
|
|
2225
|
+
| `position.y` | float | Y position |
|
|
2226
|
+
| `position.z` | float | Z position / depth |
|
|
2227
|
+
| `scale` | vec4 | XYZ scale |
|
|
2228
|
+
| `scale.x` | float | X scale |
|
|
2229
|
+
| `scale.y` | float | Y scale |
|
|
2230
|
+
| `scale.z` | float | Z scale |
|
|
2231
|
+
| `rotation` | vec4 | XYZ rotation (degrees) |
|
|
2232
|
+
| `rotation.x` | float | X rotation (degrees) |
|
|
2233
|
+
| `rotation.y` | float | Y rotation (degrees) |
|
|
2234
|
+
| `rotation.z` | float | Z rotation (degrees) |
|
|
2235
|
+
| `opacity` | float | Opacity (0-1) |
|
|
2236
|
+
| `priority` | float | Render priority (z-order) |
|
|
2237
|
+
| `visible` | bool | Visibility |
|
|
2238
|
+
| `alpha_map` | string | Alpha map source ID |
|
|
2239
|
+
|
|
2240
|
+
#### Mesh Node (Video Box, Image, Group)
|
|
2241
|
+
|
|
2242
|
+
| Property | Type | Description |
|
|
2243
|
+
|----------|------|-------------|
|
|
2244
|
+
| `size` | vec4 | Width and height |
|
|
2245
|
+
| `size.x` | float | Width |
|
|
2246
|
+
| `size.y` | float | Height |
|
|
2247
|
+
| `origin` | vec4 | Origin point |
|
|
2248
|
+
| `origin.x` | float | Origin X |
|
|
2249
|
+
| `origin.y` | float | Origin Y |
|
|
2250
|
+
| `color` | vec4 | Color RGBA |
|
|
2251
|
+
| `color.r` | float | Red |
|
|
2252
|
+
| `color.g` | float | Green |
|
|
2253
|
+
| `color.b` | float | Blue |
|
|
2254
|
+
| `color.a` | float | Alpha |
|
|
2255
|
+
|
|
2256
|
+
#### Text Node
|
|
2257
|
+
|
|
2258
|
+
| Property | Type | Description |
|
|
2259
|
+
|----------|------|-------------|
|
|
2260
|
+
| `text` | string | Text content |
|
|
2261
|
+
| `justify` | string | Alignment: `left`, `center`, `right` |
|
|
2262
|
+
| `font_size` | float | Font size |
|
|
2263
|
+
| `outline_color` | vec4 | Outline color |
|
|
2264
|
+
| `outline_size` | float | Outline size |
|
|
2265
|
+
| `spacing` | float | Letter spacing |
|
|
2266
|
+
|
|
2267
|
+
#### Video Box Node
|
|
2268
|
+
|
|
2269
|
+
| Property | Type | Description |
|
|
2270
|
+
|----------|------|-------------|
|
|
2271
|
+
| `source` | string | Source ID to display |
|
|
2272
|
+
| `audio_meter_source` | string | Pipe-delimited mixer IDs for audio meters |
|
|
2273
|
+
| `show_audio_meter` | bool | Show audio meters |
|
|
2274
|
+
| `show_border` | bool | Show border |
|
|
2275
|
+
| `show_label_bg` | bool | Show label background |
|
|
2276
|
+
| `tex_filter` | bool | Texture filtering |
|
|
2277
|
+
|
|
2278
|
+
#### Image Node
|
|
2279
|
+
|
|
2280
|
+
| Property | Type | Description |
|
|
2281
|
+
|----------|------|-------------|
|
|
2282
|
+
| `filename` | string | Image filename (supports `rtt:` prefix) |
|
|
2283
|
+
| `tex_filter` | bool | Texture filtering |
|
|
2284
|
+
| `premultiply` | bool | Premultiply alpha |
|
|
2285
|
+
|
|
2286
|
+
#### Effects
|
|
2287
|
+
|
|
2288
|
+
**All effects:**
|
|
2289
|
+
|
|
2290
|
+
| Property | Type | Description |
|
|
2291
|
+
|----------|------|-------------|
|
|
2292
|
+
| `enabled` | bool | Enable/disable the effect |
|
|
2293
|
+
|
|
2294
|
+
**RTT Effect:**
|
|
2295
|
+
|
|
2296
|
+
| Property | Type | Description |
|
|
2297
|
+
|----------|------|-------------|
|
|
2298
|
+
| `rtt-id` | string | Render-to-texture target ID |
|
|
2299
|
+
|
|
2300
|
+
**Timecode Effect:**
|
|
2301
|
+
|
|
2302
|
+
| Property | Type | Description |
|
|
2303
|
+
|----------|------|-------------|
|
|
2304
|
+
| `timecode_type` | string | `internal`, `time_of_day`, `recorder`, `recorder_internal`, `recorder_clip_countdown`, `recorder_playlist_countdown`, `recorder_internal_offset`, `recorder_free_space`, `recorder_playback_speed` |
|
|
2305
|
+
| `timecode_src` | string | Source ID for timecode |
|
|
2306
|
+
|
|
2307
|
+
**Clip Plane Effect:**
|
|
2308
|
+
|
|
2309
|
+
| Property | Type | Description |
|
|
2310
|
+
|----------|------|-------------|
|
|
2311
|
+
| `clip-plane` | vec4 | Clip plane XYZW |
|
|
2312
|
+
| `clip-plane.x` | float | Clip plane X |
|
|
2313
|
+
| `clip-plane.y` | float | Clip plane Y |
|
|
2314
|
+
| `clip-plane.z` | float | Clip plane Z |
|
|
2315
|
+
| `clip-plane.w` | float | Clip plane W |
|
|
2316
|
+
| `feather` | float | Feather amount |
|
|
2317
|
+
|
|
2318
|
+
### Audio Mixer Domain (`domain.audio_mixer_id`)
|
|
2319
|
+
|
|
2320
|
+
**Address field** identifies the target within the mixer:
|
|
2321
|
+
|
|
2322
|
+
- Channel property — set `address` to the channel ID (e.g. `"video-1"` or `"snigel1-pgm1/audio_mixer_0"`).
|
|
2323
|
+
- Plugin parameter — set `address` to `"<channel_id>::<plugin_id>"` and `property` to the numeric param ID as a string (e.g. `"0"`, `"3"`).
|
|
2324
|
+
|
|
2325
|
+
The server disambiguates these two cases by whether `address` contains the `::` delimiter: if it does, the address is split into channel ID and plugin ID, and `property` is parsed as a numeric param ID; otherwise the full `address` string is used as the channel ID for a named channel property.
|
|
2326
|
+
|
|
2327
|
+
| Property | Type | Description |
|
|
2328
|
+
|----------|------|-------------|
|
|
2329
|
+
| `level` | float | Channel level (0-1) |
|
|
2330
|
+
| `pan` | float | Pan position (-1 to 1) |
|
|
2331
|
+
| `mute` | bool | Mute channel |
|
|
2332
|
+
| `source_channels` | vec4 | Source channel routing |
|
|
2333
|
+
| `source_id` | string | Source ID |
|
|
2334
|
+
| `<param_id>` | float | Plugin parameter — `address` must be `channel_id::plugin_id`, `property` is the numeric param ID |
|
|
2335
|
+
|
|
2336
|
+
**Level animation:** use `propertyAnimate` with `ANIM_MODE_STATE_FROM` to fade from the current level. For an instant cut (no transition), `propertySet` is preferred — a zero-duration `propertyAnimate` is clamped to 1 ms by the server rather than producing an instant cut.
|
|
2337
|
+
|
|
2338
|
+
### Source Domain (`domain.source_id`)
|
|
2339
|
+
|
|
2340
|
+
Address format: `processor_id` for preprocessor parameters.
|
|
2341
|
+
|
|
2342
|
+
| Property | Type | Description |
|
|
2343
|
+
|----------|------|-------------|
|
|
2344
|
+
| `audio_level` | float | Source audio level |
|
|
2345
|
+
| `<param_id>` | float | Preprocessor parameter (numeric ID as string) |
|
|
2346
|
+
|
|
2347
|
+
|
|
2348
|
+
<!-- Hand-maintained sections - appended to generated protocol-reference.md -->
|
|
2349
|
+
<!-- Scene Graph Properties are now auto-generated from property-registry.h -->
|
|
2350
|
+
|
|
2351
|
+
## Event Subscriptions
|
|
2352
|
+
|
|
2353
|
+
Clients must subscribe to receive push events. Call `UpdateSubscriptions` with desired `EventTopic` values:
|
|
2354
|
+
|
|
2355
|
+
```typescript
|
|
2356
|
+
client.addSubscription(sesame.v1.common.EventTopic.EVENT_TOPIC_TRANSPORT, callback);
|
|
2357
|
+
client.addSubscription(sesame.v1.common.EventTopic.EVENT_TOPIC_JOB, callback);
|
|
2358
|
+
```
|
|
2359
|
+
|
|
2360
|
+
| Topic | Event type | When fired |
|
|
2361
|
+
|-------|-----------|------------|
|
|
2362
|
+
| `EVENT_TOPIC_ERROR` | ErrorEvent | Engine error |
|
|
2363
|
+
| `EVENT_TOPIC_TRANSPORT` | TransportEvent | Source playback state change; also fired once per playback run with `near_end=true` when the end-notification threshold is crossed |
|
|
2364
|
+
| `EVENT_TOPIC_CALLBACK` | Callback | Client callback command echoed |
|
|
2365
|
+
| `EVENT_TOPIC_JOB` | Job | Job lifecycle change + progress (~2 Hz) |
|
|
2366
|
+
| `EVENT_TOPIC_RECORDER` | RecorderEvent | Recorder online/offline |
|
|
2367
|
+
|
|
2368
|
+
|