@stinkycomputing/sesame-api-client 1.5.10 → 1.5.12

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.
@@ -58,8 +58,8 @@ Request to add a channel to an audio mixer.
58
58
 
59
59
  | Field | Type | Description |
60
60
  |-------|------|-------------|
61
- | `mixer_id` | string | |
62
- | `channel_config` | AudioMixerChannel | |
61
+ | `mixer_id` | string | Mixer ID |
62
+ | `channel_config` | AudioMixerChannel | Channel configuration |
63
63
 
64
64
 
65
65
  ### AudioChannelControlRequest
@@ -69,10 +69,13 @@ Per-channel property updates. Absent optional fields are left unchanged.
69
69
 
70
70
  | Field | Type | Description |
71
71
  |-------|------|-------------|
72
- | `channel_id` | string | |
73
- | `level` | optional float | |
74
- | `pan` | optional float | |
75
- | `plugins` | repeated AudioPluginControlRequest | |
72
+ | `channel_id` | string | Channel ID within the mixer |
73
+ | `level` | optional float | New manual level (0.0–1.0) |
74
+ | `pan` | optional float | New pan (-1.0–1.0) |
75
+ | `plugins` | repeated AudioPluginControlRequest | Plugin param updates |
76
+ | `mute` | optional bool | New manual mute |
77
+ | `automation_level` | optional float | New automation level (0.0–1.0) |
78
+ | `automation_mute` | optional bool | New automation mute |
76
79
 
77
80
 
78
81
  ### AudioChannelPluginStatus
@@ -82,9 +85,9 @@ Audio channel plugin status.
82
85
 
83
86
  | Field | Type | Description |
84
87
  |-------|------|-------------|
85
- | `id` | string | |
86
- | `type` | string | |
87
- | `params` | repeated AudioPluginParamStatus | |
88
+ | `id` | string | Plugin ID |
89
+ | `type` | string | Plugin type |
90
+ | `params` | repeated AudioPluginParamStatus | Plugin parameter status |
88
91
 
89
92
 
90
93
  ### AudioChannelRemoveRequest
@@ -94,8 +97,8 @@ Request to remove a channel from an audio mixer.
94
97
 
95
98
  | Field | Type | Description |
96
99
  |-------|------|-------------|
97
- | `mixer_id` | string | |
98
- | `channel_id` | string | |
100
+ | `mixer_id` | string | Mixer ID |
101
+ | `channel_id` | string | Channel ID to remove |
99
102
 
100
103
 
101
104
  ### AudioChannelStatus
@@ -105,14 +108,19 @@ Audio channel status.
105
108
 
106
109
  | Field | Type | Description |
107
110
  |-------|------|-------------|
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 | |
111
+ | `id` | string | Channel ID |
112
+ | `output_type` | AudioMixerChannelType | Output type |
113
+ | `level` | float | Channel level (0.0-1.0) |
114
+ | `pan` | float | Pan position |
115
+ | `vu` | repeated float | VU meter values |
116
+ | `has_data` | bool | Has audio data |
117
+ | `read_errors` | uint32 | Read error count |
118
+ | `plugins` | repeated AudioChannelPluginStatus | Plugin status |
119
+ | `mute` | bool | Manual mute |
120
+ | `automation_level` | float | Automation gain multiplier |
121
+ | `automation_mute` | bool | Automation mute |
122
+ | `effective_level` | float | level * automation_level |
123
+ | `effective_mute` | bool | mute || automation_mute |
116
124
 
117
125
 
118
126
  ### AudioControlRequest
@@ -121,15 +129,18 @@ Payload for DATA_TYPE_AUDIO_CONTROL frames (transport → server).
121
129
 
122
130
  The target mixer ID is NOT included here — it is resolved server-side from
123
131
  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).
132
+ AudioMixerStatus: to build a control message, take an AudioMixerStatus,
133
+ pick the channels you want to change, copy their `id` into `channel_id`,
134
+ and set the desired `level`/`automation_level`/`pan`/plugin params. Omit fields you don't
135
+ want to change (optional fields that are absent are left unchanged).
128
136
 
129
137
 
130
- | Field | Type | Description |
131
- |-------|------|-------------|
132
- | `channels` | repeated AudioChannelControlRequest | |
138
+ | Field | Type | Description |
139
+ |-------|------|-------------|
140
+ | `channels` | repeated AudioChannelControlRequest | |
141
+ | `master_level` | optional float | New manual master level (0.0-1.0) |
142
+ | `master_automation_level` | optional float | New automation master level (0.0-1.0) |
143
+ | `master_plugins` | repeated AudioPluginControlRequest | Master plugin param updates |
133
144
 
134
145
 
135
146
  ### AudioMixerAddRequest
@@ -139,8 +150,8 @@ Request to add a new audio mixer.
139
150
 
140
151
  | Field | Type | Description |
141
152
  |-------|------|-------------|
142
- | `id` | string | |
143
- | `config` | AudioMixerConfig | |
153
+ | `id` | string | Unique mixer ID |
154
+ | `config` | AudioMixerConfig | Mixer configuration |
144
155
 
145
156
 
146
157
  ### AudioMixerChannel
@@ -150,13 +161,16 @@ Audio mixer channel configuration.
150
161
 
151
162
  | Field | Type | Description |
152
163
  |-------|------|-------------|
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 | |
164
+ | `id` | string | Channel ID |
165
+ | `source_id` | string | Source ID |
166
+ | `channel_type` | AudioMixerChannelType | Channel type |
167
+ | `source_channels` | repeated uint32 | Source channel indices |
168
+ | `level` | float | Channel level (0.0-1.0) |
169
+ | `pan` | float | Pan position (-1.0 to 1.0) |
170
+ | `plugins` | repeated AudioPlugin | Audio plugins |
171
+ | `mute` | bool | Manual mute |
172
+ | `automation_level` | optional float | Automation gain multiplier (0.0-1.0, default 1.0) |
173
+ | `automation_mute` | bool | Automation mute |
160
174
 
161
175
 
162
176
  ### AudioMixerConfig
@@ -166,9 +180,41 @@ Audio mixer configuration.
166
180
 
167
181
  | Field | Type | Description |
168
182
  |-------|------|-------------|
169
- | `channels` | repeated AudioMixerChannel | |
170
- | `output_type` | AudioMixerChannelType | |
171
- | `order` | uint32 | |
183
+ | `channels` | repeated AudioMixerChannel | Mixer channels |
184
+ | `output_type` | AudioMixerChannelType | Output channel type |
185
+ | `order` | uint32 | Processing order |
186
+ | `outputs` | repeated AudioMixerOutput | Named derived outputs |
187
+ | `master_level` | optional float | Manual master level (0.0-1.0, default 1.0) |
188
+ | `master_automation_level` | optional float | Automation master gain multiplier (0.0-1.0, default 1.0) |
189
+ | `master_plugins` | repeated AudioPlugin | Master bus audio plugins |
190
+
191
+
192
+ ### AudioMixerOutput
193
+
194
+ Named derived output from an audio mixer.
195
+ The main L+R output is implicit and is addressed by the mixer ID.
196
+ A named output is addressed as "<mixer_id>/<output_id>".
197
+
198
+
199
+ | Field | Type | Description |
200
+ |-------|------|-------------|
201
+ | `id` | string | Output ID, unique within the mixer |
202
+ | `excluded_channel_ids` | repeated string | Channel IDs omitted from this output |
203
+ | `include_master_plugins` | optional bool | Run this output through the master plugin chain (default true) |
204
+
205
+
206
+ ### AudioMixerOutputStatus
207
+
208
+ Named derived audio mixer output status.
209
+
210
+
211
+ | Field | Type | Description |
212
+ |-------|------|-------------|
213
+ | `id` | string | Output ID, unique within the mixer |
214
+ | `output_type` | AudioMixerChannelType | Output type |
215
+ | `vu` | repeated float | Output VU meter values |
216
+ | `excluded_channel_ids` | repeated string | Channel IDs omitted from this output |
217
+ | `include_master_plugins` | bool | Whether this output runs through the master plugin chain |
172
218
 
173
219
 
174
220
  ### AudioMixerRemoveRequest
@@ -178,7 +224,7 @@ Request to remove an audio mixer.
178
224
 
179
225
  | Field | Type | Description |
180
226
  |-------|------|-------------|
181
- | `id` | string | |
227
+ | `id` | string | Mixer ID to remove |
182
228
 
183
229
 
184
230
  ### AudioMixerStatus
@@ -188,10 +234,15 @@ Audio mixer status.
188
234
 
189
235
  | Field | Type | Description |
190
236
  |-------|------|-------------|
191
- | `id` | string | |
192
- | `output_type` | AudioMixerChannelType | |
193
- | `vu` | repeated float | |
194
- | `channels` | repeated AudioChannelStatus | |
237
+ | `id` | string | Mixer ID |
238
+ | `output_type` | AudioMixerChannelType | Output type |
239
+ | `vu` | repeated float | Master VU meter values |
240
+ | `channels` | repeated AudioChannelStatus | Channel status |
241
+ | `master_level` | float | Manual master level |
242
+ | `master_automation_level` | float | Automation master gain multiplier |
243
+ | `master_effective_level` | float | master_level * master_automation_level |
244
+ | `master_plugins` | repeated AudioChannelPluginStatus | Master plugin status |
245
+ | `outputs` | repeated AudioMixerOutputStatus | Named derived output status |
195
246
 
196
247
 
197
248
  ### AudioMixerUpdateRequest
@@ -201,8 +252,8 @@ Request to update an existing audio mixer.
201
252
 
202
253
  | Field | Type | Description |
203
254
  |-------|------|-------------|
204
- | `id` | string | |
205
- | `config` | AudioMixerConfig | |
255
+ | `id` | string | Mixer ID to update |
256
+ | `config` | AudioMixerConfig | New configuration |
206
257
 
207
258
 
208
259
  ### AudioPlugin
@@ -212,10 +263,10 @@ Audio plugin instance.
212
263
 
213
264
  | Field | Type | Description |
214
265
  |-------|------|-------------|
215
- | `id` | string | |
216
- | `type` | string | |
217
- | `params` | repeated AudioPluginParam | |
218
- | `aux_input_mix_ids` | repeated string | |
266
+ | `id` | string | Plugin instance ID |
267
+ | `type` | string | Plugin type |
268
+ | `params` | repeated AudioPluginParam | Plugin parameters |
269
+ | `aux_input_mix_ids` | repeated string | Auxiliary input mixer IDs |
219
270
 
220
271
 
221
272
  ### AudioPluginControlRequest
@@ -225,8 +276,8 @@ Plugin parameter update within an AudioChannelControlRequest.
225
276
 
226
277
  | Field | Type | Description |
227
278
  |-------|------|-------------|
228
- | `plugin_id` | string | |
229
- | `params` | repeated AudioPluginParam | |
279
+ | `plugin_id` | string | Plugin instance ID |
280
+ | `params` | repeated AudioPluginParam | Parameters to update (by id) |
230
281
 
231
282
 
232
283
  ### AudioPluginParam
@@ -236,8 +287,8 @@ Audio plugin parameter.
236
287
 
237
288
  | Field | Type | Description |
238
289
  |-------|------|-------------|
239
- | `id` | uint32 | |
240
- | `float_value` | float | |
290
+ | `id` | uint32 | Parameter ID |
291
+ | `float_value` | float | Parameter value |
241
292
 
242
293
 
243
294
  ### AudioPluginParamStatus
@@ -247,10 +298,10 @@ Audio plugin parameter status (with display info).
247
298
 
248
299
  | Field | Type | Description |
249
300
  |-------|------|-------------|
250
- | `id` | uint32 | |
251
- | `float_value` | float | |
252
- | `label` | string | |
253
- | `display_value` | string | |
301
+ | `id` | uint32 | Parameter ID |
302
+ | `float_value` | float | Parameter value |
303
+ | `label` | string | Parameter label |
304
+ | `display_value` | string | Formatted display value |
254
305
 
255
306
 
256
307
  ---
@@ -278,7 +329,7 @@ A list of commands to execute in sequence.
278
329
 
279
330
  | Field | Type | Description |
280
331
  |-------|------|-------------|
281
- | `command_list` | repeated CommandListItem | |
332
+ | `command_list` | repeated CommandListItem | List of commands |
282
333
 
283
334
 
284
335
  ### CommandListItem
@@ -289,34 +340,37 @@ Each item represents a single command to execute at a specific time offset.
289
340
 
290
341
  | Field | Type | Description |
