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