@stinkycomputing/sesame-api-client 1.6.0 → 1.8.0

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.
@@ -920,16 +920,61 @@ Timing information for clips.
920
920
 
921
921
 
922
922
 
923
- ### EncoderPreset
923
+ ### EncoderChromaFormat
924
924
 
925
- Encoder preset.
925
+ Encoder chroma subsampling.
926
926
 
927
927
  | Value | Name | Description |
928
928
  |-------|------|-------------|
929
- | 0 | `ENCODER_PRESET_UNSPECIFIED` | Unspecified (invalid) |
930
- | 1 | `ENCODER_PRESET_LOW_LATENCY` | Low-latency tune |
931
- | 2 | `ENCODER_PRESET_LOW_LATENCY_IDR_ONLY` | Low-latency with IDR-only GOP |
932
- | 3 | `ENCODER_PRESET_HIGH_QUALITY` | High-quality tune |
929
+ | 0 | `ENCODER_CHROMA_FORMAT_420` | 4:2:0 (default) |
930
+ | 1 | `ENCODER_CHROMA_FORMAT_444` | 4:4:4 (H264/HEVC only) |
931
+
932
+
933
+ ### EncoderMultipass
934
+
935
+ Encoder multipass mode.
936
+
937
+ | Value | Name | Description |
938
+ |-------|------|-------------|
939
+ | 0 | `ENCODER_MULTIPASS_DISABLED` | Single pass |
940
+ | 1 | `ENCODER_MULTIPASS_QUARTER_RESOLUTION` | First pass at quarter resolution |
941
+ | 2 | `ENCODER_MULTIPASS_FULL_RESOLUTION` | First pass at full resolution |
942
+
943
+
944
+ ### EncoderProfile
945
+
946
+ Encoder profile. Codec-specific; invalid combinations fall back to the codec default.
947
+
948
+ | Value | Name | Description |
949
+ |-------|------|-------------|
950
+ | 0 | `ENCODER_PROFILE_AUTO` | Codec default (H264/AV1: baseline/main, HEVC: main) |
951
+ | 1 | `ENCODER_PROFILE_BASELINE` | H264 baseline |
952
+ | 2 | `ENCODER_PROFILE_MAIN` | Main profile |
953
+ | 3 | `ENCODER_PROFILE_MAIN10` | HEVC main10 |
954
+ | 4 | `ENCODER_PROFILE_HIGH` | H264 high |
955
+
956
+
957
+ ### EncoderRateControl
958
+
959
+ Encoder rate control mode.
960
+
961
+ | Value | Name | Description |
962
+ |-------|------|-------------|
963
+ | 0 | `ENCODER_RATE_CONTROL_UNSPECIFIED` | Unspecified: treated as CBR |
964
+ | 1 | `ENCODER_RATE_CONTROL_CBR` | Constant bitrate |
965
+ | 2 | `ENCODER_RATE_CONTROL_VBR` | Variable bitrate |
966
+
967
+
968
+ ### EncoderTuning
969
+
970
+ Encoder tuning (NVENC tuning info).
971
+
972
+ | Value | Name | Description |
973
+ |-------|------|-------------|
974
+ | 0 | `ENCODER_TUNING_UNSPECIFIED` | Unspecified: treated as ultra low latency |
975
+ | 1 | `ENCODER_TUNING_ULTRA_LOW_LATENCY` | Ultra low latency tune |
976
+ | 2 | `ENCODER_TUNING_LOW_LATENCY` | Low latency tune |
977
+ | 3 | `ENCODER_TUNING_HIGH_QUALITY` | High quality tune |
933
978
 
934
979
 
935
980
  ### EncoderType
@@ -969,6 +1014,17 @@ Recorder type.
969
1014
  | 2 | `RECORDER_TYPE_CLIPS` | Clip recorder; not continuously recording, only ingested frames are persisted |
970
1015
 
971
1016
 
1017
+ ### TimecodeMode
1018
+
1019
+ Timecode embedding mode for encoded streams (SEI/metadata OBU).
1020
+
1021
+ | Value | Name | Description |
1022
+ |-------|------|-------------|
1023
+ | 0 | `TIMECODE_MODE_UNSPECIFIED` | No timecode embedded |
1024
+ | 1 | `TIMECODE_MODE_WALLCLOCK` | Composite-time wallclock (identical across outputs of the same frame) |
1025
+ | 2 | `TIMECODE_MODE_SOURCE` | Timecode published by the source in timecode_source_id (e.g. Decklink RP188 or SDI ingress wallclock) |
1026
+
1027
+
972
1028
  ### DecklinkOutputConfig
973
1029
 