291
342
  |-------|------|-------------|
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
- | `take_playlist` | sesame.v1.sources.TakePlaylistRequest | |
318
- | `transaction_id` | optional uint32 | |
319
- | `transaction_deps` | repeated uint32 | |
343
+ | `time_offset_us` | int64 | Time offset in microseconds |
344
+ | `add_source` | sesame.v1.sources.SourceAddRequest | Source commands |
345
+ | `update_source` | sesame.v1.sources.SourceUpdateRequest | |
346
+ | `remove_source` | sesame.v1.sources.SourceRemoveRequest | |
347
+ | `add_output` | sesame.v1.outputs.OutputAddRequest | Output commands |
348
+ | `update_output` | sesame.v1.outputs.OutputUpdateRequest | |
349
+ | `remove_output` | sesame.v1.outputs.OutputRemoveRequest | |
350
+ | `add_compositor` | sesame.v1.compositor.CompositorAddRequest | Compositor commands |
351
+ | `remove_compositor` | sesame.v1.compositor.CompositorRemoveRequest | |
352
+ | `clear_compositor` | sesame.v1.compositor.CompositorClearRequest | |
353
+ | `add_node` | sesame.v1.compositor.NodeAddRequest | Node commands |
354
+ | `remove_node` | sesame.v1.compositor.NodeRemoveRequest | |
355
+ | `set_property` | sesame.v1.compositor.PropertySetRequest | Property commands |
356
+ | `animate_property` | sesame.v1.compositor.PropertyAnimateRequest | |
357
+ | `add_audio_mixer` | sesame.v1.audio.AudioMixerAddRequest | Audio mixer commands |
358
+ | `update_audio_mixer` | sesame.v1.audio.AudioMixerUpdateRequest | |
359
+ | `remove_audio_mixer` | sesame.v1.audio.AudioMixerRemoveRequest | |
360
+ | `add_audio_channel` | sesame.v1.audio.AudioChannelAddRequest | |
361
+ | `remove_audio_channel` | sesame.v1.audio.AudioChannelRemoveRequest | |
362
+ | `update_source_transport` | sesame.v1.sources.SourceTransportCommand | Source transport commands |
363
+ | `load_playlist` | sesame.v1.sources.LoadPlaylistRequest | Recorder playlist commands |
364
+ | `eject_playlist` | sesame.v1.sources.EjectPlaylistRequest | |
365
+ | `callback` | sesame.v1.common.Callback | Callback command |
366
+ | `set_source_metadata` | sesame.v1.sources.SourceMetadataSetRequest | Source metadata command |
367
+ | `set_metadata_bindings` | SetMetadataBindingsRequest | Metadata routing bindings (replaces the full binding table) |
368
+ | `add_encoder` | sesame.v1.outputs.EncoderAddRequest | Shared encoder commands |
369
+ | `update_encoder` | sesame.v1.outputs.EncoderUpdateRequest | |
370
+ | `remove_encoder` | sesame.v1.outputs.EncoderRemoveRequest | |
371
+ | `take_playlist` | sesame.v1.sources.TakePlaylistRequest | Recorder direct take commands |
372
+ | `transaction_id` | optional uint32 | Transaction ID for grouping |
373
+ | `transaction_deps` | repeated uint32 | Transaction dependencies |
320
374
 
321
375
 
322
376
  ### MetadataBinding
@@ -336,11 +390,11 @@ Exactly one route direction should be specified per binding:
336
390
 
337
391
  | Field | Type | Description |
338
392
  |-------|------|-------------|
339
- | `source_id` | string | |
340
- | `metadata_id` | string | |
341
- | `output_id` | string | |
342
- | `track_name` | string | |
343
- | `target_id` | string | |
393
+ | `source_id` | string | |
394
+ | `metadata_id` | string | |
395
+ | `output_id` | string | |
396
+ | `track_name` | string | |
397
+ | `target_id` | string | |
344
398
 
345
399
 
346
400
  ### SetMetadataBindingsRequest
@@ -351,7 +405,7 @@ Send once after all sources/outputs are configured.
351
405
 
352
406
  | Field | Type | Description |
353
407
  |-------|------|-------------|
354
- | `bindings` | repeated MetadataBinding | |
408
+ | `bindings` | repeated MetadataBinding | |
355
409
 
356
410
 
357
411
  ---
@@ -438,8 +492,8 @@ Used to trigger client-side callbacks when specific events occur.
438
492
 
439
493
  | Field | Type | Description |
440
494
  |-------|------|-------------|
441
- | `event` | string | |
442
- | `data` | string | |
495
+ | `event` | string | Event name/identifier |
496
+ | `data` | string | Event data (JSON or other format) |
443
497
 
444
498
 
445
499
  ### Empty
@@ -456,8 +510,8 @@ Used for transport metadata, custom properties, etc.
456
510
 
457
511
  | Field | Type | Description |
458
512
  |-------|------|-------------|
459
- | `name` | string | |
460
- | `value` | PropValue | |
513
+ | `name` | string | Key name |
514
+ | `value` | PropValue | Value as string |
461
515
 
462
516
 
463
517
  ### PropValue
@@ -469,11 +523,11 @@ Only one field should be set at a time.
469
523
 
470
524
  | Field | Type | Description |
471
525
  |-------|------|-------------|
472
- | `float_value` | float | |
473
- | `vec4_value` | Vec4 | |
474
- | `string_value` | string | |
475
- | `bool_value` | bool | |
476
- | `int_value` | int64 | |
526
+ | `float_value` | float | Floating point value (opacity, volume, etc.) |
527
+ | `vec4_value` | Vec4 | Vector value (color, position, etc.) |
528
+ | `string_value` | string | String value (text content, URLs, etc.) |
529
+ | `bool_value` | bool | Boolean value (enabled/disabled flags) |
530
+ | `int_value` | int64 | Integer value (indices, counts, seek positions, etc.) |
477
531
 
478
532
 
479
533
  ### PropertyDomain
@@ -484,10 +538,10 @@ Used for property set/animate operations across different domains.
484
538
 
485
539
  | Field | Type | Description |
486
540
  |-------|------|-------------|
487
- | `compositor_id` | string | |
488
- | `audio_mixer_id` | string | |
489
- | `replay_id` | string | |
490
- | `source_id` | string | |
541
+ | `compositor_id` | string | Compositor ID |
542
+ | `audio_mixer_id` | string | Audio mixer ID |
543
+ | `replay_id` | string | Replay ID |
544
+ | `source_id` | string | Source ID |
491
545
 
492
546
 
493
547
  ### TransportMetadata
@@ -498,7 +552,7 @@ Used for source and recorder metadata operations.
498
552
 
499
553
  | Field | Type | Description |
500
554
  |-------|------|-------------|
501
- | `items` | repeated NameValue | |
555
+ | `items` | repeated NameValue | Metadata items |
502
556
 
503
557
 
504
558
  ### Vec4
@@ -510,10 +564,10 @@ but can be arbitrary for positions and sizes.
510
564
 
511
565
  | Field | Type | Description |
512
566
  |-------|------|-------------|
513
- | `x` | float | |
514
- | `y` | float | |
515
- | `z` | float | |
516
- | `w` | float | |
567
+ | `x` | float | Red component for colors, X position for coordinates |
568
+ | `y` | float | Green component for colors, Y position for coordinates |
569
+ | `z` | float | Blue component for colors, Z position for coordinates |
570
+ | `w` | float | Alpha component for colors, W component for coordinates |
517
571
 
518
572
 
519
573
  ---
@@ -561,10 +615,10 @@ Request to add a new compositor.
561
615
 
562
616
  | Field | Type | Description |
563
617
  |-------|------|-------------|
564
- | `id` | string | |
565
- | `multisample` | bool | |
566
- | `width` | uint32 | |
567
- | `height` | uint32 | |
618
+ | `id` | string | Unique compositor ID |
619
+ | `multisample` | bool | Enable multisampling (anti-aliasing) |
620
+ | `width` | uint32 | Compositor width |
621
+ | `height` | uint32 | Compositor height |
568
622
 
569
623
 
570
624
  ### CompositorClearRequest
@@ -574,7 +628,7 @@ Request to clear a compositor (remove all nodes).
574
628
 
575
629
  | Field | Type | Description |
576
630
  |-------|------|-------------|
577
- | `id` | string | |
631
+ | `id` | string | Compositor ID to clear |
578
632
 
579
633
 
580
634
  ### CompositorRemoveRequest
@@ -584,7 +638,7 @@ Request to remove a compositor.
584
638
 
585
639
  | Field | Type | Description |
586
640
  |-------|------|-------------|
587
- | `id` | string | |
641
+ | `id` | string | Compositor ID to remove |
588
642
 
589
643
 
590
644
  ### KeyFrame
@@ -594,10 +648,10 @@ Animation keyframe.
594
648
 
595
649
  | Field | Type | Description |
596
650
  |-------|------|-------------|
597
- | `time_us` | int64 | |
598
- | `value` | sesame.v1.common.PropValue | |
599
- | `easing_in` | string | |
600
- | `easing_out` | string | |
651
+ | `time_us` | int64 | Keyframe time in microseconds |
652
+ | `value` | sesame.v1.common.PropValue | Keyframe value |
653
+ | `easing_in` | string | Easing function for incoming interpolation |
654
+ | `easing_out` | string | Easing function for outgoing interpolation |
601
655
 
602
656
 
603
657
  ### NodeAddRequest
@@ -607,10 +661,10 @@ Request to add a node to the scene graph.
607
661
 
608
662
  | Field | Type | Description |
609
663
  |-------|------|-------------|
610
- | `compositor_id` | string | |
611
- | `parent_address` | string | |
612
- | `node_id` | string | |
613
- | `node_type` | NodeType | |
664
+ | `compositor_id` | string | Compositor ID |
665
+ | `parent_address` | string | Parent node address (e.g., "root/layer1") |
666
+ | `node_id` | string | New node ID |
667
+ | `node_type` | NodeType | Node type |
614
668
 
615
669
 
616
670
  ### NodeRemoveRequest
@@ -620,8 +674,8 @@ Request to remove a node from the scene graph.
620
674
 
621
675
  | Field | Type | Description |
622
676
  |-------|------|-------------|
623
- | `compositor_id` | string | |
624
- | `address` | string | |
677
+ | `compositor_id` | string | Compositor ID |
678
+ | `address` | string | Node address to remove |
625
679
 
626
680
 
627
681
  ### PropertyAnimateRequest
@@ -631,12 +685,12 @@ Request to animate a property.
631
685
 
632
686
  | Field | Type | Description |
633
687
  |-------|------|-------------|
634
- | `domain` | sesame.v1.common.PropertyDomain | |
635
- | `address` | string | |
636
- | `property` | string | |
637
- | `keyframes` | repeated KeyFrame | |
638
- | `before` | AnimationChannelEvaluationMode | |
639
- | `after` | AnimationChannelEvaluationMode | |
688
+ | `domain` | sesame.v1.common.PropertyDomain | Property domain |
689
+ | `address` | string | Node address |
690
+ | `property` | string | Property name |
691
+ | `keyframes` | repeated KeyFrame | Animation keyframes |
692
+ | `before` | AnimationChannelEvaluationMode | Evaluation mode before first keyframe |
693
+ | `after` | AnimationChannelEvaluationMode | Evaluation mode after last keyframe |
640
694
 
641
695
 
642
696
  ### PropertySetRequest
@@ -646,10 +700,10 @@ Request to set a property value.
646
700
 
647
701
  | Field | Type | Description |
648
702
  |-------|------|-------------|
649
- | `domain` | sesame.v1.common.PropertyDomain | |
650
- | `address` | string | |
651
- | `property` | string | |
652
- | `value` | sesame.v1.common.PropValue | |
703
+ | `domain` | sesame.v1.common.PropertyDomain | Property domain |
704
+ | `address` | string | Node address |
705
+ | `property` | string | Property name |
706
+ | `value` | sesame.v1.common.PropValue | Property value |
653
707
 
654
708
 
655
709
  ---
@@ -719,30 +773,30 @@ Playlist export configuration.
719
773
 
720
774
  | Field | Type | Description |
721
775
  |-------|------|-------------|
