@overwolf/ow-electron-packages-types 1.1.8 → 1.1.9
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/package.json +1 -1
- package/types.d.ts +256 -7
package/package.json
CHANGED
package/types.d.ts
CHANGED
|
@@ -242,6 +242,21 @@ type AudioDeviceType = 'input' | 'output';
|
|
|
242
242
|
* Note that older `jim_*` encoder types were deprecated as of OBS version 0.31.0
|
|
243
243
|
* and have been replaced by the `obs_nvenc_*` family of encoders.
|
|
244
244
|
*
|
|
245
|
+
* | Value | Description |
|
|
246
|
+
* | ---------------------- | ---------------------------------------------------------------------------------- |
|
|
247
|
+
* | `'ffmpeg_svt_av1'` | Software AV1 encoder using Intel's SVT-AV1 via FFmpeg. |
|
|
248
|
+
* | `'ffmpeg_aom_av1'` | Software AV1 encoder using AOMedia's libaom via FFmpeg. |
|
|
249
|
+
* | `'obs_x264'` | Software H.264 encoder using the x264 library (CPU-based). |
|
|
250
|
+
* | `'h264_texture_amf'` | Hardware-accelerated H.264 encoder using AMD's AMF with texture input. |
|
|
251
|
+
* | `'h265_texture_amf'` | Hardware-accelerated H.265 (HEVC) encoder using AMD's AMF with texture input. |
|
|
252
|
+
* | `'av1_texture_amf'` | Hardware-accelerated AV1 encoder using AMD's AMF with texture input. |
|
|
253
|
+
* | `'obs_qsv11_v2'` | Hardware-accelerated H.264 encoder using Intel's QSV 1.1 API. |
|
|
254
|
+
* | `'obs_qsv11_hevc'` | Hardware-accelerated H.265 (HEVC) encoder using Intel's QSV 1.1 API. |
|
|
255
|
+
* | `'obs_qsv11_av1'` | Hardware-accelerated AV1 encoder using Intel's QSV 1.1 API. |
|
|
256
|
+
* | `'obs_nvenc_h264_tex'` | Hardware-accelerated H.264 encoder using NVIDIA's NVENC with texture input. |
|
|
257
|
+
* | `'obs_nvenc_hevc_tex'` | Hardware-accelerated H.265 (HEVC) encoder using NVIDIA's NVENC with texture input. |
|
|
258
|
+
* | `'obs_nvenc_av1_tex'` | Hardware-accelerated AV1 encoder using NVIDIA's NVENC with texture input. |
|
|
259
|
+
*
|
|
245
260
|
* @remarks
|
|
246
261
|
* This type includes software-based encoders (like `obs_x264`) and
|
|
247
262
|
* hardware-accelerated encoders for various platforms (e.g., NVENC, QSV, AMF).
|
|
@@ -306,6 +321,17 @@ type kSupportedEncodersTypes =
|
|
|
306
321
|
* Typically used for exporting or streaming audio content in different formats.
|
|
307
322
|
* Each variant maps to a specific FFmpeg audio codec.
|
|
308
323
|
*
|
|
324
|
+
* | Value | Description |
|
|
325
|
+
* | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
|
326
|
+
* | `'ffmpeg_aac'` | AAC (Advanced Audio Coding) encoder using FFmpeg. Widely supported across platforms; good balance of quality and compression. |
|
|
327
|
+
* | `'ffmpeg_opus'` | Opus encoder using FFmpeg. High-efficiency codec commonly used for voice and streaming (e.g., Discord, WebRTC). |
|
|
328
|
+
* | `'ffmpeg_pcm_s16le'` | PCM (Pulse-code Modulation) 16-bit signed little-endian. Uncompressed audio with moderate file size; excellent compatibility. |
|
|
329
|
+
* | `'ffmpeg_pcm_s24le'` | PCM 24-bit signed little-endian. Higher-resolution uncompressed audio format, often used in professional audio applications. |
|
|
330
|
+
* | `'ffmpeg_pcm_f32le'` | PCM 32-bit floating-point little-endian. Offers high dynamic range; used for precision in audio processing workflows. |
|
|
331
|
+
* | `'ffmpeg_alac'` | Apple Lossless Audio Codec (ALAC) encoder via FFmpeg. Provides lossless compression; typically used in the Apple ecosystem. |
|
|
332
|
+
* | `'ffmpeg_flac'` | FLAC (Free Lossless Audio Codec) encoder via FFmpeg. Popular open-source lossless format with good compression and widespread support. |
|
|
333
|
+
* | `string` | Custom or unknown encoder type represented as a string. |
|
|
334
|
+
*
|
|
309
335
|
* @remarks
|
|
310
336
|
* If a custom encoder is used that is not in this predefined list, it can be specified as a `string`.
|
|
311
337
|
*
|
|
@@ -391,6 +417,16 @@ type kSampleRate441kHz = 44100;
|
|
|
391
417
|
* These layout identifiers correspond to common channel arrangements used in audio output systems.
|
|
392
418
|
* They are typically used to configure spatial audio or multichannel playback environments.
|
|
393
419
|
*
|
|
420
|
+
* | Value | Description |
|
|
421
|
+
* | -------------------- | ----------------------------------------------------------------------------------------------- |
|
|
422
|
+
* | `'SPEAKERS_MONO'` | Mono output — single audio channel. |
|
|
423
|
+
* | `'SPEAKERS_STEREO'` | Stereo output — standard left and right channels. |
|
|
424
|
+
* | `'SPEAKERS_2POINT1'` | 2.1 output — stereo plus one subwoofer (LFE) channel. |
|
|
425
|
+
* | `'SPEAKERS_4POINT0'` | 4.0 output — quadraphonic layout with front and rear left/right channels. |
|
|
426
|
+
* | `'SPEAKERS_4POINT1'` | 4.1 output — quadraphonic layout plus one subwoofer channel. |
|
|
427
|
+
* | `'SPEAKERS_5POINT1'` | 5.1 surround — front left/right, center, rear left/right, and subwoofer (LFE). |
|
|
428
|
+
* | `'SPEAKERS_7POINT1'` | 7.1 surround — front left/right, center, rear left/right, side left/right, and subwoofer (LFE). |
|
|
429
|
+
*
|
|
394
430
|
* @example
|
|
395
431
|
* const layout: kSpeakerLayout = 'SPEAKERS_5POINT1';
|
|
396
432
|
*/
|
|
@@ -422,6 +458,7 @@ type kSpeakerLayout =
|
|
|
422
458
|
/**
|
|
423
459
|
* 7.1 surround — front left/right, center, rear left/right, side left/right, and subwoofer (LFE).
|
|
424
460
|
*/
|
|
461
|
+
| 'SPEAKERS_7POINT1';
|
|
425
462
|
|
|
426
463
|
|
|
427
464
|
/**
|
|
@@ -446,6 +483,18 @@ type kSpeakerLayout =
|
|
|
446
483
|
* Each value corresponds to a specific audio track using a bitmask format.
|
|
447
484
|
* You can combine tracks using bitwise OR operations. For example, `Track1 | Track2` is `3`.
|
|
448
485
|
*
|
|
486
|
+
* | Value | Description |
|
|
487
|
+
* | -------- | ------------------------------------------- |
|
|
488
|
+
* | `0` | No audio track selected. |
|
|
489
|
+
* | `1` | Select audio Track 1. |
|
|
490
|
+
* | `2` | Select audio Track 2. |
|
|
491
|
+
* | `4` | Select audio Track 3. |
|
|
492
|
+
* | `8` | Select audio Track 4. |
|
|
493
|
+
* | `16` | Select audio Track 5. |
|
|
494
|
+
* | `32` | Select audio Track 6. |
|
|
495
|
+
* | `0xff` | Select all available tracks (bitmask 0xff). |
|
|
496
|
+
* | `number` | Any custom or combined track. |
|
|
497
|
+
*
|
|
449
498
|
* @remarks
|
|
450
499
|
* - This format is useful when routing or encoding specific audio channels.
|
|
451
500
|
* - The `number` type is included to allow for custom or combined values not explicitly listed.
|
|
@@ -499,6 +548,13 @@ type AudioTracks =
|
|
|
499
548
|
* These values determine the underlying capture technology used for grabbing screen content.
|
|
500
549
|
* Selection may depend on hardware support, performance, or compatibility.
|
|
501
550
|
*
|
|
551
|
+
* | Value | Description |
|
|
552
|
+
* | ---------- | ------------------------------------------------------------------------------------------------------- |
|
|
553
|
+
* | `'Auto'` | Automatically select the best capture method based on the system's capabilities. |
|
|
554
|
+
* | `'DXGI'` | Use DXGI (DirectX Graphics Infrastructure) for capturing. Offers high performance on supported systems. |
|
|
555
|
+
* | `'BitBlt'` | Use BitBlt (Bit Block Transfer), a legacy GDI-based capture method. May be less performant. |
|
|
556
|
+
* | `'WGC'` | Use Windows Graphics Capture (WGC), available on Windows 10+ with improved performance and stability. |
|
|
557
|
+
*
|
|
502
558
|
* @example
|
|
503
559
|
* const captureType: DisplayCaptureType = "DXGI";
|
|
504
560
|
*/
|
|
@@ -522,6 +578,12 @@ type DisplayCaptureType =
|
|
|
522
578
|
|
|
523
579
|
/**
|
|
524
580
|
* Type of window capture method.
|
|
581
|
+
*
|
|
582
|
+
* | Value | Description |
|
|
583
|
+
* | ---------- | ----------------------------------------------------------------------------------------------------- |
|
|
584
|
+
* | `'Auto'` | Automatically select the best window capture method. |
|
|
585
|
+
* | `'BitBlt'` | Use BitBlt (Bit Block Transfer), a legacy GDI-based capture method. May be less performant. |
|
|
586
|
+
* | `'WGC'` | Use Windows Graphics Capture (WGC), available on Windows 10+ with improved performance and stability. |
|
|
525
587
|
*/
|
|
526
588
|
type WindowCaptureType =
|
|
527
589
|
/**
|
|
@@ -542,6 +604,14 @@ type WindowCaptureType =
|
|
|
542
604
|
*
|
|
543
605
|
* These source types determine what part of the system the capture engine will target.
|
|
544
606
|
*
|
|
607
|
+
* | Value | Description |
|
|
608
|
+
* | ----------- | ----------------------------------------------------------------------------- |
|
|
609
|
+
* | `'Display'` | Capture the entire display (monitor/screen). |
|
|
610
|
+
* | `'Game'` | Capture a game process or window, often using optimized game capture methods. |
|
|
611
|
+
* | `'Window'` | Capture a specific application window. |
|
|
612
|
+
* | `'Image'` | Capture a specific image. |
|
|
613
|
+
* | `'Color'` | Capture a solid color screen. |
|
|
614
|
+
*
|
|
545
615
|
* @example
|
|
546
616
|
* const source: CaptureSourceType = 'Game';
|
|
547
617
|
*/
|
|
@@ -1025,6 +1095,18 @@ interface RecordingInformation {
|
|
|
1025
1095
|
* Each format may offer different tradeoffs in terms of compatibility, streaming support,
|
|
1026
1096
|
* compression, or support for advanced features like fragmentation or hybrid modes.
|
|
1027
1097
|
*
|
|
1098
|
+
* | Value | Description |
|
|
1099
|
+
* | ------------------ | -------------------------------------------------------------------------------------- |
|
|
1100
|
+
* | `'fragmented_mp4'` | Fragmented MP4 — Ideal for adaptive streaming and progressive download scenarios. |
|
|
1101
|
+
* | `'fragmented_mov'` | Fragmented MOV — Similar to fragmented MP4 but uses the .mov container format. |
|
|
1102
|
+
* | `'mp4'` | Standard MP4 — Widely supported container for high-quality compressed video and audio. |
|
|
1103
|
+
* | `'flv'` | FLV — Flash Video format, legacy support for some live streaming services. |
|
|
1104
|
+
* | `'mkv'` | MKV — Matroska container supporting multiple audio, video, and subtitle tracks. |
|
|
1105
|
+
* | `'mov'` | MOV — Apple's QuickTime format, often used in macOS video workflows. |
|
|
1106
|
+
* | `'mpegts'` | MPEG-TS — Transport stream format suitable for broadcasting or continuous streaming. |
|
|
1107
|
+
* | `'hls'` | HLS — HTTP Live Streaming; produces a playlist with segmented video chunks. |
|
|
1108
|
+
* | `'hybrid_mp4'` | Hybrid MP4 — A format combining fragmented and standard MP4 traits for compatibility. |
|
|
1109
|
+
*
|
|
1028
1110
|
* @example
|
|
1029
1111
|
* const format: kFileFormat = 'mp4';
|
|
1030
1112
|
*/
|
|
@@ -1080,6 +1162,17 @@ type kFileFormat =
|
|
|
1080
1162
|
* Each format defines how color and luminance information is represented in memory.
|
|
1081
1163
|
* Choice of format can affect performance, quality, and hardware compatibility.
|
|
1082
1164
|
*
|
|
1165
|
+
* | Value | Description |
|
|
1166
|
+
* | -------- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
1167
|
+
* | `'NV12'` | 8-bit YUV format with planar Y and interleaved UV planes. Commonly used in hardware-accelerated video processing. |
|
|
1168
|
+
* | `'I420'` | 8-bit planar YUV format with 4:2:0 chroma subsampling. Widely supported and efficient for compression. |
|
|
1169
|
+
* | `'I444'` | 8-bit planar YUV format with full 4:4:4 chroma (no subsampling). Offers highest color fidelity, useful for post-production. |
|
|
1170
|
+
* | `'P010'` | 10-bit packed YUV 4:2:0 format. Suitable for high dynamic range (HDR) workflows. |
|
|
1171
|
+
* | `'I010'` | 10-bit planar YUV 4:2:0 format. Provides better color depth while retaining planar layout. |
|
|
1172
|
+
* | `'P216'` | 16-bit packed YUV 4:2:2 format. Offers higher color resolution, used in professional capture scenarios. |
|
|
1173
|
+
* | `'P416'` | 16-bit packed YUV 4:4:4 format. Ideal for precise color reproduction and advanced editing. |
|
|
1174
|
+
* | `'BGRA'` | 8-bit packed RGB format with alpha channel. Used in real-time rendering and desktop capture. |
|
|
1175
|
+
*
|
|
1083
1176
|
* @example
|
|
1084
1177
|
* const colorFormat: kVideoColorFormat = 'NV12';
|
|
1085
1178
|
*/
|
|
@@ -1140,6 +1233,14 @@ type kVideoColorFormat =
|
|
|
1140
1233
|
* used in video encoding pipelines. Choosing the appropriate spec impacts color
|
|
1141
1234
|
* accuracy and display compatibility, especially for HDR or broadcast workflows.
|
|
1142
1235
|
*
|
|
1236
|
+
* | Value | Description |
|
|
1237
|
+
* | ----------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
1238
|
+
* | `'sRGB'` | Standard RGB color space used for web content and computer monitors. Matches the typical display profile of non-HDR screens. |
|
|
1239
|
+
* | `'709'` | Rec. 709 color space used for HDTV and most modern video production. Offers better color range and gamma than older standards. |
|
|
1240
|
+
* | `'601'` | Rec. 601 color space used in standard-definition television (SDTV). Suitable for legacy content or older broadcast systems. |
|
|
1241
|
+
* | `'2100PQ'` | Rec. 2100 color spec using PQ (Perceptual Quantizer) transfer function. Used for HDR10 and other HDR video delivery standards. |
|
|
1242
|
+
* | `'2100HLG'` | Rec. 2100 color spec using HLG (Hybrid Log-Gamma) transfer function. HDR-compatible and backward-compatible with SDR displays. |
|
|
1243
|
+
*
|
|
1143
1244
|
* @example
|
|
1144
1245
|
* const colorSpec: kVideoColorSpec = '709';
|
|
1145
1246
|
*/
|
|
@@ -1181,6 +1282,11 @@ type kVideoColorSpec =
|
|
|
1181
1282
|
* and contrast. It is important to match the color range to the target display
|
|
1182
1283
|
* or encoder to avoid washed-out or crushed colors.
|
|
1183
1284
|
*
|
|
1285
|
+
* | Value | Description |
|
|
1286
|
+
* | ----------- | -------------------------------------------------------------------------------------------------------- |
|
|
1287
|
+
* | `'Partial'` | Uses limited color range (typically 16–235 for luma), common in broadcast and traditional video content. |
|
|
1288
|
+
* | `'Full'` | Uses the full color range (0–255), typical for computer monitors and PC gaming content. |
|
|
1289
|
+
*
|
|
1184
1290
|
* @example
|
|
1185
1291
|
* const range: kVideoColorRange = 'Full';
|
|
1186
1292
|
*/
|
|
@@ -1204,6 +1310,16 @@ type kVideoColorRange =
|
|
|
1204
1310
|
* affecting quality, file size, and encoding performance.
|
|
1205
1311
|
* These values are specific to AMD's video encoding capabilities.
|
|
1206
1312
|
*
|
|
1313
|
+
* | Value | Description |
|
|
1314
|
+
* | ----------- | ----------------------------------------------------------------------------------------------------------------------- |
|
|
1315
|
+
* | `'CBR'` | Constant Bitrate. Maintains a fixed bitrate for consistent file size and streaming bandwidth. |
|
|
1316
|
+
* | `'CQP'` | Constant Quantization Parameter. Uses a fixed quantizer value, offering consistent visual quality but variable bitrate. |
|
|
1317
|
+
* | `'VBR'` | Variable Bitrate. Bitrate adjusts based on complexity of the content, balancing quality and size. |
|
|
1318
|
+
* | `'VBR_LAT'` | Variable Bitrate with low-latency tuning. Optimized for low-latency scenarios like real-time streaming. |
|
|
1319
|
+
* | `'QVBR'` | Quality-defined Variable Bitrate. Maintains a target visual quality level rather than a specific bitrate. |
|
|
1320
|
+
* | `'HQVBR'` | High-Quality Variable Bitrate. Prioritizes visual fidelity while allowing variable bitrate. |
|
|
1321
|
+
* | `'HQCBR'` | High-Quality Constant Bitrate. Delivers consistent bitrate while maximizing encoding quality. |
|
|
1322
|
+
*
|
|
1207
1323
|
* @example
|
|
1208
1324
|
* const rateControl: kAMDEncoderRateControl = 'CBR';
|
|
1209
1325
|
*/
|
|
@@ -1256,6 +1372,12 @@ type kAMDEncoderRateControl =
|
|
|
1256
1372
|
* These presets control the balance between encoding speed and visual quality.
|
|
1257
1373
|
* Useful when tuning encoder behavior for different use cases such as streaming or local recording.
|
|
1258
1374
|
*
|
|
1375
|
+
* | Value | Description |
|
|
1376
|
+
* | ------------ | ----------------------------------------------------------------------------------------------------------------- |
|
|
1377
|
+
* | `'quality'` | Prioritizes the best possible image quality. May result in slower encoding speeds. |
|
|
1378
|
+
* | `'balanced'` | Offers a tradeoff between quality and speed. Suitable for most general-purpose use cases. |
|
|
1379
|
+
* | `'speed'` | Optimized for fastest encoding performance. May reduce image quality in favor of lower latency and CPU/GPU usage. |
|
|
1380
|
+
*
|
|
1259
1381
|
* @example
|
|
1260
1382
|
* const preset: kAMDEncoderPreset = 'balanced';
|
|
1261
1383
|
*/
|
|
@@ -1314,6 +1436,12 @@ type kAMDEncoderProfileAV1 = 'main';
|
|
|
1314
1436
|
* impacting compatibility, quality, and efficiency. This type includes standard H.264 profiles,
|
|
1315
1437
|
* as well as the AV1 `main` profile reused for structural consistency.
|
|
1316
1438
|
*
|
|
1439
|
+
* | Value | Description |
|
|
1440
|
+
* | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1441
|
+
* | `kAMDEncoderProfileAV1` (`'main'`) | The AV1 main profile reused here for structural consistency. Typically not used with H.264 but may appear in shared configuration types. |
|
|
1442
|
+
* | `'high'` | Offers the best visual quality and compression efficiency. Commonly used for high-definition video applications. |
|
|
1443
|
+
* | `'baseline'` | Provides the most basic H.264 features. Suitable for low-complexity or real-time encoding scenarios. |
|
|
1444
|
+
*
|
|
1317
1445
|
* @example
|
|
1318
1446
|
* const profile: kAMDEncoderProfile264 = 'high';
|
|
1319
1447
|
*
|
|
@@ -1344,6 +1472,13 @@ type kAMDEncoderProfile264 =
|
|
|
1344
1472
|
* Rate control modes define how the encoder manages bitrate and quality.
|
|
1345
1473
|
* Choosing the appropriate mode depends on the desired balance between quality, file size, and real-time performance.
|
|
1346
1474
|
*
|
|
1475
|
+
* | Value | Description |
|
|
1476
|
+
* | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
1477
|
+
* | `'CBR'` | Constant Bitrate. Maintains a consistent bitrate throughout the recording. Useful for streaming and bandwidth-limited scenarios. |
|
|
1478
|
+
* | `'CQP'` | Constant Quantization Parameter. Prioritizes visual quality by keeping a consistent quantization level. File sizes may vary significantly. |
|
|
1479
|
+
* | `'VBR'` | Variable Bitrate. Adjusts bitrate dynamically based on scene complexity. Provides better compression but less predictability in file size. |
|
|
1480
|
+
* | `'Lossless'` | Encodes without compression loss. Produces very high-quality output at the cost of large file sizes. |
|
|
1481
|
+
*
|
|
1347
1482
|
* @example
|
|
1348
1483
|
* const rateControl: kNVENCEncoderRateControl = 'CQP';
|
|
1349
1484
|
*/
|
|
@@ -1378,6 +1513,12 @@ type kNVENCEncoderRateControl =
|
|
|
1378
1513
|
* Multipass encoding improves visual quality by analyzing the video in multiple passes
|
|
1379
1514
|
* to better allocate bitrate and compression decisions.
|
|
1380
1515
|
*
|
|
1516
|
+
* | Value | Description |
|
|
1517
|
+
* | ------------ | ----------------------------------------------------------------------------------------------------------------------------- |
|
|
1518
|
+
* | `'qres'` | Quarter-resolution first pass followed by full-resolution encoding. Offers a good balance between speed and improved quality. |
|
|
1519
|
+
* | `'fullres'` | Full-resolution multipass encoding. Produces the highest quality results but increases encoding time. |
|
|
1520
|
+
* | `'disabled'` | Multipass is turned off. Results in faster encoding at the potential cost of lower quality. |
|
|
1521
|
+
*
|
|
1381
1522
|
* @example
|
|
1382
1523
|
* const multipass: kNVENCEncoderMultipass = 'qres';
|
|
1383
1524
|
*/
|
|
@@ -1406,6 +1547,12 @@ type kNVENCEncoderMultipass =
|
|
|
1406
1547
|
* Tuning presets allow the encoder to optimize for specific use cases like high quality or low latency,
|
|
1407
1548
|
* adjusting internal settings accordingly.
|
|
1408
1549
|
*
|
|
1550
|
+
* | Value | Description |
|
|
1551
|
+
* | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
1552
|
+
* | `'hq'` | High Quality. Prioritizes visual quality over latency. Ideal for recording or broadcasting when minimal delay is not critical. |
|
|
1553
|
+
* | `'ll'` | Low Latency. Balances quality and latency. Suitable for interactive streaming and real-time applications. |
|
|
1554
|
+
* | `'ull'` | Ultra Low Latency. Minimizes delay as much as possible. Best used in competitive gaming or remote control scenarios. |
|
|
1555
|
+
*
|
|
1409
1556
|
* @example
|
|
1410
1557
|
* const tuning: kNVENCEncoderTuning = 'll';
|
|
1411
1558
|
*/
|
|
@@ -1441,6 +1588,12 @@ type kNVENCEncoderProfile = 'main';
|
|
|
1441
1588
|
* These profiles determine the features used in encoding and the compatibility of the resulting stream or file.
|
|
1442
1589
|
* This type extends the base `kNVENCEncoderProfile` and includes commonly used H.264 profiles.
|
|
1443
1590
|
*
|
|
1591
|
+
* | Value | Description |
|
|
1592
|
+
* | --------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
1593
|
+
* | `kNVENCEncoderProfile` (`'main'`) | Base set of encoder profiles (e.g., `main`). May include additional shared or AV1-specific variants. |
|
|
1594
|
+
* | `'high'` | Supports the most advanced H.264 features. Recommended for high-definition video with better compression efficiency. |
|
|
1595
|
+
* | `'baseline'` | Basic H.264 profile with minimal compression features. Best for low-latency and real-time video applications. |
|
|
1596
|
+
*
|
|
1444
1597
|
* @example
|
|
1445
1598
|
* const profile: kNVENCEncoderProfile264 = 'high';
|
|
1446
1599
|
*
|
|
@@ -1471,6 +1624,11 @@ type kNVENCEncoderProfile264 =
|
|
|
1471
1624
|
* These profiles determine the compression capabilities, color depth, and compatibility of the HEVC stream.
|
|
1472
1625
|
* This type extends `kNVENCEncoderProfile` and includes 10-bit support via `main10`.
|
|
1473
1626
|
*
|
|
1627
|
+
* | Value | Description |
|
|
1628
|
+
* | --------------------------------- | ---------------------------------------------------------------------------------------- |
|
|
1629
|
+
* | `kNVENCEncoderProfile` (`'main'`) | Base HEVC profile, typically includes `main`. Suitable for standard 8-bit HEVC encoding. |
|
|
1630
|
+
* | `'main10'` | Enables 10-bit color depth for enhanced video quality and HDR compatibility. |
|
|
1631
|
+
*
|
|
1474
1632
|
* @example
|
|
1475
1633
|
* const profile: kNVENCEncoderProfileHEVC = 'main10';
|
|
1476
1634
|
*
|
|
@@ -1494,6 +1652,13 @@ type kNVENCEncoderProfileHEVC =
|
|
|
1494
1652
|
* Rate control modes determine how the encoder manages bitrate and quality over time.
|
|
1495
1653
|
* Each mode offers a different balance between output file size, quality, and encoding speed.
|
|
1496
1654
|
*
|
|
1655
|
+
* | Value | Description |
|
|
1656
|
+
* | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
1657
|
+
* | `'CBR'` | Constant Bitrate. Maintains a fixed bitrate throughout encoding. Useful for streaming where bandwidth predictability is important. |
|
|
1658
|
+
* | `'ABR'` | Average Bitrate. Tries to maintain a target average bitrate across the whole stream. Balances quality and file size over long durations. |
|
|
1659
|
+
* | `'VBR'` | Variable Bitrate. Allows the bitrate to vary depending on frame complexity. Offers better quality at lower file sizes, but less predictable bandwidth usage. |
|
|
1660
|
+
* | `'CRF'` | Constant Rate Factor. Targets a consistent visual quality instead of bitrate. Ideal for scenarios where quality is more important than file size. |
|
|
1661
|
+
*
|
|
1497
1662
|
* @example
|
|
1498
1663
|
* const rateControl: kX264EncoderRateControl = 'CRF';
|
|
1499
1664
|
*/
|
|
@@ -1528,6 +1693,13 @@ type kX264EncoderRateControl =
|
|
|
1528
1693
|
* Encoding profiles define the set of features used for compression and compatibility
|
|
1529
1694
|
* with various playback devices and streaming platforms.
|
|
1530
1695
|
*
|
|
1696
|
+
* | Value | Description |
|
|
1697
|
+
* | ------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
1698
|
+
* | `''` | Default profile. Lets the encoder decide which profile to use automatically. |
|
|
1699
|
+
* | `'baseline'` | Provides basic H.264 features. Suitable for low-complexity, real-time, or legacy device compatibility scenarios. |
|
|
1700
|
+
* | `'main'` | Supports interlaced video and enhanced compression. Recommended for general-purpose encoding with balanced quality and performance. |
|
|
1701
|
+
* | `'high'` | Enables advanced compression features for better video quality. Ideal for HD content, streaming, or high-quality recording. |
|
|
1702
|
+
*
|
|
1531
1703
|
* @example
|
|
1532
1704
|
* const profile: kX264EncoderProfile = 'high';
|
|
1533
1705
|
*/
|
|
@@ -1563,6 +1735,18 @@ type kX264EncoderProfile =
|
|
|
1563
1735
|
* Tuning options help optimize the encoder's performance for specific types of content or use cases.
|
|
1564
1736
|
* These settings adjust internal compression behavior and rate-distortion tradeoffs.
|
|
1565
1737
|
*
|
|
1738
|
+
* | Value | Description |
|
|
1739
|
+
* | --------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
1740
|
+
* | `''` | Default. No tuning applied; encoder uses standard compression behavior. |
|
|
1741
|
+
* | `'film'` | Optimizes for live-action, natural footage. Preserves fine grain and cinematic detail. |
|
|
1742
|
+
* | `'animation'` | Optimizes for animated content. Enhances compression of solid colors and repetitive patterns. |
|
|
1743
|
+
* | `'grain'` | Preserves film grain. Reduces temporal blurring at the cost of larger file sizes. |
|
|
1744
|
+
* | `'stillimage'` | Optimizes for individual image compression. Suitable for slideshow or low-motion content. |
|
|
1745
|
+
* | `'psnr'` | Optimizes for peak signal-to-noise ratio (PSNR). Prioritizes objective video quality metrics. |
|
|
1746
|
+
* | `'ssim'` | Optimizes for structural similarity index (SSIM). Targets better perceptual quality over raw pixel accuracy. |
|
|
1747
|
+
* | `'fastdecode'` | Reduces computational load on decoders. Disables features that are hard to decode quickly. |
|
|
1748
|
+
* | `'zerolatency'` | Minimizes latency for real-time streaming. Reduces buffering and introduces faster frame delivery. |
|
|
1749
|
+
*
|
|
1566
1750
|
* @example
|
|
1567
1751
|
* const tune: kX264EncoderTune = 'animation';
|
|
1568
1752
|
*/
|
|
@@ -1626,6 +1810,19 @@ type kX264EncoderTune =
|
|
|
1626
1810
|
* Faster presets use less CPU but result in lower compression efficiency (larger files),
|
|
1627
1811
|
* while slower presets use more CPU to produce better compression and quality.
|
|
1628
1812
|
*
|
|
1813
|
+
* | Value | Description |
|
|
1814
|
+
* | ------------- | ------------------------------------------------------------------------------------------------------------- |
|
|
1815
|
+
* | `'ultrafast'` | Lowest CPU usage and fastest encoding speed. Produces larger file sizes and lower compression quality. |
|
|
1816
|
+
* | `'superfast'` | Very fast encoding with slightly better compression than `ultrafast`. |
|
|
1817
|
+
* | `'veryfast'` | A good balance between speed and quality. Commonly used default setting. |
|
|
1818
|
+
* | `'faster'` | Slightly slower than `veryfast` with improved compression. |
|
|
1819
|
+
* | `'fast'` | Offers better compression efficiency than `faster` at the cost of more CPU. |
|
|
1820
|
+
* | `'medium'` | Default preset for x264. Balances speed and quality effectively. |
|
|
1821
|
+
* | `'slow'` | Slower encoding for better compression and video quality. |
|
|
1822
|
+
* | `'slower'` | Even better compression at the cost of more processing time. |
|
|
1823
|
+
* | `'veryslow'` | Maximizes compression efficiency and visual quality. Suitable for archival or final delivery. |
|
|
1824
|
+
* | `'placebo'` | Insanely slow with minimal improvement over `veryslow`. Generally not recommended due to diminishing returns. |
|
|
1825
|
+
*
|
|
1629
1826
|
* @example
|
|
1630
1827
|
* const preset: kX264EncoderPreset = 'veryfast';
|
|
1631
1828
|
*/
|
|
@@ -1721,6 +1918,16 @@ type kQuickSyncEncoderProfile264 = kNVENCEncoderProfile264;
|
|
|
1721
1918
|
* Target usage defines a trade-off between encoding speed and output quality.
|
|
1722
1919
|
* Lower TU values result in better quality but slower performance, while higher values favor speed.
|
|
1723
1920
|
*
|
|
1921
|
+
* | Value | Description |
|
|
1922
|
+
* | ------- | --------------------------------------------------- |
|
|
1923
|
+
* | `'TU1'` | Slowest encoding, best possible quality. |
|
|
1924
|
+
* | `'TU2'` | Slower encoding with slightly reduced quality. |
|
|
1925
|
+
* | `'TU3'` | Slow encoding with good quality. |
|
|
1926
|
+
* | `'TU4'` | Balanced setting offering medium quality and speed. |
|
|
1927
|
+
* | `'TU5'` | Fast encoding with reduced quality. |
|
|
1928
|
+
* | `'TU6'` | Faster encoding with further quality tradeoffs. |
|
|
1929
|
+
* | `'TU7'` | Fastest encoding, lowest quality. |
|
|
1930
|
+
*
|
|
1724
1931
|
* @example
|
|
1725
1932
|
* const usage: kQuickSyncTargetUsage = 'TU4'; // Balanced
|
|
1726
1933
|
*/
|
|
@@ -1748,6 +1955,13 @@ type kQuickSyncTargetUsage =
|
|
|
1748
1955
|
*
|
|
1749
1956
|
* Rate control determines how the bitrate is managed during encoding, impacting quality, file size, and performance.
|
|
1750
1957
|
*
|
|
1958
|
+
* | Value | Description |
|
|
1959
|
+
* | ------- | ----------------------------------------------------------------------------------------------------- |
|
|
1960
|
+
* | `'CBR'` | Constant Bitrate. Maintains a fixed bitrate for predictable file sizes. |
|
|
1961
|
+
* | `'CQP'` | Constant Quantization Parameter. Prioritizes consistent quality over bitrate. |
|
|
1962
|
+
* | `'VBR'` | Variable Bitrate. Adjusts bitrate dynamically for efficient encoding with acceptable quality. |
|
|
1963
|
+
* | `'ICQ'` | Intelligent Constant Quality. Balances quality and bitrate automatically using an internal algorithm. |
|
|
1964
|
+
*
|
|
1751
1965
|
* @example
|
|
1752
1966
|
* const rateControl: kQuickSyncEncoderRateControl = 'CBR';
|
|
1753
1967
|
*/
|
|
@@ -1766,6 +1980,12 @@ type kQuickSyncEncoderRateControl =
|
|
|
1766
1980
|
*
|
|
1767
1981
|
* Splitting can be useful for managing file sizes, organizing segments, or controlling recording behavior dynamically.
|
|
1768
1982
|
*
|
|
1983
|
+
* | Value | Description |
|
|
1984
|
+
* | ---------- | ------------------------------------------------------------------------------ |
|
|
1985
|
+
* | `'byTime'` | Automatically splits the recording into segments based on elapsed time. |
|
|
1986
|
+
* | `'bySize'` | Automatically splits the recording once a specific file size limit is reached. |
|
|
1987
|
+
* | `'manual'` | Splitting is controlled programmatically or by user input. |
|
|
1988
|
+
*
|
|
1769
1989
|
* @example
|
|
1770
1990
|
* const splitType: VideoRecordingSplitType = 'bySize';
|
|
1771
1991
|
*/
|
|
@@ -3903,6 +4123,25 @@ interface RecordingAppOptions {
|
|
|
3903
4123
|
*
|
|
3904
4124
|
* These codes help in identifying and handling recording-related issues.
|
|
3905
4125
|
*
|
|
4126
|
+
* | Code | Name | Description |
|
|
4127
|
+
* | ------- | ---------------------------- | -------------------------------------------------------------------------------- |
|
|
4128
|
+
* | `-1001` | `Unknown` | Generic unknown error. |
|
|
4129
|
+
* | `-1000` | `ProcessTerminated` | OBS process crashed. |
|
|
4130
|
+
* | `-999` | `MissingBinaries` | Missing binaries required for recording. |
|
|
4131
|
+
* | `-998` | `ConnectionOBSError` | Failed to connect to the OBS process. |
|
|
4132
|
+
* | `-997` | `AlreadyRunning` | Operation attempted while recording is already running. |
|
|
4133
|
+
* | `-996` | `ElevationHelperMissing` | Elevated game capture requested while the High Elevation Helper isn't installed. |
|
|
4134
|
+
* | `-12` | `SplitRecordingDisabled` | Attempted to split recording when split recording is disabled. |
|
|
4135
|
+
* | `-11` | `MissingOrInvalidParameters` | One or more required parameters are missing or invalid. |
|
|
4136
|
+
* | `-10` | `NoActiveRecording` | No active recording session found. |
|
|
4137
|
+
* | `-8` | `EncoderError` | Encoder encountered an error. |
|
|
4138
|
+
* | `-7` | `NoDiskSpaceError` | Not enough disk space to complete the recording. |
|
|
4139
|
+
* | `-4` | `ProcessOutputError` | Failed to process or finalize the output video file. |
|
|
4140
|
+
* | `-1` | `BadPathError` | Invalid or inaccessible output file path. |
|
|
4141
|
+
* | `0` | `Success` | Operation succeeded. |
|
|
4142
|
+
* | `1` | `SuccessLowDiskSpace` | Operation succeeded but stopped early due to low disk space. |
|
|
4143
|
+
* | `2` | `SuccessWithError` | Replay stopped while creating replay. |
|
|
4144
|
+
*
|
|
3906
4145
|
* @example
|
|
3907
4146
|
* ```ts
|
|
3908
4147
|
* function handleError(code: ErrorCode) {
|
|
@@ -3928,9 +4167,7 @@ type ErrorCode =
|
|
|
3928
4167
|
| -1 // Invalid or inaccessible output file path. 'BadPathError'
|
|
3929
4168
|
| 0 // Operation succeeded. 'Success'
|
|
3930
4169
|
| 1 // Operation succeeded but stopped early due to low disk space. 'SuccessLowDiskSpace'
|
|
3931
|
-
| 2; //
|
|
3932
|
-
|
|
3933
|
-
// Replay stopped while creating replay 'SuccessWithError'
|
|
4170
|
+
| 2; // Replay stopped while creating replay. 'SuccessWithError'
|
|
3934
4171
|
|
|
3935
4172
|
/**
|
|
3936
4173
|
* Base configuration options for video recording.
|
|
@@ -5036,8 +5273,8 @@ type GpuPreference = "default" | "highPerformance";
|
|
|
5036
5273
|
* received in-game. The overlay retried, then fell back to the CPU copy path.
|
|
5037
5274
|
* {@link IOverwolfOverlayApi.setGpuPreference} may help when the root cause is
|
|
5038
5275
|
* adapter-related.
|
|
5039
|
-
* - `handleTransportBlocked`—The GPU textures could not be
|
|
5040
|
-
*
|
|
5276
|
+
* - `handleTransportBlocked`—The GPU textures could not be handed to the game process
|
|
5277
|
+
* at all. Nothing the application can do; the overlay uses the CPU copy path for this game.
|
|
5041
5278
|
*
|
|
5042
5279
|
* @see {@link IOverwolfOverlayApi.on} `shared-texture-unavailable`.
|
|
5043
5280
|
*
|
|
@@ -6212,8 +6449,8 @@ interface IOverwolfOverlayApi extends EventEmitter {
|
|
|
6212
6449
|
* received in-game**. The overlay retried, then abandoned the path for this game.
|
|
6213
6450
|
* {@link IOverwolfOverlayApi.setGpuPreference} may help when the root cause is
|
|
6214
6451
|
* adapter-related; details are in the overlay log.
|
|
6215
|
-
* - `handleTransportBlocked`—the GPU textures **could not be
|
|
6216
|
-
* process**.
|
|
6452
|
+
* - `handleTransportBlocked`—the GPU textures **could not be handed to the game
|
|
6453
|
+
* process at all**. Nothing the application can do.
|
|
6217
6454
|
*
|
|
6218
6455
|
* Fires at most **once per injected game**. The first two reasons are detected when the
|
|
6219
6456
|
* game's graphics are detected, before any frame is sent; `copyFailure` and
|
|
@@ -6487,6 +6724,18 @@ export interface ICRNEvent {
|
|
|
6487
6724
|
* handling UI state changes, or triggering specific behavior based on
|
|
6488
6725
|
* user intent or automated conditions.
|
|
6489
6726
|
*
|
|
6727
|
+
* | Value | Description |
|
|
6728
|
+
* | ------------------------------------------- | ------------------------------------------------------------------------------------------------ |
|
|
6729
|
+
* | `'Dismissed'` | User clicked on the `X` button to dismiss the notification. |
|
|
6730
|
+
* | `'IgnoredByLaunchingGame'` | Notification closed due to launching another game while the notification is displayed. |
|
|
6731
|
+
* | `'Timeout'` | Notification automatically closed after no user action was registered. |
|
|
6732
|
+
* | `'TurnOffNotificationsRequested'` | User clicked on `Turn off notifications` from the cogwheel icon. |
|
|
6733
|
+
* | `'OpenExternalUrl'` | User clicked on a notification that opens an external URL (e.g., newsletter site). |
|
|
6734
|
+
* | `'DownloadExternalApp'` | User clicked on a notification that downloads an external app. |
|
|
6735
|
+
* | `'CancelDownloadExternalApp'` | User clicked on the `Cancel` button while the external app was downloading. |
|
|
6736
|
+
* | `'CloseClickedWhileDownloadingExternalApp'` | User clicked on the `X` button while the external app was downloading. |
|
|
6737
|
+
* | `'ForceClosed'` | Developer programmatically closed the notification using the `closeNotificationWindow()` method. |
|
|
6738
|
+
*
|
|
6490
6739
|
* @example
|
|
6491
6740
|
* crnApi.on('notification-action', (action: CRNActionType) => {
|
|
6492
6741
|
* if (action === 'Dismissed') {
|