974
1030
  Decklink output configuration.
@@ -979,6 +1035,8 @@ Decklink output configuration.
979
1035
  | `device_index` | uint32 | Decklink device index |
980
1036
  | `video_format` | sesame.v1.common.VideoFormat | Video format |
981
1037
  | `key_and_fill` | bool | Key and fill mode |
1038
+ | `timecode_mode` | TimecodeMode | RP188 timecode embedding mode for SDI output |
1039
+ | `timecode_source_id` | string | Source ID providing timecode when timecode_mode == SOURCE |
982
1040
 
983
1041
 
984
1042
  ### EncodedMoqOutputConfig
@@ -1070,12 +1128,14 @@ Encoded output configuration (WebSocket, SRT, MoQ).
1070
1128
  | Field | Type | Description |
1071
1129
  |-------|------|-------------|
1072
1130
  | `codec` | sesame.v1.common.CodecType | Encoder codec |
1073
- | `preset` | EncoderPreset | Encoder preset |
1074
1131
  | `bitrate_kbps` | uint32 | Bitrate in kbps |
1075
1132
  | `keyframe_interval` | uint32 | GOP length in frames (0 = codec/preset default) |
1076
1133
  | `width` | uint32 | Video width |
1077
1134
  | `height` | uint32 | Video height |
1078
1135
  | `fps` | float | Video framerate |
1136
+ | `timecode_mode` | TimecodeMode | Timecode embedding mode |
1137
+ | `timecode_source_id` | string | Source ID providing timecode when timecode_mode == SOURCE |
1138
+ | `settings` | EncoderSettings | Explicit encoder settings |
1079
1139
 
1080
1140
 
1081
1141
  ### EncoderRemoveRequest
@@ -1088,6 +1148,31 @@ Request to remove a shared encoder resource.
1088
1148
  | `id` | string | Encoder ID to remove |
1089
1149
 
1090
1150
 
1151
+ ### EncoderSettings
1152
+
1153
+ Explicit encoder settings. The client always sends the full set; named presets
1154
+ exist only client-side as bundles of these values.
1155
+
1156
+
1157
+ | Field | Type | Description |
1158
+ |-------|------|-------------|
1159
+ | `tuning` | EncoderTuning | NVENC tuning info |
1160
+ | `effort` | uint32 | Speed/quality effort 1-7 (1 = fastest, 7 = best quality, 0 = 4); maps to NVENC presets P1-P7 |
1161
+ | `rate_control` | EncoderRateControl | Rate control mode |
1162
+ | `max_bitrate_kbps` | uint32 | Max bitrate in kbps (0 = auto: bitrate for CBR, 2x bitrate for VBR) |
1163
+ | `profile` | EncoderProfile | Codec profile |
1164
+ | `bframes` | uint32 | Consecutive B frames between references (0 = none) |
1165
+ | `idr_only` | bool | Encode every frame as an IDR (overrides GOP and bframes) |
1166
+ | `spatial_aq` | bool | Spatial adaptive quantization |
1167
+ | `multipass` | EncoderMultipass | Multipass encoding mode |
1168
+ | `lookahead_depth` | uint32 | Rate-control lookahead in frames (0 = off, adds latency) |
1169
+ | `zero_reorder_delay` | bool | Emit frames in encode order (no reordering delay) |
1170
+ | `bit_depth` | uint32 | Output bit depth: 0 or 8 = 8-bit, 10 = 10-bit (HEVC/AV1 only) |
1171
+ | `chroma_format` | EncoderChromaFormat | Chroma subsampling |
1172
+ | `output_aud` | bool | Emit access unit delimiters (H264/HEVC) |
1173
+ | `level` | string | Codec level as "major.minor" (empty or "auto" = codec default, e.g. "5.1") |
1174
+
1175
+
1091
1176
  ### EncoderStatus
1092
1177
 
1093
1178
  Encoder status information.
@@ -1100,6 +1185,7 @@ Encoder status information.
1100
1185
  | `state` | sesame.v1.common.ConnectionState | Connection/lifecycle state |
1101
1186
  | `msg` | optional string | Error message (typically when state == ERROR) |
1102
1187
  | `composition_id` | string | Compositor ID being encoded |
1188
+ | `dropped_frames` | uint32 | Frames skipped because the encoder fell behind the renderer |
1103
1189
 
1104
1190
 
1105
1191
  ### EncoderUpdateRequest
@@ -1532,6 +1618,17 @@ that have a binding from this node+metadataId.
1532
1618
  | `data_type` | sesame.v1.wire.DataType | Wire data type (default DATA_TYPE_JSON for backward compat) |
1533
1619
 