722
- | `filename` | string | |
723
- | `container` | ContainerFormat | |
724
- | `video_codec` | sesame.v1.common.CodecType | |
725
- | `width` | uint32 | |
726
- | `height` | uint32 | |
727
- | `fps_num` | uint32 | |
728
- | `fps_den` | uint32 | |
729
- | `rate_control` | RateControlMode | |
730
- | `video_bitrate_kbps` | uint32 | |
731
- | `max_video_bitrate_kbps` | uint32 | |
732
- | `gop_size` | uint32 | |
733
- | `max_b_frames` | uint32 | |
734
- | `profile` | string | |
735
- | `level` | string | |
736
- | `pixel_format` | string | |
737
- | `color_primaries` | string | |
738
- | `color_transfer` | string | |
739
- | `color_matrix` | string | |
740
- | `full_range` | bool | |
741
- | `audio_codec` | sesame.v1.common.CodecType | |
742
- | `audio_bitrate_kbps` | uint32 | |
743
- | `audio_sample_rate_hz` | uint32 | |
744
- | `audio_channels` | uint32 | |
745
- | `audio_routing` | repeated uint32 | |
776
+ | `filename` | string | Output filename |
777
+ | `container` | ContainerFormat | Output container format |
778
+ | `video_codec` | sesame.v1.common.CodecType | Video codec |
779
+ | `width` | uint32 | Output width |
780
+ | `height` | uint32 | Output height |
781
+ | `fps_num` | uint32 | Frame rate numerator |
782
+ | `fps_den` | uint32 | Frame rate denominator |
783
+ | `rate_control` | RateControlMode | Video rate control mode |
784
+ | `video_bitrate_kbps` | uint32 | Target video bitrate (kbps) |
785
+ | `max_video_bitrate_kbps` | uint32 | Peak video bitrate cap (kbps) |
786
+ | `gop_size` | uint32 | GOP size in frames |
787
+ | `max_b_frames` | uint32 | Maximum B-frames |
788
+ | `profile` | string | Codec profile (e.g. main, high) |
789
+ | `level` | string | Codec level (e.g. 4.1, 5.1) |
790
+ | `pixel_format` | string | Pixel format (e.g. yuv420p) |
791
+ | `color_primaries` | string | Color primaries (e.g. bt709) |
792
+ | `color_transfer` | string | Transfer characteristics (e.g. bt709) |
793
+ | `color_matrix` | string | Matrix coefficients (e.g. bt709) |
794
+ | `full_range` | bool | Full range if true, limited if false |
795
+ | `audio_codec` | sesame.v1.common.CodecType | Audio codec |
796
+ | `audio_bitrate_kbps` | uint32 | Audio bitrate (kbps) |
797
+ | `audio_sample_rate_hz` | uint32 | Audio sample rate (Hz) |
798
+ | `audio_channels` | uint32 | Number of audio channels |
799
+ | `audio_routing` | repeated uint32 | Audio channel routing |
746
800
 
747
801
 
748
802
  ### ExportStartRequest
@@ -752,8 +806,8 @@ Request to start playlist export.
752
806
 
753
807
  | Field | Type | Description |
754
808
  |-------|------|-------------|
755
- | `config` | ExportConfiguration | |
756
- | `items` | repeated sesame.v1.recorder.PlaylistItem | |
809
+ | `config` | ExportConfiguration | Export configuration |
810
+ | `items` | repeated sesame.v1.recorder.PlaylistItem | Playlist items |
757
811
 
758
812
 
759
813
  ### ImportConfiguration
@@ -763,12 +817,12 @@ Clip import configuration.
763
817
 
764
818
  | Field | Type | Description |
765
819
  |-------|------|-------------|
766
- | `src_filename` | string | |
767
- | `audio_routing` | repeated uint32 | |
768
- | `dst_recorder_id` | string | |
769
- | `dst_clip_id` | uint64 | |
770
- | `dst_clip_name` | string | |
771
- | `dst_clip_user_data` | string | |
820
+ | `src_filename` | string | Source filename |
821
+ | `audio_routing` | repeated uint32 | Audio channel routing |
822
+ | `dst_recorder_id` | string | Destination recorder ID |
823
+ | `dst_clip_id` | uint64 | Destination clip ID |
824
+ | `dst_clip_name` | string | Destination clip name |
825
+ | `dst_clip_user_data` | string | Destination clip user data |
772
826
 
773
827
 
774
828
  ### ImportStartRequest
@@ -778,7 +832,7 @@ Request to start clip import.
778
832
 
779
833
  | Field | Type | Description |
780
834
  |-------|------|-------------|
781
- | `config` | ImportConfiguration | |
835
+ | `config` | ImportConfiguration | Import configuration |
782
836
 
783
837
 
784
838
  ### Job
@@ -788,15 +842,15 @@ A job. Used as RPC response, list item, and event payload.
788
842
 
789
843
  | Field | Type | Description |
790
844
  |-------|------|-------------|
791
- | `id` | uint32 | |
792
- | `type` | JobType | |
793
- | `status` | JobStatus | |
794
- | `name` | string | |
795
- | `description` | string | |
796
- | `error` | optional string | |
797
- | `progress` | int64 | |
798
- | `total` | int64 | |
799
- | `timing_info` | optional TimingInfo | |
845
+ | `id` | uint32 | Job ID |
846
+ | `type` | JobType | Job type |
847
+ | `status` | JobStatus | Current status |
848
+ | `name` | string | Job name (e.g. "Export playlist") |
849
+ | `description` | string | Job description (e.g. filename) |
850
+ | `error` | optional string | Error message (if status == ERROR) |
851
+ | `progress` | int64 | Current progress (us) |
852
+ | `total` | int64 | Total duration (us) |
853
+ | `timing_info` | optional TimingInfo | Timing info (set on completion for imports) |
800
854
 
801
855
 
802
856
  ### JobAbortRequest
@@ -806,7 +860,7 @@ Request to abort a job.
806
860
 
807
861
  | Field | Type | Description |
808
862
  |-------|------|-------------|
809
- | `job_id` | uint32 | |
863
+ | `job_id` | uint32 | Job ID to abort |
810
864
 
811
865
 
812
866
  ### JobList
@@ -816,7 +870,7 @@ List of jobs.
816
870
 
817
871
  | Field | Type | Description |
818
872
  |-------|------|-------------|
819
- | `jobs` | repeated Job | |
873
+ | `jobs` | repeated Job | |
820
874
 
821
875
 
822
876
  ### JobListRequest
@@ -831,8 +885,8 @@ Request to start a job.
831
885
 
832
886
  | Field | Type | Description |
833
887
  |-------|------|-------------|
834
- | `export_request` | ExportStartRequest | |
835
- | `import_request` | ImportStartRequest | |
888
+ | `export_request` | ExportStartRequest | Playlist export |
889
+ | `import_request` | ImportStartRequest | Clip import |
836
890
 
837
891
 
838
892
  ### JobStatusRequest
@@ -842,7 +896,7 @@ Request to get job status.
842
896
 
843
897
  | Field | Type | Description |
844
898
  |-------|------|-------------|
845
- | `job_id` | uint32 | |
899
+ | `job_id` | uint32 | Job ID |
846
900
 
847
901
 
848
902
  ### TimingInfo
@@ -852,8 +906,8 @@ Timing information for clips.
852
906
 
853
907
  | Field | Type | Description |
854
908
  |-------|------|-------------|
855
- | `tc_in` | int64 | |
856
- | `tc_out` | int64 | |
909
+ | `tc_in` | int64 | In timecode (us) |
910
+ | `tc_out` | int64 | Out timecode (us) |
857
911
 
858
912
 
859
913
  ---
@@ -878,7 +932,17 @@ Encoder preset.
878
932
  | 3 | `ENCODER_PRESET_HIGH_QUALITY` | High-quality tune |
879
933
 
880
934
 
881
- ### OutputType
935
+ ### EncoderType
936
+
937
+ Type of encoder resource.
938
+
939
+ | Value | Name | Description |
940
+ |-------|------|-------------|
941
+ | 0 | `ENCODER_TYPE_UNSPECIFIED` | Unspecified (invalid) |
942
+ | 1 | `ENCODER_TYPE_VIDEO` | Video encoder |
943
+
944
+
945
+ ### OutputType
882
946
 
883
947
  Type of output.
884
948
 
@@ -912,9 +976,9 @@ Decklink output configuration.
912
976
 
913
977
  | Field | Type | Description |
914
978
  |-------|------|-------------|
915
- | `device_index` | uint32 | |
916
- | `video_format` | sesame.v1.common.VideoFormat | |
917
- | `key_and_fill` | bool | |
979
+ | `device_index` | uint32 | Decklink device index |
980
+ | `video_format` | sesame.v1.common.VideoFormat | Video format |
981
+ | `key_and_fill` | bool | Key and fill mode |
918
982
 
919
983
 
920
984
  ### EncodedMoqOutputConfig
@@ -924,11 +988,11 @@ Decklink output configuration.
924
988
 
925
989
  | Field | Type | Description |
926
990
  |-------|------|-------------|
927
- | `encoder` | EncoderConfig | |
928
- | `url` | string | |
929
- | `broadcast` | string | |
930
- | `key` | string | |
931
- | `metadata_tracks` | repeated string | |
991
+ | `encoder_id` | string | Shared encoder ID |
992
+ | `url` | string | MoQ URL |
993
+ | `broadcast` | string | Broadcast namespace |
994
+ | `key` | string | Authentication key |
995
+ | `metadata_tracks` | repeated string | Track names for outgoing JSON metadata frames (routing resolved via metadataBindings). |
932
996
 
933
997
 
934
998
  ### EncodedRecorderOutputConfig
@@ -938,11 +1002,11 @@ Decklink output configuration.
938
1002
 
939
1003
  | Field | Type | Description |
940
1004
  |-------|------|-------------|
941
- | `encoder` | EncoderConfig | |
942
- | `filename` | string | |
943
- | `size_gb` | uint32 | |
944
- | `group_id` | string | |
945
- | `recorder_type` | RecorderType | |
1005
+ | `encoder_id` | string | Shared encoder ID |
1006
+ | `filename` | string | Base filename |
1007
+ | `size_gb` | uint32 | Maximum size in GB |
1008
+ | `group_id` | string | Group ID for organization |
1009
+ | `recorder_type` | RecorderType | Recorder type |
946
1010
 
947
1011
 
948
1012
  ### EncodedSrtOutputConfig
@@ -950,10 +1014,10 @@ Decklink output configuration.
950
1014
 
951
1015
 
952
1016
 
953
- | Field | Type | Description |
954
- |-------|------|-------------|
955
- | `url` | string | |
956
- | `encoder` | EncoderConfig | |
1017
+ | Field | Type | Description |
1018
+ |-------|------|-------------|
1019
+ | `url` | string | SRT URL |
1020
+ | `encoder_id` | string | Shared encoder ID |
957
1021
 
958
1022
 
959
1023
  ### EncodedSuperSlowMoRecorderOutputConfig
@@ -963,13 +1027,13 @@ Decklink output configuration.
963
1027
 
964
1028
  | Field | Type | Description |
965
1029
  |-------|------|-------------|
966
- | `encoder` | EncoderConfig | |
967
- | `filename` | string | |
968
- | `size_gb` | uint32 | |
969
- | `group_id` | string | |
970
- | `recorder_type` | RecorderType | |
971
- | `composition_ids` | repeated string | |
972
- | `source_ids` | repeated string | |
1030
+ | `encoder` | EncoderConfig | Encoded transport settings |
1031
+ | `filename` | string | Base filename |
1032
+ | `size_gb` | uint32 | Maximum size in GB |
1033
+ | `group_id` | string | Group ID |
1034
+ | `recorder_type` | RecorderType | Recorder type |
1035
+ | `composition_ids` | repeated string | Compositor IDs to record |
1036
+ | `source_ids` | repeated string | Source IDs to record |
973
1037
 
974
1038
 
975
1039
  ### EncodedWebSocketOutputConfig
@@ -979,27 +1043,75 @@ Type-specific output payloads
979
1043
  -----------------------------------------------------------------------------
980
1044
 
981
1045
 
982
- | Field | Type | Description |
983
- |-------|------|-------------|
984
- | `channel` | string | |
985
- | `encoder` | EncoderConfig | |
986
- | `metadata_tracks` | repeated string | |
987
-
988
-
989
- ### EncoderConfig
1046
+ | Field | Type | Description |
1047
+ |-------|------|-------------|
1048
+ | `channel` | string | WebSocket channel/topic |
1049
+ | `encoder_id` | string | Shared encoder ID |
1050
+ | `metadata_tracks` | repeated string | Track names for outgoing JSON metadata frames (routing resolved via metadataBindings). |
1051
+
1052
+
1053
+ ### EncoderAddRequest
1054
+
1055
+ Request to add a shared encoder resource.
1056
+
1057
+
1058
+ | Field | Type | Description |
1059
+ |-------|------|-------------|
1060
+ | `id` | string | Unique encoder ID |
1061
+ | `composition_id` | string | Compositor ID to encode |
1062
+ | `encoder` | EncoderConfig | Encoder settings |
1063
+
1064
+
1065
+ ### EncoderConfig
990
1066
 
991
1067
  Encoded output configuration (WebSocket, SRT, MoQ).
992
1068
 
993
1069
 
994
1070
  | Field | Type | Description |
995
1071
  |-------|------|-------------|
