noobs 0.0.89 → 0.0.130
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/data/obs-plugins/obs-filters/LUTs/black_and_white.png +0 -0
- package/dist/data/obs-plugins/obs-filters/LUTs/grayscale.cube +32769 -0
- package/dist/data/obs-plugins/obs-filters/LUTs/grayscale.png +0 -0
- package/dist/data/obs-plugins/obs-filters/LUTs/invert.png +0 -0
- package/dist/data/obs-plugins/obs-filters/LUTs/original.cube +33 -0
- package/dist/data/obs-plugins/obs-filters/LUTs/original.png +0 -0
- package/dist/data/obs-plugins/obs-filters/LUTs/posterize.png +0 -0
- package/dist/data/obs-plugins/obs-filters/LUTs/red_isolated.png +0 -0
- package/dist/data/obs-plugins/obs-filters/LUTs/teal_lows_orange_highs.png +0 -0
- package/dist/data/obs-plugins/obs-filters/blend_add_filter.effect +54 -0
- package/dist/data/obs-plugins/obs-filters/blend_mul_filter.effect +54 -0
- package/dist/data/obs-plugins/obs-filters/blend_sub_filter.effect +54 -0
- package/dist/data/obs-plugins/obs-filters/chroma_key_filter.effect +99 -0
- package/dist/data/obs-plugins/obs-filters/chroma_key_filter_v2.effect +111 -0
- package/dist/data/obs-plugins/obs-filters/color.effect +95 -0
- package/dist/data/obs-plugins/obs-filters/color_correction_filter.effect +74 -0
- package/dist/data/obs-plugins/obs-filters/color_grade_filter.effect +177 -0
- package/dist/data/obs-plugins/obs-filters/color_key_filter.effect +65 -0
- package/dist/data/obs-plugins/obs-filters/color_key_filter_v2.effect +77 -0
- package/dist/data/obs-plugins/obs-filters/crop_filter.effect +95 -0
- package/dist/data/obs-plugins/obs-filters/hdr_tonemap_filter.effect +97 -0
- package/dist/data/obs-plugins/obs-filters/locale/af-ZA.ini +89 -0
- package/dist/data/obs-plugins/obs-filters/locale/ar-SA.ini +133 -0
- package/dist/data/obs-plugins/obs-filters/locale/az-AZ.ini +1 -0
- package/dist/data/obs-plugins/obs-filters/locale/ba-RU.ini +19 -0
- package/dist/data/obs-plugins/obs-filters/locale/be-BY.ini +134 -0
- package/dist/data/obs-plugins/obs-filters/locale/bg-BG.ini +71 -0
- package/dist/data/obs-plugins/obs-filters/locale/bn-BD.ini +106 -0
- package/dist/data/obs-plugins/obs-filters/locale/ca-ES.ini +128 -0
- package/dist/data/obs-plugins/obs-filters/locale/cs-CZ.ini +130 -0
- package/dist/data/obs-plugins/obs-filters/locale/da-DK.ini +119 -0
- package/dist/data/obs-plugins/obs-filters/locale/de-DE.ini +113 -0
- package/dist/data/obs-plugins/obs-filters/locale/el-GR.ini +128 -0
- package/dist/data/obs-plugins/obs-filters/locale/en-GB.ini +12 -0
- package/dist/data/obs-plugins/obs-filters/locale/en-US.ini +138 -0
- package/dist/data/obs-plugins/obs-filters/locale/eo-UY.ini +1 -0
- package/dist/data/obs-plugins/obs-filters/locale/es-ES.ini +129 -0
- package/dist/data/obs-plugins/obs-filters/locale/et-EE.ini +132 -0
- package/dist/data/obs-plugins/obs-filters/locale/eu-ES.ini +127 -0
- package/dist/data/obs-plugins/obs-filters/locale/fa-IR.ini +137 -0
- package/dist/data/obs-plugins/obs-filters/locale/fi-FI.ini +127 -0
- package/dist/data/obs-plugins/obs-filters/locale/fil-PH.ini +111 -0
- package/dist/data/obs-plugins/obs-filters/locale/fr-FR.ini +124 -0
- package/dist/data/obs-plugins/obs-filters/locale/gd-GB.ini +94 -0
- package/dist/data/obs-plugins/obs-filters/locale/gl-ES.ini +132 -0
- package/dist/data/obs-plugins/obs-filters/locale/he-IL.ini +135 -0
- package/dist/data/obs-plugins/obs-filters/locale/hi-IN.ini +134 -0
- package/dist/data/obs-plugins/obs-filters/locale/hr-HR.ini +80 -0
- package/dist/data/obs-plugins/obs-filters/locale/hu-HU.ini +131 -0
- package/dist/data/obs-plugins/obs-filters/locale/hy-AM.ini +130 -0
- package/dist/data/obs-plugins/obs-filters/locale/id-ID.ini +112 -0
- package/dist/data/obs-plugins/obs-filters/locale/it-IT.ini +130 -0
- package/dist/data/obs-plugins/obs-filters/locale/ja-JP.ini +134 -0
- package/dist/data/obs-plugins/obs-filters/locale/ka-GE.ini +133 -0
- package/dist/data/obs-plugins/obs-filters/locale/kaa.ini +41 -0
- package/dist/data/obs-plugins/obs-filters/locale/kab-KAB.ini +56 -0
- package/dist/data/obs-plugins/obs-filters/locale/kmr-TR.ini +126 -0
- package/dist/data/obs-plugins/obs-filters/locale/ko-KR.ini +134 -0
- package/dist/data/obs-plugins/obs-filters/locale/ms-MY.ini +131 -0
- package/dist/data/obs-plugins/obs-filters/locale/nb-NO.ini +115 -0
- package/dist/data/obs-plugins/obs-filters/locale/nl-NL.ini +111 -0
- package/dist/data/obs-plugins/obs-filters/locale/nn-NO.ini +19 -0
- package/dist/data/obs-plugins/obs-filters/locale/pl-PL.ini +127 -0
- package/dist/data/obs-plugins/obs-filters/locale/pt-BR.ini +128 -0
- package/dist/data/obs-plugins/obs-filters/locale/pt-PT.ini +130 -0
- package/dist/data/obs-plugins/obs-filters/locale/ro-RO.ini +125 -0
- package/dist/data/obs-plugins/obs-filters/locale/ru-RU.ini +135 -0
- package/dist/data/obs-plugins/obs-filters/locale/si-LK.ini +44 -0
- package/dist/data/obs-plugins/obs-filters/locale/sk-SK.ini +131 -0
- package/dist/data/obs-plugins/obs-filters/locale/sl-SI.ini +133 -0
- package/dist/data/obs-plugins/obs-filters/locale/sr-CS.ini +90 -0
- package/dist/data/obs-plugins/obs-filters/locale/sr-SP.ini +97 -0
- package/dist/data/obs-plugins/obs-filters/locale/sv-SE.ini +129 -0
- package/dist/data/obs-plugins/obs-filters/locale/szl-PL.ini +94 -0
- package/dist/data/obs-plugins/obs-filters/locale/ta-IN.ini +28 -0
- package/dist/data/obs-plugins/obs-filters/locale/th-TH.ini +132 -0
- package/dist/data/obs-plugins/obs-filters/locale/tl-PH.ini +64 -0
- package/dist/data/obs-plugins/obs-filters/locale/tr-TR.ini +129 -0
- package/dist/data/obs-plugins/obs-filters/locale/tt-RU.ini +27 -0
- package/dist/data/obs-plugins/obs-filters/locale/ug-CN.ini +133 -0
- package/dist/data/obs-plugins/obs-filters/locale/uk-UA.ini +135 -0
- package/dist/data/obs-plugins/obs-filters/locale/vi-VN.ini +131 -0
- package/dist/data/obs-plugins/obs-filters/locale/zh-CN.ini +138 -0
- package/dist/data/obs-plugins/obs-filters/locale/zh-TW.ini +136 -0
- package/dist/data/obs-plugins/obs-filters/luma_key_filter.effect +52 -0
- package/dist/data/obs-plugins/obs-filters/luma_key_filter_v2.effect +54 -0
- package/dist/data/obs-plugins/obs-filters/mask_alpha_filter.effect +54 -0
- package/dist/data/obs-plugins/obs-filters/mask_color_filter.effect +55 -0
- package/dist/data/obs-plugins/obs-filters/rtx_greenscreen.effect +183 -0
- package/dist/data/obs-plugins/obs-filters/sharpness.effect +76 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/ar-SA.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/be-BY.ini +59 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/bg-BG.ini +2 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/ca-ES.ini +59 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/cs-CZ.ini +55 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/da-DK.ini +54 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/de-DE.ini +55 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/en-GB.ini +9 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/en-US.ini +75 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/es-ES.ini +59 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/et-EE.ini +36 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/fa-IR.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/fi-FI.ini +59 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/fr-FR.ini +59 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/gl-ES.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/he-IL.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/hi-IN.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/hu-HU.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/id-ID.ini +55 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/is-IS.ini +2 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/it-IT.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/ja-JP.ini +59 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/ka-GE.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/kaa.ini +13 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/kmr-TR.ini +20 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/ko-KR.ini +58 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/ms-MY.ini +58 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/nb-NO.ini +24 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/nl-NL.ini +54 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/nn-NO.ini +1 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/pl-PL.ini +55 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/pt-BR.ini +58 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/pt-PT.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/ru-RU.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/sk-SK.ini +56 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/sv-SE.ini +58 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/th-TH.ini +59 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/tr-TR.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/tt-RU.ini +2 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/ug-CN.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/uk-UA.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/vi-VN.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/zh-CN.ini +60 -0
- package/dist/data/obs-plugins/obs-nvenc/locale/zh-TW.ini +60 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/af-ZA.ini +19 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/ar-SA.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/ba-RU.ini +2 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/be-BY.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/bg-BG.ini +7 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/bn-BD.ini +8 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/ca-ES.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/cs-CZ.ini +19 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/da-DK.ini +19 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/de-DE.ini +19 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/el-GR.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/en-GB.ini +1 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/en-US.ini +21 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/es-ES.ini +19 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/et-EE.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/eu-ES.ini +11 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/fa-IR.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/fi-FI.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/fil-PH.ini +11 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/fr-FR.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/gd-GB.ini +8 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/gl-ES.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/he-IL.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/hi-IN.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/hr-HR.ini +14 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/hu-HU.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/hy-AM.ini +13 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/id-ID.ini +18 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/is-IS.ini +1 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/it-IT.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/ja-JP.ini +16 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/ka-GE.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/kaa.ini +10 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/kab-KAB.ini +5 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/kmr-TR.ini +12 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/ko-KR.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/ms-MY.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/nb-NO.ini +16 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/nl-NL.ini +18 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/nn-NO.ini +2 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/oc-FR.ini +1 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/pl-PL.ini +16 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/pt-BR.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/pt-PT.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/ro-RO.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/ru-RU.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/si-LK.ini +8 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/sk-SK.ini +19 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/sl-SI.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/sr-CS.ini +6 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/sr-SP.ini +10 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/sv-SE.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/ta-IN.ini +2 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/th-TH.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/tl-PH.ini +5 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/tr-TR.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/tt-RU.ini +3 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/ug-CN.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/uk-UA.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/vi-VN.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/zh-CN.ini +20 -0
- package/dist/data/obs-plugins/obs-qsv11/locale/zh-TW.ini +20 -0
- package/dist/data/obs-plugins/win-capture/get-graphics-offsets32.exe +0 -0
- package/dist/data/obs-plugins/win-capture/get-graphics-offsets64.exe +0 -0
- package/dist/data/obs-plugins/win-capture/graphics-hook32.dll +0 -0
- package/dist/data/obs-plugins/win-capture/graphics-hook64.dll +0 -0
- package/dist/data/obs-plugins/win-capture/inject-helper32.exe +0 -0
- package/dist/data/obs-plugins/win-capture/inject-helper64.exe +0 -0
- package/dist/noobs.node +0 -0
- package/dist/obs-plugins/image-source.dll +0 -0
- package/dist/obs-plugins/obs-filters.dll +0 -0
- package/dist/obs-plugins/obs-nvenc.dll +0 -0
- package/dist/obs-plugins/obs-qsv11.dll +0 -0
- package/dist/obs-plugins/obs-x264.dll +0 -0
- package/dist/obs-plugins/win-capture.dll +0 -0
- package/dist/obs-plugins/win-wasapi.dll +0 -0
- package/index.d.ts +24 -18
- package/package.json +1 -1
- package/src/main.cpp +215 -33
- package/src/obs_interface.cpp +598 -288
- package/src/obs_interface.h +85 -38
package/src/obs_interface.h
CHANGED
|
@@ -4,10 +4,35 @@
|
|
|
4
4
|
#include <napi.h>
|
|
5
5
|
#include <windows.h>
|
|
6
6
|
#include <map>
|
|
7
|
+
#include <string>
|
|
8
|
+
#include <optional>
|
|
9
|
+
|
|
10
|
+
#define AUDIO_INPUT "wasapi_input_capture"
|
|
11
|
+
#define AUDIO_OUTPUT "wasapi_output_capture"
|
|
12
|
+
#define AUDIO_PROCESS "wasapi_process_output_capture"
|
|
13
|
+
|
|
14
|
+
class ObsInterface;
|
|
7
15
|
|
|
8
16
|
struct SignalData {
|
|
17
|
+
std::string type;
|
|
9
18
|
std::string id;
|
|
10
19
|
long long code;
|
|
20
|
+
std::optional<float> value;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
struct SignalContext {
|
|
24
|
+
ObsInterface* self;
|
|
25
|
+
std::string id;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
struct PreviewInfo {
|
|
29
|
+
uint32_t canvasWidth, canvasHeight;
|
|
30
|
+
uint32_t displayWidth, displayHeight;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
struct SourceSize {
|
|
34
|
+
uint32_t width;
|
|
35
|
+
uint32_t height;
|
|
11
36
|
};
|
|
12
37
|
|
|
13
38
|
class ObsInterface {
|
|
@@ -15,24 +40,30 @@ class ObsInterface {
|
|
|
15
40
|
ObsInterface(
|
|
16
41
|
const std::string& distPath, // Where to look for plugins and data
|
|
17
42
|
const std::string& logPath, // Where to write logs to
|
|
18
|
-
const std::string& recordingPath, // Where to save recordings
|
|
19
43
|
Napi::ThreadSafeFunction cb // JavaScript callback
|
|
20
44
|
);
|
|
21
45
|
|
|
22
46
|
~ObsInterface();
|
|
23
47
|
|
|
24
|
-
|
|
25
|
-
void
|
|
26
|
-
void
|
|
27
|
-
void
|
|
28
|
-
std::string getLastRecording();
|
|
29
|
-
void
|
|
48
|
+
void startBuffering(); // Start buffering to memory.
|
|
49
|
+
void startRecording(int offset); // Convert the active buffered recording to a real one.
|
|
50
|
+
void stopRecording(); // Stop the recording.
|
|
51
|
+
void forceStopRecording(); // Force stop the recording, this will not save the current recording.
|
|
52
|
+
std::string getLastRecording(); // Get the last recorded file path.
|
|
53
|
+
void setBuffering(bool buffer); // Enable or disable buffering.
|
|
54
|
+
void setRecordingDir(const std::string& recordingPath); // Set the recording path.
|
|
55
|
+
void setVideoContext(int fps, int width, int height); // Reset video settings.
|
|
30
56
|
|
|
31
|
-
|
|
32
|
-
void deleteSource(std::string name);
|
|
33
|
-
obs_data_t* getSourceSettings(std::string name);
|
|
57
|
+
std::string createSource(std::string name, std::string type); // Create a new source, returns the name of the source which can vary from the requested.
|
|
58
|
+
void deleteSource(std::string name); // Release a source.
|
|
59
|
+
obs_data_t* getSourceSettings(std::string name); // Get the current settings.
|
|
34
60
|
void setSourceSettings(std::string name, obs_data_t* settings); // Set settings.
|
|
35
|
-
obs_properties_t* getSourceProperties(std::string name);
|
|
61
|
+
obs_properties_t* getSourceProperties(std::string name); // Get the settings schema.
|
|
62
|
+
void setMuteAudioInputs(bool mute); // Mute or unmute all audio inputs.
|
|
63
|
+
void setSourceVolume(std::string name, float volume); // Set the volume of an audio source.
|
|
64
|
+
void setVolmeterEnabled(bool enabled); // Enable volmeters.
|
|
65
|
+
void setAudioSuppression(bool enabled); // Enable audio suppression.
|
|
66
|
+
void setForceMono(bool enabled); // Enable force mono audio.
|
|
36
67
|
|
|
37
68
|
void addSourceToScene(std::string name); // Add source to scene.
|
|
38
69
|
void removeSourceFromScene(std::string name); // Remove source from scene.
|
|
@@ -40,49 +71,52 @@ class ObsInterface {
|
|
|
40
71
|
void setSourcePos(std::string name, vec2* pos, vec2* scale); // Size does not get set here because it's set by the source itself.
|
|
41
72
|
|
|
42
73
|
void initPreview(HWND parent); // Must call this before showPreview to setup resources.
|
|
43
|
-
void
|
|
44
|
-
void
|
|
45
|
-
|
|
74
|
+
void configurePreview(int x, int y, int width, int height); // Move and resize the preview display.
|
|
75
|
+
void showPreview(); // Show the preview display.
|
|
76
|
+
void hidePreview(); // Hide the preview display, but leave it running.
|
|
77
|
+
void disablePreview(); // Disable the preview display, to save resources.
|
|
78
|
+
PreviewInfo getPreviewInfo(); // Get the dimensions of the display, and the base canvas.
|
|
46
79
|
void setDrawSourceOutline(bool enabled); // Red box around source
|
|
47
80
|
bool getDrawSourceOutlineEnabled();
|
|
48
81
|
|
|
49
|
-
std::vector<std::string>
|
|
82
|
+
std::vector<std::string> listAvailableVideoEncoders(); // Return a list of available video encoders.
|
|
83
|
+
void setVideoEncoder(std::string id, obs_data_t* settings); // Set the video encoder to use.
|
|
84
|
+
|
|
85
|
+
std::map<std::string, obs_source_t*> sources; // Map of source names to obs_source_t pointers.
|
|
86
|
+
std::map<std::string, SourceSize> sizes; // Map of source names to their last known size, used for firing callbacks on size changes.
|
|
87
|
+
std::map<std::string, obs_volmeter_t*> volmeters; // Map of source names to obs_volmeter_t pointers.
|
|
88
|
+
std::map<std::string, obs_source_t*> filters; // Map of source names to obs_source_t filter pointers.
|
|
89
|
+
|
|
90
|
+
void sourceCallback(std::string name); // Send callback for source change.
|
|
91
|
+
void zeroVolmeter(std::string name); // Zero the volmeter for a source.
|
|
50
92
|
|
|
51
|
-
// TODO
|
|
52
|
-
// Configure video
|
|
53
|
-
// Configure audio
|
|
54
|
-
// List audio source
|
|
55
|
-
// Reconfigure audio sources
|
|
56
|
-
// Reconfigure video sources
|
|
57
|
-
|
|
58
93
|
private:
|
|
59
|
-
obs_output_t *
|
|
60
|
-
obs_output_t *buffer_output = nullptr;
|
|
94
|
+
obs_output_t *output = nullptr;
|
|
61
95
|
obs_scene_t *scene = nullptr;
|
|
62
|
-
|
|
63
|
-
obs_encoder_t *
|
|
64
|
-
obs_encoder_t *
|
|
65
|
-
|
|
96
|
+
|
|
97
|
+
obs_encoder_t *video_encoder = nullptr;
|
|
98
|
+
obs_encoder_t *audio_encoder = nullptr;
|
|
99
|
+
|
|
66
100
|
obs_display_t *display = nullptr;
|
|
67
101
|
HWND preview_hwnd = nullptr; // window handle for scene preview
|
|
68
102
|
Napi::ThreadSafeFunction jscb; // javascript callback
|
|
69
103
|
std::string recording_path = "";
|
|
104
|
+
std::string unbuffered_output_filename = "";
|
|
105
|
+
|
|
70
106
|
bool buffering = false; // Whether we are buffering the recording in memory.
|
|
71
107
|
bool drawSourceOutline = false; // Draw red outline around source
|
|
72
|
-
std::map<std::string, obs_source_t*> sources; // Map of source names to obs_source_t pointers.
|
|
73
|
-
|
|
74
108
|
void init_obs(const std::string& distPath);
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
void load_module(const char* module, const char* data); // Load a module, data is optional.
|
|
109
|
+
int reset_video(int fps, int width, int height);
|
|
110
|
+
bool reset_audio();
|
|
111
|
+
void load_module(const char* module, const char* data, bool allowFail); // Load a module, data is optional.
|
|
78
112
|
void connect_signal_handlers(obs_output_t *output);
|
|
79
113
|
void disconnect_signal_handlers(obs_output_t *output);
|
|
80
114
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
static void
|
|
115
|
+
SignalContext* starting_ctx;
|
|
116
|
+
SignalContext* start_ctx;
|
|
117
|
+
SignalContext* stopping_ctx;
|
|
118
|
+
SignalContext* stop_ctx;
|
|
119
|
+
static void output_signal_handler(void *data, calldata_t *cd);
|
|
86
120
|
|
|
87
121
|
void list_encoders(obs_encoder_type type = OBS_ENCODER_VIDEO);
|
|
88
122
|
void list_source_types();
|
|
@@ -92,6 +126,19 @@ class ObsInterface {
|
|
|
92
126
|
void create_scene();
|
|
93
127
|
void create_output();
|
|
94
128
|
|
|
129
|
+
std::string video_encoder_id = "obs_x264"; // The video encoder ID to use.
|
|
130
|
+
obs_data_t* video_encoder_settings = obs_data_create(); // Settings for the video encoder.
|
|
95
131
|
void create_video_encoders();
|
|
96
132
|
void create_audio_encoders();
|
|
133
|
+
|
|
134
|
+
bool volmeter_enabled = false; // Whether the volmeter callback is enabled.
|
|
135
|
+
bool audio_suppression = false; // Whether audio suppression is enabled.
|
|
136
|
+
bool force_mono = false; // Whether force mono audio is enabled.
|
|
137
|
+
|
|
138
|
+
static void volmeter_callback(
|
|
139
|
+
void *data,
|
|
140
|
+
const float magnitude[MAX_AUDIO_CHANNELS],
|
|
141
|
+
const float peak[MAX_AUDIO_CHANNELS],
|
|
142
|
+
const float inputPeak[MAX_AUDIO_CHANNELS]
|
|
143
|
+
);
|
|
97
144
|
};
|