1534
1620
 
1621
+ ### SystemOperationRequest
1622
+
1623
+ System maintenance operations. One oneof entry per operation keeps the
1624
+ single RPC extensible.
1625
+
1626
+
1627
+ | Field | Type | Description |
1628
+ |-------|------|-------------|
1629
+ | `reset_frame_drops` | sesame.v1.common.Empty | Resets the engine's dropped-frame counter shown in status. |
1630
+
1631
+
1535
1632
  ### SesameAPIService
1536
1633
 
1537
1634
  Main Sesame API service.
@@ -1551,6 +1648,7 @@ Main Sesame API service.
1551
1648
  | `RequestKeyframe` | .sesame.v1.outputs.KeyframeRequest | .sesame.v1.common.Empty | Request keyframe from encoder. |
1552
1649
  | `RequestIODeviceList` | .sesame.v1.common.Empty | .sesame.v1.status.IODeviceListResponse | Get list of I/O devices. |
1553
1650
  | `PublishMetadata` | PublishMetadataRequest | .sesame.v1.common.Empty | Publish a JSON metadata payload to all output transports bound to this node+metadataId. Used by apps (e.g. Snigel) to emit state that should be forwarded on MoQ/WebSocket outputs. |
1651
+ | `RequestSystemOperation` | SystemOperationRequest | .sesame.v1.common.Empty | System maintenance operations (counter resets and similar). |
1554
1652
 
1555
1653
 
1556
1654
  ---
@@ -1599,6 +1697,17 @@ Signal generator audio program.
1599
1697
  | 3 | `SIGNAL_GENERATOR_AUDIO_MODE_SILENCE` | Silence |
1600
1698
 
1601
1699
 
1700
+ ### SignalGeneratorTimecodeMode
1701
+
1702
+ Signal generator timecode program.
1703
+
1704
+ | Value | Name | Description |
1705
+ |-------|------|-------------|
1706
+ | 0 | `SIGNAL_GENERATOR_TIMECODE_MODE_NONE` | No timecode published |
1707
+ | 1 | `SIGNAL_GENERATOR_TIMECODE_MODE_FREE_RUN` | Deterministic counter from timecode_start_frame; freeze() freezes it |
1708
+ | 2 | `SIGNAL_GENERATOR_TIMECODE_MODE_TIME_OF_DAY` | System clock time of day |
1709
+
1710
+
1602
1711
  ### SignalGeneratorVideoPattern
1603
1712
 
1604
1713
  Signal generator video test pattern.
@@ -1785,6 +1894,8 @@ Signal generator source configuration.
1785
1894
  | `freeze` | bool | Freeze the moving lip-sync overlay at its sync point (static test pattern) |
1786
1895
  | `video_pattern` | SignalGeneratorVideoPattern | Video test pattern |
1787
1896
  | `audio_mode` | SignalGeneratorAudioMode | Audio program |
1897
+ | `timecode_mode` | SignalGeneratorTimecodeMode | Timecode program |
1898
+ | `timecode_start_frame` | uint32 | FREE_RUN start value (frames since midnight at engine rate) |
1788
1899
 
1789
1900
 
1790
1901
  ### SourceAddRequest
@@ -2122,6 +2233,9 @@ Provides overall system health and performance metrics.
2122
2233
  | `gpu_decoder_utilization` | uint32 | NVDEC utilization (0-100%) |
2123
2234
  | `gpu_name` | string | GPU model name |
2124
2235
  | `vma_bytes` | uint64 | Vulkan Memory Allocator total bytes |
2236
+ | `version` | string | Server version string |
2237
+ | `nvenc_sessions` | uint32 | Open NVENC encoder sessions |
2238
+ | `nvdec_sessions` | uint32 | Open NVDEC decoder sessions |
2125
2239
 
2126
2240
 
2127
2241
  ---
@@ -2437,6 +2551,7 @@ Properties are set via `PropertySetRequest` or animated via `PropertyAnimateRequ
2437
2551
  |----------|------|-------------|
2438
2552
  | `source` | string | Source ID to display |
2439
2553
  | `audio_meter_source` | string | Pipe-delimited mixer IDs for audio meters |
2554
+ | `audio_meter_count` | float | Number of audio meters to display (0 = automatic) |
2440
2555
  | `show_audio_meter` | bool | Show audio meters |
2441
2556
  | `show_border` | bool | Show border |
2442
2557
  | `show_label_bg` | bool | Show label background |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stinkycomputing/sesame-api-client",
3
- "version": "1.6.0",
3
+ "version": "1.8.0",
4
4
  "description": "Sesame API client library with protobuf definitions and command list helpers",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",