996
- | `codec` | sesame.v1.common.CodecType | |
997
- | `preset` | EncoderPreset | |
998
- | `bitrate_kbps` | uint32 | |
999
- | `keyframe_interval` | uint32 | |
1000
- | `width` | uint32 | |
1001
- | `height` | uint32 | |
1002
- | `fps` | float | |
1072
+ | `codec` | sesame.v1.common.CodecType | Encoder codec |
1073
+ | `preset` | EncoderPreset | Encoder preset |
1074
+ | `bitrate_kbps` | uint32 | Bitrate in kbps |
1075
+ | `keyframe_interval` | uint32 | GOP length in frames (0 = codec/preset default) |
1076
+ | `width` | uint32 | Video width |
1077
+ | `height` | uint32 | Video height |
1078
+ | `fps` | float | Video framerate |
1079
+
1080
+
1081
+ ### EncoderRemoveRequest
1082
+
1083
+ Request to remove a shared encoder resource.
1084
+
1085
+
1086
+ | Field | Type | Description |
1087
+ |-------|------|-------------|
1088
+ | `id` | string | Encoder ID to remove |
1089
+
1090
+
1091
+ ### EncoderStatus
1092
+
1093
+ Encoder status information.
1094
+
1095
+
1096
+ | Field | Type | Description |
1097
+ |-------|------|-------------|
1098
+ | `id` | string | Encoder ID |
1099
+ | `type` | EncoderType | Encoder type |
1100
+ | `state` | sesame.v1.common.ConnectionState | Connection/lifecycle state |
1101
+ | `msg` | optional string | Error message (typically when state == ERROR) |
1102
+ | `composition_id` | string | Compositor ID being encoded |
1103
+
1104
+
1105
+ ### EncoderUpdateRequest
1106
+
1107
+ Request to update an existing shared encoder resource.
1108
+
1109
+
1110
+ | Field | Type | Description |
1111
+ |-------|------|-------------|
1112
+ | `id` | string | Encoder ID to update |
1113
+ | `composition_id` | string | Compositor ID to encode |
1114
+ | `encoder` | EncoderConfig | Encoder settings |
1003
1115
 
1004
1116
 
1005
1117
  ### KeyframeRequest
@@ -1010,7 +1122,7 @@ Requests an immediate keyframe (IDR frame) from an encoder output.
1010
1122
 
1011
1123
  | Field | Type | Description |
1012
1124
  |-------|------|-------------|
1013
- | `id` | string | |
1125
+ | `id` | string | ID of the output to request keyframe from |
1014
1126
 
1015
1127
 
1016
1128
  ### OutputAddRequest
@@ -1020,17 +1132,17 @@ Request to add a new output.
1020
1132
 
1021
1133
  | Field | Type | Description |
1022
1134
  |-------|------|-------------|
1023
- | `id` | string | |
1024
- | `composition_id` | string | |
1025
- | `audio_mix_ids` | repeated string | |
1026
- | `use_as_clock` | bool | |
1027
- | `websocket` | EncodedWebSocketOutputConfig | |
1028
- | `recorder` | EncodedRecorderOutputConfig | |
1029
- | `super_slowmo_recorder` | EncodedSuperSlowMoRecorderOutputConfig | |
1030
- | `srt` | EncodedSrtOutputConfig | |
1031
- | `moq` | EncodedMoqOutputConfig | |
1032
- | `decklink` | DecklinkOutputConfig | |
1033
- | `system_audio` | SystemAudioOutputConfig | |
1135
+ | `id` | string | Unique output ID |
1136
+ | `composition_id` | string | Compositor ID to output |
1137
+ | `audio_mix_ids` | repeated string | Audio mixer IDs |
1138
+ | `use_as_clock` | bool | Use as master clock |
1139
+ | `websocket` | EncodedWebSocketOutputConfig | |
1140
+ | `recorder` | EncodedRecorderOutputConfig | |
1141
+ | `super_slowmo_recorder` | EncodedSuperSlowMoRecorderOutputConfig | |
1142
+ | `srt` | EncodedSrtOutputConfig | |
1143
+ | `moq` | EncodedMoqOutputConfig | |
1144
+ | `decklink` | DecklinkOutputConfig | |
1145
+ | `system_audio` | SystemAudioOutputConfig | |
1034
1146
 
1035
1147
 
1036
1148
  ### OutputRemoveRequest
@@ -1040,7 +1152,7 @@ Request to remove an output.
1040
1152
 
1041
1153
  | Field | Type | Description |
1042
1154
  |-------|------|-------------|
1043
- | `id` | string | |
1155
+ | `id` | string | Output ID to remove |
1044
1156
 
1045
1157
 
1046
1158
  ### OutputStatus
@@ -1050,13 +1162,14 @@ Output status information.
1050
1162
 
1051
1163
  | Field | Type | Description |
1052
1164
  |-------|------|-------------|
1053
- | `id` | string | |
1054
- | `type` | OutputType | |
1055
- | `state` | sesame.v1.common.ConnectionState | |
1056
- | `msg` | optional string | |
1057
- | `url` | string | |
1058
- | `buffer_size` | uint32 | |
1059
- | `srt_stats` | optional sesame.v1.status.SRTSendStatistics | |
1165
+ | `id` | string | Output ID |
1166
+ | `type` | OutputType | Output type |
1167
+ | `state` | sesame.v1.common.ConnectionState | Connection/lifecycle state |
1168
+ | `msg` | optional string | Error message (typically when state == ERROR) |
1169
+ | `url` | string | Output URL |
1170
+ | `buffer_size` | uint32 | Buffer size (frames) |
1171
+ | `srt_stats` | optional sesame.v1.status.SRTSendStatistics | SRT stats (if SRT output) |
1172
+ | `encoder_id` | string | Shared encoder ID used by this output, if any |
1060
1173
 
1061
1174
 
1062
1175
  ### OutputUpdateRequest
@@ -1066,17 +1179,17 @@ Request to update an existing output.
1066
1179
 
1067
1180
  | Field | Type | Description |
1068
1181
  |-------|------|-------------|
1069
- | `id` | string | |
1070
- | `composition_id` | string | |
1071
- | `audio_mix_ids` | repeated string | |
1072
- | `use_as_clock` | bool | |
1073
- | `websocket` | EncodedWebSocketOutputConfig | |
1074
- | `recorder` | EncodedRecorderOutputConfig | |
1075
- | `super_slowmo_recorder` | EncodedSuperSlowMoRecorderOutputConfig | |
1076
- | `srt` | EncodedSrtOutputConfig | |
1077
- | `moq` | EncodedMoqOutputConfig | |
1078
- | `decklink` | DecklinkOutputConfig | |
1079
- | `system_audio` | SystemAudioOutputConfig | |
1182
+ | `id` | string | Output ID to update |
1183
+ | `composition_id` | string | Compositor ID |
1184
+ | `audio_mix_ids` | repeated string | Audio mixer IDs |
1185
+ | `use_as_clock` | bool | Use as master clock |
1186
+ | `websocket` | EncodedWebSocketOutputConfig | |
1187
+ | `recorder` | EncodedRecorderOutputConfig | |
1188
+ | `super_slowmo_recorder` | EncodedSuperSlowMoRecorderOutputConfig | |
1189
+ | `srt` | EncodedSrtOutputConfig | |
1190
+ | `moq` | EncodedMoqOutputConfig | |
1191
+ | `decklink` | DecklinkOutputConfig | |
1192
+ | `system_audio` | SystemAudioOutputConfig | |
1080
1193
 
1081
1194
 
1082
1195
  ### SystemAudioOutputConfig
@@ -1086,7 +1199,7 @@ Request to update an existing output.
1086
1199
 
1087
1200
  | Field | Type | Description |
1088
1201
  |-------|------|-------------|
1089
- | `device_name` | string | |
1202
+ | `device_name` | string | System audio device settings |
1090
1203
 
1091
1204
 
1092
1205
  ---
@@ -1118,16 +1231,16 @@ Playlist item for recorder source playback.
1118
1231
 
1119
1232
  | Field | Type | Description |
1120
1233
  |-------|------|-------------|
1121
- | `recorder_id` | string | |
1122
- | `id` | uint64 | |
1123
- | `transition_time_us` | int64 | |
1124
- | `transition_type` | TransitionType | |
1125
- | `transition_fade_color` | sesame.v1.common.Vec4 | |
1126
- | `speed` | float | |
1127
- | `audio_routing` | repeated uint32 | |
1128
- | `start_time_us` | optional int64 | |
1129
- | `end_time_us` | optional int64 | |
1130
- | `audio_levels` | repeated float | |
1234
+ | `recorder_id` | string | Recorder ID |
1235
+ | `id` | uint64 | Clip ID |
1236
+ | `transition_time_us` | int64 | Transition duration (us) |
1237
+ | `transition_type` | TransitionType | Transition type |
1238
+ | `transition_fade_color` | sesame.v1.common.Vec4 | Fade color |
1239
+ | `speed` | float | Playback speed |
1240
+ | `audio_routing` | repeated uint32 | Audio routing |
1241
+ | `start_time_us` | optional int64 | Start time (us) |
1242
+ | `end_time_us` | optional int64 | End time (us) |
1243
+ | `audio_levels` | repeated float | Audio levels per channel (0.0-1.0) |
1131
1244
 
1132
1245
 
1133
1246
  ### RecorderClip
@@ -1137,15 +1250,15 @@ Recorder clip information.
1137
1250
 
1138
1251
  | Field | Type | Description |
1139
1252
  |-------|------|-------------|
1140
- | `id` | uint64 | |
1141
- | `name` | string | |
1142
- | `user_data` | string | |
1143
- | `flags` | uint64 | |
1144
- | `start_time_us` | int64 | |
1145
- | `end_time_us` | int64 | |
1146
- | `locked_start_us` | int64 | |
1147
- | `locked_end_us` | int64 | |
1148
- | `user_time_us` | int64 | |
1253
+ | `id` | uint64 | Clip ID |
1254
+ | `name` | string | Clip name |
1255
+ | `user_data` | string | User-defined data |
1256
+ | `flags` | uint64 | Clip flags (bitfield) |
1257
+ | `start_time_us` | int64 | Start time (us) |
1258
+ | `end_time_us` | int64 | End time (us) |
1259
+ | `locked_start_us` | int64 | Locked start time (us) |
1260
+ | `locked_end_us` | int64 | Locked end time (us) |
1261
+ | `user_time_us` | int64 | User-defined timecode (us) |
1149
1262
 
1150
1263
 
1151
1264
  ### RecorderClipAddRequest
@@ -1155,7 +1268,7 @@ Request to add a clip to a recorder.
1155
1268
 
1156
1269
  | Field | Type | Description |
1157
1270
  |-------|------|-------------|
1158
- | `clip` | RecorderClip | |
1271
+ | `clip` | RecorderClip | Clip to add |
1159
1272
 
1160
1273
 
1161
1274
  ### RecorderClipCopyRequest
@@ -1165,8 +1278,8 @@ Request to copy a clip.
1165
1278
 
1166
1279
  | Field | Type | Description |
1167
1280
  |-------|------|-------------|
1168
- | `clip_id` | uint64 | |
1169
- | `new_clip_id` | uint64 | |
1281
+ | `clip_id` | uint64 | Source clip ID |
1282
+ | `new_clip_id` | uint64 | Destination clip ID |
1170
1283
 
1171
1284
 
1172
1285
  ### RecorderClipFlagSetRequest
@@ -1176,9 +1289,9 @@ Request to set a clip flag.
1176
1289
 
1177
1290
  | Field | Type | Description |
1178
1291
  |-------|------|-------------|
1179
- | `clip_id` | uint64 | |
1180
- | `flag` | uint64 | |
1181
- | `value` | bool | |
1292
+ | `clip_id` | uint64 | Clip ID |
1293
+ | `flag` | uint64 | Flag to set/clear |
1294
+ | `value` | bool | Flag value |
1182
1295
 
1183
1296
 
1184
1297
  ### RecorderClipRange
@@ -1188,8 +1301,8 @@ Clip id range.
1188
1301
 
1189
1302
  | Field | Type | Description |
1190
1303
  |-------|------|-------------|
1191
- | `low` | uint64 | |
1192
- | `high` | uint64 | |
1304
+ | `low` | uint64 | Low clip ID |
1305
+ | `high` | uint64 | High clip ID |
1193
1306
 
1194
1307
 
1195
1308
  ### RecorderClipRemoveRequest
@@ -1199,7 +1312,7 @@ Request to remove a clip.
1199
1312
 
1200
1313
  | Field | Type | Description |
1201
1314
  |-------|------|-------------|
1202
- | `clip_id` | uint64 | |
1315
+ | `clip_id` | uint64 | Clip ID to remove |
1203
1316
 
1204
1317
 
1205
1318
  ### RecorderClipsClearRequest
@@ -1209,9 +1322,9 @@ Request to clear clips with filters.
1209
1322
 
1210
1323
  | Field | Type | Description |
1211
1324
  |-------|------|-------------|
1212
- | `protected_ranges` | repeated RecorderClipRange | |
1213
- | `must_have_flags` | uint64 | |
1214
- | `must_not_have_flags` | uint64 | |
1325
+ | `protected_ranges` | repeated RecorderClipRange | Protected time ranges |
1326
+ | `must_have_flags` | uint64 | Clips must have these flags |
1327
+ | `must_not_have_flags` | uint64 | Clips must not have these flags |
1215
1328
 
1216
1329
 
1217
1330
  ### RecorderClipsGetRequest
@@ -1228,7 +1341,7 @@ Response with recorder clips.
1228
1341
 
1229
1342
  | Field | Type | Description |
1230
1343
  |-------|------|-------------|
1231
- | `clips` | repeated RecorderClip | |
1344
+ | `clips` | repeated RecorderClip | List of clips |
1232
1345
 
1233
1346
 
1234
1347
  ### RecorderClipsVerifyRequest
@@ -1245,7 +1358,7 @@ Response with verification errors.
1245
1358
 
1246
1359
  | Field | Type | Description |
1247
1360
  |-------|------|-------------|
1248
- | `errors` | repeated string | |
1361
+ | `errors` | repeated string | List of errors |
1249
1362
 
1250
1363
 
1251
1364
  ### RecorderEvent
@@ -1255,9 +1368,9 @@ Recorder event notification.
1255
1368
 
1256
1369
  | Field | Type | Description |
1257
1370
  |-------|------|-------------|
1258
- | `id` | string | |
1259
- | `online` | bool | |
1260
- | `message` | optional string | |
1371
+ | `id` | string | Recorder ID |
1372
+ | `online` | bool | Is recorder online |
1373
+ | `message` | optional string | Event message |
1261
1374
 
1262
1375
 
1263
1376
  ### RecorderLockedDurationSetRequest
@@ -1267,7 +1380,7 @@ Request to set locked duration.
1267
1380
 
1268
1381
  | Field | Type | Description |
1269
1382
  |-------|------|-------------|
1270
- | `frames` | uint32 | |
1383
+ | `frames` | uint32 | Locked duration in frames |
1271
1384
 
1272
1385
 
1273
1386
  ### RecorderMetadataSetRequest
@@ -1277,7 +1390,7 @@ Request to set recorder metadata.
1277
1390
 
1278
1391
  | Field | Type | Description |
1279
1392
  |-------|------|-------------|
1280
- | `metadata` | sesame.v1.common.TransportMetadata | |
1393
+ | `metadata` | sesame.v1.common.TransportMetadata | Metadata to set |
1281
1394
 
1282
1395
 
1283
1396
  ### RecorderOkResponse
@@ -1294,16 +1407,16 @@ Recorder request wrapper.
1294
1407
 
1295
1408
  | Field | Type | Description |
1296
1409
  |-------|------|-------------|
1297
- | `recorder_id` | string | |
1298
- | `get_clips` | RecorderClipsGetRequest | |
1299
- | `add_clip` | RecorderClipAddRequest | |
1300
- | `remove_clip` | RecorderClipRemoveRequest | |
1301
- | `clear_clips` | RecorderClipsClearRequest | |
1302
- | `set_metadata` | RecorderMetadataSetRequest | |
1303
- | `verify_clips` | RecorderClipsVerifyRequest | |
1304
- | `set_clip_flag` | RecorderClipFlagSetRequest | |
1305
- | `copy_clip` | RecorderClipCopyRequest | |
1306
- | `set_locked_duration` | RecorderLockedDurationSetRequest | |
1410
+ | `recorder_id` | string | Recorder ID |
1411
+ | `get_clips` | RecorderClipsGetRequest | |
1412
+ | `add_clip` | RecorderClipAddRequest | |
1413
+ | `remove_clip` | RecorderClipRemoveRequest | |
1414
+ | `clear_clips` | RecorderClipsClearRequest | |
1415
+ | `set_metadata` | RecorderMetadataSetRequest | |
1416
+ | `verify_clips` | RecorderClipsVerifyRequest | |
1417
+ | `set_clip_flag` | RecorderClipFlagSetRequest | |
1418
+ | `copy_clip` | RecorderClipCopyRequest | |
1419
+ | `set_locked_duration` | RecorderLockedDurationSetRequest | |
1307
1420
 
1308
1421
 
1309
1422
  ### RecorderResponse
@@ -1313,9 +1426,9 @@ Recorder response wrapper.
1313
1426
 
1314
1427
  | Field | Type | Description |
1315
1428
  |-------|------|-------------|
1316
- | `get_clips_response` | RecorderClipsGetResponse | |
1317
- | `ok_response` | RecorderOkResponse | |
1318
- | `verify_clips_response` | RecorderClipsVerifyResponse | |
1429
+ | `get_clips_response` | RecorderClipsGetResponse | |
1430
+ | `ok_response` | RecorderOkResponse | |
1431
+ | `verify_clips_response` | RecorderClipsVerifyResponse | |
1319
1432
 
1320
1433
 
1321
1434
  ### RecorderStatus
@@ -1325,7 +1438,7 @@ Recorder status.
1325
1438
 
1326
1439
  | Field | Type | Description |
1327
1440
  |-------|------|-------------|
1328
- | `id` | string | |
1441
+ | `id` | string | Recorder ID |
1329
1442
 
1330
1443
 
1331
1444
  ---
@@ -1345,8 +1458,8 @@ Server event notification.
1345
1458
 
1346
1459
  | Field | Type | Description |
1347
1460
  |-------|------|-------------|
1348
- | `topic` | sesame.v1.common.EventTopic | |
1349
- | `payload` | bytes | |
1461
+ | `topic` | sesame.v1.common.EventTopic | Event topic (typed) |
1462
+ | `payload` | bytes | Serialized event payload |
1350
1463
 
1351
1464
 
1352
1465
  ### Message
@@ -1358,9 +1471,9 @@ Exactly one payload field will be set, determining the message type.
1358
1471
 
1359
1472
  | Field | Type | Description |
1360
1473
  |-------|------|-------------|
1361
- | `request` | Request | |
1362
- | `response` | Response | |
1363
- | `event` | Event | |
1474
+ | `request` | Request | Client request |
1475
+ | `response` | Response | Server response |
1476
+ | `event` | Event | Server event |
1364
1477
 
1365
1478
 
1366
1479
  ### Request
@@ -1370,9 +1483,9 @@ RPC request from client to server.
1370
1483
 
1371
1484
  | Field | Type | Description |
1372
1485
  |-------|------|-------------|
1373
- | `method` | string | |
1374
- | `seq` | uint32 | |
1375
- | `payload` | bytes | |
1486
+ | `method` | string | RPC method name |
1487
+ | `seq` | uint32 | Sequence number for matching responses |
1488
+ | `payload` | bytes | Serialized request payload |
1376
1489
 
1377
1490
 
1378
1491
  ### Response
@@ -1389,10 +1502,10 @@ Error handling:
1389
1502
 
1390
1503
  | Field | Type | Description |
1391
1504
  |-------|------|-------------|
1392
- | `seq` | uint32 | |
1393
- | `ok` | bool | |
1394
- | `payload` | bytes | |
1395
- | `error` | string | |
1505
+ | `seq` | uint32 | Sequence number matching request |
1506
+ | `ok` | bool | Success flag |
1507
+ | `payload` | bytes | Serialized response payload |
1508
+ | `error` | string | Error message (if ok == false) |
1396
1509
 
1397
1510
 
1398
1511
  ---
@@ -1413,10 +1526,10 @@ that have a binding from this node+metadataId.
1413
1526
 
1414
1527
  | Field | Type | Description |
1415
1528
  |-------|------|-------------|
1416
- | `node_id` | string | |
1417
- | `metadata_id` | string | |
1418
- | `payload` | bytes | |
1419
- | `data_type` | sesame.v1.wire.DataType | |
1529
+ | `node_id` | string | Emitting node ID (e.g. "snigel1") |
1530
+ | `metadata_id` | string | MetadataDef.id of the capability (e.g. "snigel.state.v1") |
1531
+ | `payload` | bytes | Payload bytes (JSON or binary depending on data_type) |
1532
+ | `data_type` | sesame.v1.wire.DataType | Wire data type (default DATA_TYPE_JSON for backward compat) |
1420
1533
 
1421
1534
 
1422
1535
  ### SesameAPIService
@@ -1474,6 +1587,30 @@ Video preprocessing step type.
1474
1587
  | 3 | `PREPROCESS_STEP_BLUR` | Blur effect |
1475
1588
 
1476
1589
 
1590
+ ### SignalGeneratorAudioMode
1591
+
1592
+ Signal generator audio program.
1593
+
1594
+ | Value | Name | Description |
1595
+ |-------|------|-------------|
1596
+ | 0 | `SIGNAL_GENERATOR_AUDIO_MODE_SYNC` | Silence with a sync burst aligned to the lip-sync overlay |
1597
+ | 1 | `SIGNAL_GENERATOR_AUDIO_MODE_CHANNEL_IDENT` | Spoken ident ("Channel one", ...) cycling through the channels, 1 kHz tone between idents |
1598
+ | 2 | `SIGNAL_GENERATOR_AUDIO_MODE_TONE` | Continuous 1 kHz tone on all channels |
1599
+ | 3 | `SIGNAL_GENERATOR_AUDIO_MODE_SILENCE` | Silence |
1600
+
1601
+
1602
+ ### SignalGeneratorVideoPattern
1603
+
1604
+ Signal generator video test pattern.
1605
+
1606
+ | Value | Name | Description |
1607
+ |-------|------|-------------|
1608
+ | 0 | `SIGNAL_GENERATOR_VIDEO_PATTERN_BARS` | EBU 75% color bars with moving lip-sync overlay |
1609
+ | 1 | `SIGNAL_GENERATOR_VIDEO_PATTERN_RAMP` | Horizontal R/G/B/luma ramps and a 16-step staircase |
1610
+ | 2 | `SIGNAL_GENERATOR_VIDEO_PATTERN_GRID` | Crosshatch grid with border, center marker and circle |
1611
+ | 3 | `SIGNAL_GENERATOR_VIDEO_PATTERN_FILL_KEY` | Fill/key sync + alpha ramp: alpha ramp/staircase, sweep bar and frame counter drawn in both fill and key |
1612
+
1613
+
1477
1614
  ### SourceTextureSize
1478
1615
 
1479
1616
  Source texture size for GPU upload.
@@ -1504,10 +1641,10 @@ Source transport command type.
1504
1641
  | 10 | `SOURCE_TRANSPORT_CMD_POST_ROLL` | Post-roll |
1505
1642
  | 11 | `SOURCE_TRANSPORT_CMD_PRE_ROLL` | Pre-roll |
1506
1643
  | 12 | `SOURCE_TRANSPORT_CMD_NEXT` | Next item |
1507
- | 13 | `SOURCE_TRANSPORT_CMD_SKIP_NEXT` | Skip to next |
1508
- | 14 | `SOURCE_TRANSPORT_CMD_TRANSITIONS_DISABLED` | Disable transitions |
1509
- | 15 | `SOURCE_TRANSPORT_CMD_SET_SCRUBBING` | Set scrubbing mode |
1510
- | 16 | `SOURCE_TRANSPORT_CMD_SET_END_NOTIFICATION` | Set near-end callback threshold (int64 µs before end; 0 = disabled) |
1644
+ | 13 | `SOURCE_TRANSPORT_CMD_SKIP_NEXT` | Skip to next |
1645
+ | 14 | `SOURCE_TRANSPORT_CMD_TRANSITIONS_DISABLED` | Disable transitions |
1646
+ | 15 | `SOURCE_TRANSPORT_CMD_SET_SCRUBBING` | Set scrubbing mode |
1647
+ | 16 | `SOURCE_TRANSPORT_CMD_SET_END_NOTIFICATION` | Set near-end callback offset (int64 µs before end; 0 = disabled) |
1511
1648
 
1512
1649
 
1513
1650
  ### SourceTransportState
@@ -1549,9 +1686,9 @@ Type of video/audio source.
1549
1686
 
1550
1687
  | Field | Type | Description |
1551
1688
  |-------|------|-------------|
1552
- | `url` | string | |
1553
- | `width` | uint32 | |
1554
- | `height` | uint32 | |
1689
+ | `url` | string | Initial page URL |
1690
+ | `width` | uint32 | Optional browser width hint |
1691
+ | `height` | uint32 | Optional browser height hint |
1555
1692
 
1556
1693
 
1557
1694
  ### DecklinkSourceConfig
@@ -1561,9 +1698,9 @@ Decklink source configuration.
1561
1698
 
1562
1699
  | Field | Type | Description |
1563
1700
  |-------|------|-------------|
1564
- | `device_index` | uint32 | |
1565
- | `video_format` | sesame.v1.common.VideoFormat | |
1566
- | `sync_group` | optional uint32 | |
1701
+ | `device_index` | uint32 | Decklink device index |
1702
+ | `video_format` | sesame.v1.common.VideoFormat | Video format |
1703
+ | `sync_group` | optional uint32 | Sync group for genlock |
1567
1704
 
1568
1705
 
1569
1706
  ### EjectPlaylistRequest
@@ -1573,7 +1710,7 @@ Request to eject playlist from recorder source.
1573
1710
 
1574
1711
  | Field | Type | Description |
1575
1712
  |-------|------|-------------|
1576
- | `source_id` | string | |
1713
+ | `source_id` | string | Source ID |
1577
1714
 
1578
1715
 
1579
1716
  ### FileSourceConfig
@@ -1583,7 +1720,7 @@ Type-specific source payloads.
1583
1720
 
1584
1721
  | Field | Type | Description |
1585
1722
  |-------|------|-------------|
1586
- | `url` | string | |
1723
+ | `url` | string | File URL/path |
1587
1724
 
1588
1725
 
1589
1726
  ### LoadPlaylistRequest
@@ -1593,12 +1730,12 @@ Request to load a playlist into a recorder source.
1593
1730
 
1594
1731
  | Field | Type | Description |
1595
1732
  |-------|------|-------------|
1596
- | `source_id` | string | |
1597
- | `user_playlist_id` | string | |
1598
- | `items` | repeated sesame.v1.recorder.PlaylistItem | |
1599
- | `start_time_us` | optional int64 | |
1600
- | `start_index` | optional int64 | |
1601
- | `material_pos_us` | optional int64 | |
1733
+ | `source_id` | string | Source ID |
1734
+ | `user_playlist_id` | string | User playlist ID |
1735
+ | `items` | repeated sesame.v1.recorder.PlaylistItem | Playlist items |
1736
+ | `start_time_us` | optional int64 | Start time (us) |
1737
+ | `start_index` | optional int64 | Start item index |
1738
+ | `material_pos_us` | optional int64 | Material position (us) |
1602
1739
 
1603
1740
 
1604
1741
  ### MoqSourceConfig
@@ -1608,11 +1745,11 @@ Request to load a playlist into a recorder source.
1608
1745
 
1609
1746
  | Field | Type | Description |
1610
1747
  |-------|------|-------------|
1611
- | `url` | string | |
1612
- | `broadcast` | string | |
1613
- | `key` | string | |
1614
- | `decode_buffer_frames` | uint32 | |
1615
- | `incoming_metadata_tracks` | repeated string | |
1748
+ | `url` | string | MoQ relay URL |
1749
+ | `broadcast` | string | Broadcast namespace |
1750
+ | `key` | string | Authentication key |
1751
+ | `decode_buffer_frames` | uint32 | Live buffer size in frames (0 = use default) |
1752
+ | `incoming_metadata_tracks` | repeated string | Track names for incoming JSON metadata frames (routing resolved via metadataBindings). |
1616
1753
 
1617
1754
 
1618
1755
  ### RTTSourceConfig
@@ -1622,9 +1759,9 @@ RTT (Render-to-Texture) source configuration.
1622
1759
 
1623
1760
  | Field | Type | Description |
1624
1761
  |-------|------|-------------|
1625
- | `rtt_id` | string | |
1626
- | `audio_mixes` | repeated string | |
1627
- | `delay_frames` | uint32 | |
1762
+ | `rtt_id` | string | ID of the RTT render target to display |
1763
+ | `audio_mixes` | repeated string | Audio mixer IDs to include |
1764
+ | `delay_frames` | uint32 | Delay in frames |
1628
1765
 
1629
1766
 
1630
1767
  ### RecorderSourceConfig
@@ -1634,14 +1771,21 @@ RTT (Render-to-Texture) source configuration.
1634
1771
 
1635
1772
  | Field | Type | Description |
1636
1773
  |-------|------|-------------|
1637
- | `recorder_id` | string | |
1638
- | `codec` | sesame.v1.common.CodecType | |
1774
+ | `recorder_id` | string | Recorder ID |
1775
+ | `codec` | sesame.v1.common.CodecType | Preferred hardware decoder codec |
1639
1776
 
1640
1777
 
1641
1778
  ### SignalGeneratorSourceConfig
1642
1779
 
1780
+ Signal generator source configuration.
1643
1781
 
1644
1782
 
1783
+ | Field | Type | Description |
1784
+ |-------|------|-------------|
1785
+ | `freeze` | bool | Freeze the moving lip-sync overlay at its sync point (static test pattern) |
1786
+ | `video_pattern` | SignalGeneratorVideoPattern | Video test pattern |
1787
+ | `audio_mode` | SignalGeneratorAudioMode | Audio program |
1788
+
1645
1789
 
1646
1790
  ### SourceAddRequest
1647
1791
 
@@ -1650,8 +1794,8 @@ Request to add a new source.
1650
1794
 
1651
1795
  | Field | Type | Description |
1652
1796
  |-------|------|-------------|
1653
- | `id` | string | |
1654
- | `config` | SourceConfig | |
1797
+ | `id` | string | Unique source ID |
1798
+ | `config` | SourceConfig | Source configuration |
1655
1799
 
1656
1800
 
1657
1801
  ### SourceCommonConfig
@@ -1661,16 +1805,16 @@ Shared fields for all source kinds.
1661
1805
 
1662
1806
  | Field | Type | Description |
1663
1807
  |-------|------|-------------|
1664
- | `user_id` | string | |
1665
- | `use_as_clock` | bool | |
1666
- | `audio_only` | bool | |
1667
- | `audio_channels` | uint32 | |
1668
- | `loop` | bool | |
1669
- | `play_state` | SourceTransportState | |
1670
- | `mip_map` | bool | |
1671
- | `texture_size` | SourceTextureSize | |
1672
- | `deinterlace` | DeinterlaceType | |
1673
- | `video_processors` | repeated VideoProcessor | |
1808
+ | `user_id` | string | User-defined ID |
1809
+ | `use_as_clock` | bool | Use as master clock |
1810
+ | `audio_only` | bool | Audio-only mode |
1811
+ | `audio_channels` | uint32 | Requested/expected audio channel count |
1812
+ | `loop` | bool | Loop playback (if applicable) |
1813
+ | `play_state` | SourceTransportState | Initial playback state |
1814
+ | `mip_map` | bool | Generate mipmaps |
1815
+ | `texture_size` | SourceTextureSize | Texture size for GPU upload |
1816
+ | `deinterlace` | DeinterlaceType | Deinterlace mode |
1817
+ | `video_processors` | repeated VideoProcessor | Video processors |
1674
1818
 
1675
1819
 
1676
1820
  ### SourceConfig
@@ -1681,17 +1825,17 @@ Defines how a source is created and configured.
1681
1825
 
1682
1826
  | Field | Type | Description |
1683
1827
  |-------|------|-------------|
1684
- | `common` | SourceCommonConfig | |
1685
- | `file` | FileSourceConfig | |
1686
- | `recorder` | RecorderSourceConfig | |
1687
- | `browser` | BrowserSourceConfig | |
1688
- | `rtt` | RTTSourceConfig | |
1689
- | `decklink` | DecklinkSourceConfig | |
1690
- | `signal_generator` | SignalGeneratorSourceConfig | |
1691
- | `system_audio` | SystemAudioSourceConfig | |
1692
- | `srt_stream` | SrtSourceConfig | |
1693
- | `websocket` | WebsocketSourceConfig | |
1694
- | `moq` | MoqSourceConfig | |
1828
+ | `common` | SourceCommonConfig | Shared source settings |
1829
+ | `file` | FileSourceConfig | SOURCE_TYPE_FILE |
1830
+ | `recorder` | RecorderSourceConfig | SOURCE_TYPE_RECORDER |
1831
+ | `browser` | BrowserSourceConfig | SOURCE_TYPE_BROWSER |
1832
+ | `rtt` | RTTSourceConfig | SOURCE_TYPE_RTT |
1833
+ | `decklink` | DecklinkSourceConfig | SOURCE_TYPE_DECKLINK |
1834
+ | `signal_generator` | SignalGeneratorSourceConfig | SOURCE_TYPE_SIGNAL_GENERATOR |
1835
+ | `system_audio` | SystemAudioSourceConfig | SOURCE_TYPE_SYSTEM_AUDIO |
1836
+ | `srt_stream` | SrtSourceConfig | SOURCE_TYPE_SRT_STREAM |
1837
+ | `websocket` | WebsocketSourceConfig | SOURCE_TYPE_WEBSOCKET |
1838
+ | `moq` | MoqSourceConfig | SOURCE_TYPE_MOQ |
1695
1839
 
1696
1840
 
1697
1841
  ### SourceMetadataEvent
@@ -1701,8 +1845,8 @@ Source metadata transport event notification.
1701
1845
 
1702
1846
  | Field | Type | Description |
1703
1847
  |-------|------|-------------|
1704
- | `source_id` | string | |
1705
- | `metadata` | sesame.v1.common.TransportMetadata | |
1848
+ | `source_id` | string | Source ID |
1849
+ | `metadata` | sesame.v1.common.TransportMetadata | Event metadata |
1706
1850
 
1707
1851
 
1708
1852
  ### SourceMetadataSetRequest
@@ -1712,8 +1856,8 @@ Request to set source metadata.
1712
1856
 
1713
1857
  | Field | Type | Description |
1714
1858
  |-------|------|-------------|
1715
- | `source_id` | string | |
1716
- | `metadata` | sesame.v1.common.TransportMetadata | |
1859
+ | `source_id` | string | Source ID |
1860
+ | `metadata` | sesame.v1.common.TransportMetadata | Metadata to set |
1717
1861
 
1718
1862
 
1719
1863
  ### SourceRemoveRequest
@@ -1723,7 +1867,7 @@ Request to remove a source.
1723
1867
 
1724
1868
  | Field | Type | Description |
1725
1869
  |-------|------|-------------|
1726
- | `id` | string | |
1870
+ | `id` | string | Source ID to remove |
1727
1871
 
1728
1872
 
1729
1873
  ### SourceStatus
@@ -1733,27 +1877,27 @@ Source status information.
1733
1877
 
1734
1878
  | Field | Type | Description |
1735
1879
  |-------|------|-------------|
1736
- | `id` | string | |
1737
- | `type` | SourceType | |
1738
- | `user_id` | string | |
1739
- | `state` | sesame.v1.common.ConnectionState | |
1740
- | `transport_state` | SourceTransportState | |
1741
- | `msg` | optional string | |
1742
- | `url` | string | |
1743
- | `width` | uint32 | |
1744
- | `height` | uint32 | |
1745
- | `fps` | float | |
1746
- | `duration_us` | int64 | |
1747
- | `play_position_us` | int64 | |
1748
- | `video_buf` | int32 | |
1749
- | `audio_buf` | int32 | |
1750
- | `gpu_buf` | int32 | |
1751
- | `audio_channels` | uint32 | |
1752
- | `audio_level` | float | |
1753
- | `lip_sync_offset_us` | int64 | |
1754
- | `decode_timing` | sesame.v1.status.FrameTiming | |
1755
- | `video_buf_avg` | double | |
1756
- | `srt_stats` | optional sesame.v1.status.SRTReceiveStatistics | |
1880
+ | `id` | string | Source ID |
1881
+ | `type` | SourceType | Source type |
1882
+ | `user_id` | string | User-defined ID |
1883
+ | `state` | sesame.v1.common.ConnectionState | Connection/lifecycle state |
1884
+ | `transport_state` | SourceTransportState | Transport state |
1885
+ | `msg` | optional string | Error message (typically when state == ERROR) |
1886
+ | `url` | string | Current URL |
1887
+ | `width` | uint32 | Video width |
1888
+ | `height` | uint32 | Video height |
1889
+ | `fps` | float | Video framerate |
1890
+ | `duration_us` | int64 | Duration (us) |
1891
+ | `play_position_us` | int64 | Playback position (us) |
1892
+ | `video_buf` | int32 | Video buffer level (frames) |
1893
+ | `audio_buf` | int32 | Audio buffer level (frames) |
1894
+ | `gpu_buf` | int32 | GPU buffer level (frames) |
1895
+ | `audio_channels` | uint32 | Active audio channels |
1896
+ | `audio_level` | float | Audio level (0.0-1.0) |
1897
+ | `lip_sync_offset_us` | int64 | Lip sync offset (us) |
1898
+ | `decode_timing` | sesame.v1.status.FrameTiming | Decode timing stats |
1899
+ | `video_buf_avg` | double | Average video buffer level |
1900
+ | `srt_stats` | optional sesame.v1.status.SRTReceiveStatistics | SRT stats (if SRT source) |
1757
1901
 
1758
1902
 
1759
1903
  ### SourceTransportCommand
@@ -1763,9 +1907,9 @@ Source transport command.
1763
1907
 
1764
1908
  | Field | Type | Description |
1765
1909
  |-------|------|-------------|
1766
- | `source_id` | string | |
1767
- | `cmd_type` | SourceTransportCommandType | |
1768
- | `value` | sesame.v1.common.PropValue | |
1910
+ | `source_id` | string | Source ID |
1911
+ | `cmd_type` | SourceTransportCommandType | Command type |
1912
+ | `value` | sesame.v1.common.PropValue | Command value |
1769
1913
 
1770
1914
 
1771
1915
  ### SourceUpdateRequest
@@ -1775,8 +1919,8 @@ Request to update an existing source.
1775
1919
 
1776
1920
  | Field | Type | Description |
1777
1921
  |-------|------|-------------|
1778
- | `id` | string | |
1779
- | `config` | SourceConfig | |
1922
+ | `id` | string | Source ID to update |
1923
+ | `config` | SourceConfig | New configuration |
1780
1924
 
1781
1925
 
1782
1926
  ### SrtSourceConfig
@@ -1786,8 +1930,8 @@ Request to update an existing source.
1786
1930
 
1787
1931
  | Field | Type | Description |
1788
1932
  |-------|------|-------------|
1789
- | `url` | string | |
1790
- | `decode_buffer_frames` | uint32 | |
1933
+ | `url` | string | SRT URL |
1934
+ | `decode_buffer_frames` | uint32 | Live buffer size in frames (0 = use default) |
1791
1935
 
1792
1936
 
1793
1937
  ### SystemAudioSourceConfig
@@ -1797,7 +1941,7 @@ Request to update an existing source.
1797
1941
 
1798
1942
  | Field | Type | Description |
1799
1943
  |-------|------|-------------|
1800
- | `device_name` | string | |
1944
+ | `device_name` | string | System input/output device name, empty for default |
1801
1945
 
1802
1946
 
1803
1947
  ### TakePlaylistRequest
@@ -1811,14 +1955,14 @@ between items inside the playlist.
1811
1955
 
1812
1956
  | Field | Type | Description |
1813
1957
  |-------|------|-------------|
1814
- | `source_id` | string | |
1815
- | `user_playlist_id` | string | |
1816
- | `items` | repeated sesame.v1.recorder.PlaylistItem | |
1817
- | `start_time_us` | optional int64 | |
1818
- | `start_index` | optional int64 | |
1819
- | `material_pos_us` | optional int64 | |
1820
- | `transition_time_us` | optional int64 | |
1821
- | `playback_speed` | optional float | |
1958
+ | `source_id` | string | Destination recorder source ID |
1959
+ | `user_playlist_id` | string | User playlist ID |
1960
+ | `items` | repeated sesame.v1.recorder.PlaylistItem | Playlist items |
1961
+ | `start_time_us` | optional int64 | Start time (us) |
1962
+ | `start_index` | optional int64 | Start item index |
1963
+ | `material_pos_us` | optional int64 | Material position (us) |
1964
+ | `transition_time_us` | optional int64 | Outer take transition duration (us) |
1965
+ | `playback_speed` | optional float | Global playback speed for the take |
1822
1966
 
1823
1967
 
1824
1968
  ### TransportControlRequest
@@ -1834,8 +1978,8 @@ to the source the track is bound to; it cannot control arbitrary sources.
1834
1978
 
1835
1979
  | Field | Type | Description |
1836
1980
  |-------|------|-------------|
1837
- | `cmd_type` | SourceTransportCommandType | |
1838
- | `value` | sesame.v1.common.PropValue | |
1981
+ | `cmd_type` | SourceTransportCommandType | |
1982
+ | `value` | sesame.v1.common.PropValue | Optional; semantics depend on cmd_type |
1839
1983
 
1840
1984
 
1841
1985
  ### VideoProcessor
@@ -1845,9 +1989,9 @@ Video processor instance configuration.
1845
1989
 
1846
1990
  | Field | Type | Description |
1847
1991
  |-------|------|-------------|
1848
- | `id` | string | |
1849
- | `type` | PreprocessStep | |
1850
- | `params` | repeated VideoProcessorParam | |
1992
+ | `id` | string | Unique instance ID |
1993
+ | `type` | PreprocessStep | Processor type |
1994
+ | `params` | repeated VideoProcessorParam | Processor parameters |
1851
1995
 
1852
1996
 
1853
1997
  ### VideoProcessorParam
@@ -1857,8 +2001,8 @@ Video processor parameter (mirrors AudioPluginParam).
1857
2001
 
1858
2002
  | Field | Type | Description |
1859
2003
  |-------|------|-------------|
1860
- | `id` | uint32 | |
1861
- | `float_value` | float | |
2004
+ | `id` | uint32 | Parameter ID |
2005
+ | `float_value` | float | Parameter value |
1862
2006
 
1863
2007
 
1864
2008
  ### WebsocketSourceConfig
@@ -1868,9 +2012,9 @@ Video processor parameter (mirrors AudioPluginParam).
1868
2012
 
1869
2013
  | Field | Type | Description |
1870
2014
  |-------|------|-------------|
1871
- | `channel` | string | |
1872
- | `decode_buffer_frames` | uint32 | |
1873
- | `incoming_metadata_tracks` | repeated string | |
2015
+ | `channel` | string | WebSocket channel/topic |
2016
+ | `decode_buffer_frames` | uint32 | Live buffer size in frames (0 = use default) |
2017
+ | `incoming_metadata_tracks` | repeated string | Track names for incoming JSON metadata frames (routing resolved via metadataBindings). |
1874
2018
 
1875
2019
 
1876
2020
  ---
@@ -1892,10 +2036,10 @@ All times are in microseconds (us).
1892
2036
 
1893
2037
  | Field | Type | Description |
1894
2038
  |-------|------|-------------|
1895
- | `frame_time` | int32 | |
1896
- | `frame_time_avg` | int32 | |
1897
- | `frame_time_min` | int32 | |
1898
- | `frame_time_max` | int32 | |
2039
+ | `frame_time` | int32 | Current frame time (us) |
2040
+ | `frame_time_avg` | int32 | Average frame time (us) |
2041
+ | `frame_time_min` | int32 | Minimum frame time (us) |
2042
+ | `frame_time_max` | int32 | Maximum frame time (us) |
1899
2043
 
1900
2044
 
1901
2045
  ### MemoryDomainStats
@@ -1906,9 +2050,9 @@ Tracks memory usage for different allocation domains.
1906
2050
 
1907
2051
  | Field | Type | Description |
1908
2052
  |-------|------|-------------|
1909
- | `current_bytes` | uint64 | |
1910
- | `peak_bytes` | uint64 | |
1911
- | `budget_bytes` | uint64 | |
2053
+ | `current_bytes` | uint64 | Current allocated bytes |
2054
+ | `peak_bytes` | uint64 | Peak allocated bytes |
2055
+ | `budget_bytes` | uint64 | Budget/limit in bytes |
1912
2056
 
1913
2057
 
1914
2058
  ### SRTReceiveStatistics
@@ -1920,16 +2064,16 @@ Used for monitoring stream health and diagnosing issues.
1920
2064
 
1921
2065
  | Field | Type | Description |
1922
2066
  |-------|------|-------------|
1923
- | `packets_received` | int64 | |
1924
- | `packets_received_lost` | int32 | |
1925
- | `packet_ack_sent` | int32 | |
1926
- | `packet_nack_sent` | int32 | |
1927
- | `bytes_received` | int64 | |
1928
- | `bytes_received_lost` | int64 | |
1929
- | `receive_rate_mbps` | double | |
1930
- | `tsbpd_delay` | int32 | |
1931
- | `bandwidth_mbps` | double | |
1932
- | `rtt_ms` | double | |
2067
+ | `packets_received` | int64 | Total packets received |
2068
+ | `packets_received_lost` | int32 | Packets lost during reception |
2069
+ | `packet_ack_sent` | int32 | ACK packets sent |
2070
+ | `packet_nack_sent` | int32 | NACK packets sent (retransmission requests) |
2071
+ | `bytes_received` | int64 | Total bytes received |
2072
+ | `bytes_received_lost` | int64 | Bytes lost during reception |
2073
+ | `receive_rate_mbps` | double | Current receive rate (Mbps) |
2074
+ | `tsbpd_delay` | int32 | Timestamp-based packet delivery delay (ms) |
2075
+ | `bandwidth_mbps` | double | Available bandwidth (Mbps) |
2076
+ | `rtt_ms` | double | Round-trip time (ms) |
1933
2077
 
1934
2078
 
1935
2079
  ### SRTSendStatistics
@@ -1940,17 +2084,17 @@ Provides detailed metrics for SRT stream transmission.
1940
2084
 
1941
2085
  | Field | Type | Description |
1942
2086
  |-------|------|-------------|
1943
- | `packets_sent` | int64 | |
1944
- | `packets_sent_lost` | int32 | |
1945
- | `packets_sent_dropped` | int32 | |
1946
- | `packets_retransmitted` | int32 | |
1947
- | `packet_ack_received` | int32 | |
1948
- | `packet_nack_received` | int32 | |
1949
- | `bytes_sent` | int64 | |
1950
- | `bytes_sent_dropped` | int64 | |
1951
- | `send_rate_mbps` | double | |
1952
- | `bandwidth_mbps` | double | |
1953
- | `rtt_ms` | double | |
2087
+ | `packets_sent` | int64 | Total packets sent |
2088
+ | `packets_sent_lost` | int32 | Packets lost during transmission |
2089
+ | `packets_sent_dropped` | int32 | Packets dropped (buffer full, etc.) |
2090
+ | `packets_retransmitted` | int32 | Packets retransmitted |
2091
+ | `packet_ack_received` | int32 | ACK packets received |
2092
+ | `packet_nack_received` | int32 | NACK packets received |
2093
+ | `bytes_sent` | int64 | Total bytes sent |
2094
+ | `bytes_sent_dropped` | int64 | Bytes dropped |
2095
+ | `send_rate_mbps` | double | Current send rate (Mbps) |
2096
+ | `bandwidth_mbps` | double | Available bandwidth (Mbps) |
2097
+ | `rtt_ms` | double | Round-trip time (ms) |
1954
2098
 
1955
2099
 
1956
2100
  ### SystemStatus
@@ -1961,23 +2105,23 @@ Provides overall system health and performance metrics.
1961
2105
 
1962
2106
  | Field | Type | Description |
1963
2107
  |-------|------|-------------|
1964
- | `uptime` | uint64 | |
1965
- | `framedrops` | uint32 | |
1966
- | `framerate` | float | |
1967
- | `gpu_mem` | uint64 | |
1968
- | `cpu_mem` | uint64 | |
1969
- | `mem_gpu_pool` | MemoryDomainStats | |
1970
- | `mem_cpu_pool` | MemoryDomainStats | |
1971
- | `mem_gpu_adhoc` | MemoryDomainStats | |
1972
- | `mem_gpu_pinned` | MemoryDomainStats | |
1973
- | `gpu_mem_total` | uint64 | |
1974
- | `gpu_mem_used` | uint64 | |
1975
- | `gpu_utilization` | uint32 | |
1976
- | `gpu_mem_utilization` | uint32 | |
1977
- | `gpu_encoder_utilization` | uint32 | |
1978
- | `gpu_decoder_utilization` | uint32 | |
1979
- | `gpu_name` | string | |
1980
- | `vma_bytes` | uint64 | |
2108
+ | `uptime` | uint64 | System uptime in seconds |
2109
+ | `framedrops` | uint32 | Total frames dropped |
2110
+ | `framerate` | float | Current framerate (fps) |
2111
+ | `gpu_mem` | uint64 | GPU memory used (bytes) - deprecated, use gpu_mem_used |
2112
+ | `cpu_mem` | uint64 | CPU memory used (bytes) |
2113
+ | `mem_gpu_pool` | MemoryDomainStats | GPU pool memory stats |
2114
+ | `mem_cpu_pool` | MemoryDomainStats | CPU pool memory stats |
2115
+ | `mem_gpu_adhoc` | MemoryDomainStats | GPU ad-hoc allocation stats |
2116
+ | `mem_gpu_pinned` | MemoryDomainStats | GPU pinned memory stats |
2117
+ | `gpu_mem_total` | uint64 | GPU hardware metrics (via NVML) Total GPU memory (bytes) |
2118
+ | `gpu_mem_used` | uint64 | Used GPU memory (bytes) |
2119
+ | `gpu_utilization` | uint32 | SM/compute utilization (0-100%) |
2120
+ | `gpu_mem_utilization` | uint32 | Memory controller utilization (0-100%) |
2121
+ | `gpu_encoder_utilization` | uint32 | NVENC utilization (0-100%) |
2122
+ | `gpu_decoder_utilization` | uint32 | NVDEC utilization (0-100%) |
2123
+ | `gpu_name` | string | GPU model name |
2124
+ | `vma_bytes` | uint64 | Vulkan Memory Allocator total bytes |
1981
2125
 
1982
2126
 
1983
2127
  ---
@@ -2010,7 +2154,7 @@ Compositor status.
2010
2154
 
2011
2155
  | Field | Type | Description |
2012
2156
  |-------|------|-------------|
2013
- | `id` | string | |
2157
+ | `id` | string | Compositor ID |
2014
2158
 
2015
2159
 
2016
2160
  ### ErrorEvent
@@ -2020,7 +2164,7 @@ Error event.
2020
2164
 
2021
2165
  | Field | Type | Description |
2022
2166
  |-------|------|-------------|
2023
- | `msg` | string | |
2167
+ | `msg` | string | Error message |
2024
2168
 
2025
2169
 
2026
2170
  ### Event
@@ -2030,12 +2174,12 @@ Event message wrapper.
2030
2174
 
2031
2175
  | Field | Type | Description |
2032
2176
  |-------|------|-------------|
2033
- | `error_event` | ErrorEvent | |
2034
- | `transport_event` | TransportEvent | |
2035
- | `callback_event` | sesame.v1.common.Callback | |
2036
- | `job_event` | sesame.v1.jobs.Job | |
2037
- | `metadata_event` | MetadataEvent | |
2038
- | `recorder_event` | sesame.v1.recorder.RecorderEvent | |
2177
+ | `error_event` | ErrorEvent | Error event |
2178
+ | `transport_event` | TransportEvent | Transport event |
2179
+ | `callback_event` | sesame.v1.common.Callback | Callback event |
2180
+ | `job_event` | sesame.v1.jobs.Job | Job event (per-job state change) |
2181
+ | `metadata_event` | MetadataEvent | Metadata track event |
2182
+ | `recorder_event` | sesame.v1.recorder.RecorderEvent | Recorder event |
2039
2183
 
2040
2184
 
2041
2185
  ### IODeviceItem
@@ -2045,9 +2189,9 @@ I/O device item.
2045
2189
 
2046
2190
  | Field | Type | Description |
2047
2191
  |-------|------|-------------|
2048
- | `id` | string | |
2049
- | `name` | string | |
2050
- | `type` | IODeviceType | |
2192
+ | `id` | string | Device ID |
2193
+ | `name` | string | Device name |
2194
+ | `type` | IODeviceType | Device type |
2051
2195
 
2052
2196
 
2053
2197
  ### IODeviceListResponse
@@ -2057,7 +2201,7 @@ I/O device list response.
2057
2201
 
2058
2202
  | Field | Type | Description |
2059
2203
  |-------|------|-------------|
2060
- | `devices` | repeated IODeviceItem | |
2204
+ | `devices` | repeated IODeviceItem | List of devices |
2061
2205
 
2062
2206
 
2063
2207
  ### MetadataEvent
@@ -2068,11 +2212,11 @@ routed to an app consumer via the metadata binding table.
2068
2212
 
2069
2213
  | Field | Type | Description |
2070
2214
  |-------|------|-------------|
2071
- | `source_node_id` | string | |
2072
- | `track_name` | string | |
2073
- | `target_node_id` | string | |
2074
- | `metadata_id` | string | |
2075
- | `payload` | bytes | |
2215
+ | `source_node_id` | string | Source node ID (MoQ/WebSocket input) |
2216
+ | `track_name` | string | Track name as it appears in the stream |
2217
+ | `target_node_id` | string | Target node ID (e.g. "snigel1") |
2218
+ | `metadata_id` | string | MetadataDef.id on the target node (e.g. "snigel.control.v1") |
2219
+ | `payload` | bytes | Raw payload bytes for the routed DataType (JSON UTF-8 or binary/control payload) |
2076
2220
 
2077
2221
 
2078
2222
  ### Status
@@ -2082,14 +2226,15 @@ Overall system status.
2082
2226
 
2083
2227
  | Field | Type | Description |
2084
2228
  |-------|------|-------------|
2085
- | `system_status` | SystemStatus | |
2086
- | `render_status_gpu` | FrameTiming | |
2087
- | `render_status_cpu` | FrameTiming | |
2088
- | `sources` | repeated sesame.v1.sources.SourceStatus | |
2089
- | `compositions` | repeated CompositorStatus | |
2090
- | `audio_mixes` | repeated sesame.v1.audio.AudioMixerStatus | |
2091
- | `outputs` | repeated sesame.v1.outputs.OutputStatus | |
2092
- | `recorders` | repeated sesame.v1.recorder.RecorderStatus | |
2229
+ | `system_status` | SystemStatus | System status |
2230
+ | `render_status_gpu` | FrameTiming | GPU render timing |
2231
+ | `render_status_cpu` | FrameTiming | CPU render timing |
2232
+ | `sources` | repeated sesame.v1.sources.SourceStatus | Source status |
2233
+ | `compositions` | repeated CompositorStatus | Compositor status |
2234
+ | `audio_mixes` | repeated sesame.v1.audio.AudioMixerStatus | Audio mixer status |
2235
+ | `outputs` | repeated sesame.v1.outputs.OutputStatus | Output status |
2236
+ | `recorders` | repeated sesame.v1.recorder.RecorderStatus | Recorder status |
2237
+ | `encoders` | repeated sesame.v1.outputs.EncoderStatus | Shared encoder status |
2093
2238
 
2094
2239
 
2095
2240
  ### SubscriptionRequest
@@ -2099,8 +2244,8 @@ Subscription request.
2099
2244
 
2100
2245
  | Field | Type | Description |
2101
2246
  |-------|------|-------------|
2102
- | `event_topics` | repeated sesame.v1.common.EventTopic | |
2103
- | `channels` | repeated string | |
2247
+ | `event_topics` | repeated sesame.v1.common.EventTopic | Typed event topics to subscribe to |
2248
+ | `channels` | repeated string | Dynamic channel subscriptions (e.g. video/audio channels) |
2104
2249
 
2105
2250
 
2106
2251
  ### TransportEvent
@@ -2110,25 +2255,25 @@ Transport event (source playback state change).
2110
2255
 
2111
2256
  | Field | Type | Description |
2112
2257
  |-------|------|-------------|
2113
- | `source_id` | string | |
2114
- | `user_id` | string | |
2115
- | `uri` | string | |
2116
- | `state` | sesame.v1.sources.SourceTransportState | |
2117
- | `duration_us` | int64 | |
2118
- | `position_us` | int64 | |
2119
- | `material_position_us` | int64 | |
2120
- | `user_time_us` | int64 | |
2121
- | `speed` | float | |
2122
- | `user_playlist_id` | string | |
2123
- | `playlist_index` | uint32 | |
2124
- | `playlist_length` | uint32 | |
2125
- | `clip_id` | uint64 | |
2126
- | `clip_position_us` | int64 | |
2127
- | `clip_duration_us` | int64 | |
2128
- | `preroll` | uint32 | |
2129
- | `postroll` | uint32 | |
2130
- | `metadata` | sesame.v1.common.TransportMetadata | |
2131
- | `near_end` | bool | True in the single event fired when the end-notification threshold is crossed |
2258
+ | `source_id` | string | Source ID |
2259
+ | `user_id` | string | User ID |
2260
+ | `uri` | string | Source URI |
2261
+ | `state` | sesame.v1.sources.SourceTransportState | Transport state |
2262
+ | `duration_us` | int64 | Duration (us) |
2263
+ | `position_us` | int64 | Playback position (us) |
2264
+ | `material_position_us` | int64 | Material position (us) |
2265
+ | `user_time_us` | int64 | User time (us) |
2266
+ | `speed` | float | Playback speed |
2267
+ | `user_playlist_id` | string | User playlist ID |
2268
+ | `playlist_index` | uint32 | Playlist item index |
2269
+ | `playlist_length` | uint32 | Playlist length |
2270
+ | `clip_id` | uint64 | Clip ID (if playing from recorder) |
2271
+ | `clip_position_us` | int64 | Position within clip (us) |
2272
+ | `clip_duration_us` | int64 | Duration of clip (us) |
2273
+ | `preroll` | uint32 | |
2274
+ | `postroll` | uint32 | |
2275
+ | `metadata` | sesame.v1.common.TransportMetadata | Transport metadata |
2276
+ | `near_end` | bool | True in the single event fired when end_notification threshold is crossed |
2132
2277
 
2133
2278
 
2134
2279
  ---
@@ -2180,8 +2325,8 @@ Header data for FRAME_TYPE_DATA frames.
2180
2325
 
2181
2326
  | Field | Type | Description |
2182
2327
  |-------|------|-------------|
2183
- | `data_type` | DataType | |
2184
- | `track_name` | string | |
2328
+ | `data_type` | DataType | |
2329
+ | `track_name` | string | Matches the trackName in the output config |
2185
2330
 
2186
2331
 
2187
2332
  ### FrameHeader
@@ -2192,10 +2337,10 @@ Serialized with a 4-byte little-endian size prefix on the wire.
2192
2337
 
2193
2338
  | Field | Type | Description |
2194
2339
  |-------|------|-------------|
2195
- | `type` | FrameType | |
2196
- | `routing_metadata` | string | |
2197
- | `media` | MediaFrameData | |
2198
- | `data` | DataFrameData | |
2340
+ | `type` | FrameType | |
2341
+ | `routing_metadata` | string | Source routing (inbound only) |
2342
+ | `media` | MediaFrameData | Present for VIDEO, AUDIO, MUXED, DECODER_DATA |
2343
+ | `data` | DataFrameData | Present for FRAME_TYPE_DATA |
2199
2344
 
2200
2345
 
2201
2346
  ### MediaCodecData
@@ -2205,16 +2350,16 @@ Codec parameters for a media stream.
2205
2350
 
2206
2351
  | Field | Type | Description |
2207
2352
  |-------|------|-------------|
2208
- | `codec_type` | sesame.v1.common.CodecType | |
2209
- | `sample_rate` | uint32 | |
2210
- | `timebase_num` | uint32 | |
2211
- | `timebase_den` | uint32 | |
2212
- | `codec_profile` | uint32 | |
2213
- | `codec_level` | uint32 | |
2214
- | `width` | uint32 | |
2215
- | `height` | uint32 | |
2216
- | `channels` | uint32 | |
2217
- | `bit_depth` | uint32 | |
2353
+ | `codec_type` | sesame.v1.common.CodecType | |
2354
+ | `sample_rate` | uint32 | |
2355
+ | `timebase_num` | uint32 | |
2356
+ | `timebase_den` | uint32 | |
2357
+ | `codec_profile` | uint32 | |
2358
+ | `codec_level` | uint32 | |
2359
+ | `width` | uint32 | |
2360
+ | `height` | uint32 | |
2361
+ | `channels` | uint32 | |
2362
+ | `bit_depth` | uint32 | |
2218
2363
 
2219
2364
 
2220
2365
  ### MediaFrameData
@@ -2224,9 +2369,9 @@ Media-specific fields for VIDEO, AUDIO, MUXED, and DECODER_DATA frames.
2224
2369
 
2225
2370
  | Field | Type | Description |
2226
2371
  |-------|------|-------------|
2227
- | `pts` | uint64 | |
2228
- | `keyframe` | bool | |
2229
- | `codec_data` | MediaCodecData | |
2372
+ | `pts` | uint64 | Presentation timestamp in codec_data timebase units |
2373
+ | `keyframe` | bool | True for video key frames |
2374
+ | `codec_data` | MediaCodecData | Codec parameters (may be present on first frame or key frames) |
2230
2375
 
2231
2376
 
2232
2377
  ---
@@ -2346,14 +2491,19 @@ Properties are set via `PropertySetRequest` or animated via `PropertyAnimateRequ
2346
2491
 
2347
2492
  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.
2348
2493
 
2349
- | Property | Type | Description |
2350
- |----------|------|-------------|
2351
- | `level` | float | Channel level (0-1) |
2352
- | `pan` | float | Pan position (-1 to 1) |
2353
- | `mute` | bool | Mute channel |
2354
- | `source_channels` | vec4 | Source channel routing |
2355
- | `source_id` | string | Source ID |
2356
- | `<param_id>` | float | Plugin parameter — `address` must be `channel_id::plugin_id`, `property` is the numeric param ID |
2494
+ | Property | Type | Description |
2495
+ |----------|------|-------------|
2496
+ | `master_level` | float | Manual mixer master level (0-1); use empty address or `master` address |
2497
+ | `master_automation_level` | float | Automation mixer master gain multiplier (0-1); use empty address or `master` address |
2498
+ | `master_effective_level` | float | Effective mixer master level; use empty address or `master` address |
2499
+ | `level` | float | Manual channel level (0-1) |
2500
+ | `pan` | float | Pan position (-1 to 1) |
2501
+ | `mute` | bool | Manual mute |
2502
+ | `automation_level` | float | Automation gain multiplier (0-1) |
2503
+ | `automation_mute` | bool | Automation mute |
2504
+ | `source_channels` | vec4 | Source channel routing |
2505
+ | `source_id` | string | Source ID |
2506
+ | `<param_id>` | float | Plugin parameter — `address` must be `channel_id::plugin_id` or `master::plugin_id`, `property` is the numeric param ID |
2357
2507
 
2358
2508
  **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.
2359
2509
 
@@ -2379,11 +2529,11 @@ client.addSubscription(sesame.v1.common.EventTopic.EVENT_TOPIC_TRANSPORT, callba
2379
2529
  client.addSubscription(sesame.v1.common.EventTopic.EVENT_TOPIC_JOB, callback);
2380
2530
  ```
2381
2531
 
2382
- | Topic | Event type | When fired |
2383
- |-------|-----------|------------|
2384
- | `EVENT_TOPIC_ERROR` | ErrorEvent | Engine error |
2385
- | `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 |
2386
- | `EVENT_TOPIC_CALLBACK` | Callback | Client callback command echoed |
2532
+ | Topic | Event type | When fired |
2533
+ |-------|-----------|------------|
2534
+ | `EVENT_TOPIC_ERROR` | ErrorEvent | Engine error |
2535
+ | `EVENT_TOPIC_TRANSPORT` | TransportEvent | Source playback state change |
2536
+ | `EVENT_TOPIC_CALLBACK` | Callback | Client callback command echoed |
2387
2537
  | `EVENT_TOPIC_JOB` | Job | Job lifecycle change + progress (~2 Hz) |
2388
2538
  | `EVENT_TOPIC_RECORDER` | RecorderEvent | Recorder online/offline |
2389
2539