noobs 0.0.115 → 0.0.131

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.
Files changed (209) hide show
  1. package/dist/data/obs-plugins/obs-filters/LUTs/black_and_white.png +0 -0
  2. package/dist/data/obs-plugins/obs-filters/LUTs/grayscale.cube +32769 -0
  3. package/dist/data/obs-plugins/obs-filters/LUTs/grayscale.png +0 -0
  4. package/dist/data/obs-plugins/obs-filters/LUTs/invert.png +0 -0
  5. package/dist/data/obs-plugins/obs-filters/LUTs/original.cube +33 -0
  6. package/dist/data/obs-plugins/obs-filters/LUTs/original.png +0 -0
  7. package/dist/data/obs-plugins/obs-filters/LUTs/posterize.png +0 -0
  8. package/dist/data/obs-plugins/obs-filters/LUTs/red_isolated.png +0 -0
  9. package/dist/data/obs-plugins/obs-filters/LUTs/teal_lows_orange_highs.png +0 -0
  10. package/dist/data/obs-plugins/obs-filters/blend_add_filter.effect +54 -0
  11. package/dist/data/obs-plugins/obs-filters/blend_mul_filter.effect +54 -0
  12. package/dist/data/obs-plugins/obs-filters/blend_sub_filter.effect +54 -0
  13. package/dist/data/obs-plugins/obs-filters/chroma_key_filter.effect +99 -0
  14. package/dist/data/obs-plugins/obs-filters/chroma_key_filter_v2.effect +111 -0
  15. package/dist/data/obs-plugins/obs-filters/color.effect +95 -0
  16. package/dist/data/obs-plugins/obs-filters/color_correction_filter.effect +74 -0
  17. package/dist/data/obs-plugins/obs-filters/color_grade_filter.effect +177 -0
  18. package/dist/data/obs-plugins/obs-filters/color_key_filter.effect +65 -0
  19. package/dist/data/obs-plugins/obs-filters/color_key_filter_v2.effect +77 -0
  20. package/dist/data/obs-plugins/obs-filters/crop_filter.effect +95 -0
  21. package/dist/data/obs-plugins/obs-filters/hdr_tonemap_filter.effect +97 -0
  22. package/dist/data/obs-plugins/obs-filters/locale/af-ZA.ini +89 -0
  23. package/dist/data/obs-plugins/obs-filters/locale/ar-SA.ini +133 -0
  24. package/dist/data/obs-plugins/obs-filters/locale/az-AZ.ini +1 -0
  25. package/dist/data/obs-plugins/obs-filters/locale/ba-RU.ini +19 -0
  26. package/dist/data/obs-plugins/obs-filters/locale/be-BY.ini +134 -0
  27. package/dist/data/obs-plugins/obs-filters/locale/bg-BG.ini +71 -0
  28. package/dist/data/obs-plugins/obs-filters/locale/bn-BD.ini +106 -0
  29. package/dist/data/obs-plugins/obs-filters/locale/ca-ES.ini +128 -0
  30. package/dist/data/obs-plugins/obs-filters/locale/cs-CZ.ini +130 -0
  31. package/dist/data/obs-plugins/obs-filters/locale/da-DK.ini +119 -0
  32. package/dist/data/obs-plugins/obs-filters/locale/de-DE.ini +113 -0
  33. package/dist/data/obs-plugins/obs-filters/locale/el-GR.ini +128 -0
  34. package/dist/data/obs-plugins/obs-filters/locale/en-GB.ini +12 -0
  35. package/dist/data/obs-plugins/obs-filters/locale/en-US.ini +138 -0
  36. package/dist/data/obs-plugins/obs-filters/locale/eo-UY.ini +1 -0
  37. package/dist/data/obs-plugins/obs-filters/locale/es-ES.ini +129 -0
  38. package/dist/data/obs-plugins/obs-filters/locale/et-EE.ini +132 -0
  39. package/dist/data/obs-plugins/obs-filters/locale/eu-ES.ini +127 -0
  40. package/dist/data/obs-plugins/obs-filters/locale/fa-IR.ini +137 -0
  41. package/dist/data/obs-plugins/obs-filters/locale/fi-FI.ini +127 -0
  42. package/dist/data/obs-plugins/obs-filters/locale/fil-PH.ini +111 -0
  43. package/dist/data/obs-plugins/obs-filters/locale/fr-FR.ini +124 -0
  44. package/dist/data/obs-plugins/obs-filters/locale/gd-GB.ini +94 -0
  45. package/dist/data/obs-plugins/obs-filters/locale/gl-ES.ini +132 -0
  46. package/dist/data/obs-plugins/obs-filters/locale/he-IL.ini +135 -0
  47. package/dist/data/obs-plugins/obs-filters/locale/hi-IN.ini +134 -0
  48. package/dist/data/obs-plugins/obs-filters/locale/hr-HR.ini +80 -0
  49. package/dist/data/obs-plugins/obs-filters/locale/hu-HU.ini +131 -0
  50. package/dist/data/obs-plugins/obs-filters/locale/hy-AM.ini +130 -0
  51. package/dist/data/obs-plugins/obs-filters/locale/id-ID.ini +112 -0
  52. package/dist/data/obs-plugins/obs-filters/locale/it-IT.ini +130 -0
  53. package/dist/data/obs-plugins/obs-filters/locale/ja-JP.ini +134 -0
  54. package/dist/data/obs-plugins/obs-filters/locale/ka-GE.ini +133 -0
  55. package/dist/data/obs-plugins/obs-filters/locale/kaa.ini +41 -0
  56. package/dist/data/obs-plugins/obs-filters/locale/kab-KAB.ini +56 -0
  57. package/dist/data/obs-plugins/obs-filters/locale/kmr-TR.ini +126 -0
  58. package/dist/data/obs-plugins/obs-filters/locale/ko-KR.ini +134 -0
  59. package/dist/data/obs-plugins/obs-filters/locale/ms-MY.ini +131 -0
  60. package/dist/data/obs-plugins/obs-filters/locale/nb-NO.ini +115 -0
  61. package/dist/data/obs-plugins/obs-filters/locale/nl-NL.ini +111 -0
  62. package/dist/data/obs-plugins/obs-filters/locale/nn-NO.ini +19 -0
  63. package/dist/data/obs-plugins/obs-filters/locale/pl-PL.ini +127 -0
  64. package/dist/data/obs-plugins/obs-filters/locale/pt-BR.ini +128 -0
  65. package/dist/data/obs-plugins/obs-filters/locale/pt-PT.ini +130 -0
  66. package/dist/data/obs-plugins/obs-filters/locale/ro-RO.ini +125 -0
  67. package/dist/data/obs-plugins/obs-filters/locale/ru-RU.ini +135 -0
  68. package/dist/data/obs-plugins/obs-filters/locale/si-LK.ini +44 -0
  69. package/dist/data/obs-plugins/obs-filters/locale/sk-SK.ini +131 -0
  70. package/dist/data/obs-plugins/obs-filters/locale/sl-SI.ini +133 -0
  71. package/dist/data/obs-plugins/obs-filters/locale/sr-CS.ini +90 -0
  72. package/dist/data/obs-plugins/obs-filters/locale/sr-SP.ini +97 -0
  73. package/dist/data/obs-plugins/obs-filters/locale/sv-SE.ini +129 -0
  74. package/dist/data/obs-plugins/obs-filters/locale/szl-PL.ini +94 -0
  75. package/dist/data/obs-plugins/obs-filters/locale/ta-IN.ini +28 -0
  76. package/dist/data/obs-plugins/obs-filters/locale/th-TH.ini +132 -0
  77. package/dist/data/obs-plugins/obs-filters/locale/tl-PH.ini +64 -0
  78. package/dist/data/obs-plugins/obs-filters/locale/tr-TR.ini +129 -0
  79. package/dist/data/obs-plugins/obs-filters/locale/tt-RU.ini +27 -0
  80. package/dist/data/obs-plugins/obs-filters/locale/ug-CN.ini +133 -0
  81. package/dist/data/obs-plugins/obs-filters/locale/uk-UA.ini +135 -0
  82. package/dist/data/obs-plugins/obs-filters/locale/vi-VN.ini +131 -0
  83. package/dist/data/obs-plugins/obs-filters/locale/zh-CN.ini +138 -0
  84. package/dist/data/obs-plugins/obs-filters/locale/zh-TW.ini +136 -0
  85. package/dist/data/obs-plugins/obs-filters/luma_key_filter.effect +52 -0
  86. package/dist/data/obs-plugins/obs-filters/luma_key_filter_v2.effect +54 -0
  87. package/dist/data/obs-plugins/obs-filters/mask_alpha_filter.effect +54 -0
  88. package/dist/data/obs-plugins/obs-filters/mask_color_filter.effect +55 -0
  89. package/dist/data/obs-plugins/obs-filters/rtx_greenscreen.effect +183 -0
  90. package/dist/data/obs-plugins/obs-filters/sharpness.effect +76 -0
  91. package/dist/data/obs-plugins/obs-nvenc/locale/ar-SA.ini +60 -0
  92. package/dist/data/obs-plugins/obs-nvenc/locale/be-BY.ini +59 -0
  93. package/dist/data/obs-plugins/obs-nvenc/locale/bg-BG.ini +2 -0
  94. package/dist/data/obs-plugins/obs-nvenc/locale/ca-ES.ini +59 -0
  95. package/dist/data/obs-plugins/obs-nvenc/locale/cs-CZ.ini +55 -0
  96. package/dist/data/obs-plugins/obs-nvenc/locale/da-DK.ini +54 -0
  97. package/dist/data/obs-plugins/obs-nvenc/locale/de-DE.ini +55 -0
  98. package/dist/data/obs-plugins/obs-nvenc/locale/en-GB.ini +9 -0
  99. package/dist/data/obs-plugins/obs-nvenc/locale/en-US.ini +75 -0
  100. package/dist/data/obs-plugins/obs-nvenc/locale/es-ES.ini +59 -0
  101. package/dist/data/obs-plugins/obs-nvenc/locale/et-EE.ini +36 -0
  102. package/dist/data/obs-plugins/obs-nvenc/locale/fa-IR.ini +60 -0
  103. package/dist/data/obs-plugins/obs-nvenc/locale/fi-FI.ini +59 -0
  104. package/dist/data/obs-plugins/obs-nvenc/locale/fr-FR.ini +59 -0
  105. package/dist/data/obs-plugins/obs-nvenc/locale/gl-ES.ini +60 -0
  106. package/dist/data/obs-plugins/obs-nvenc/locale/he-IL.ini +60 -0
  107. package/dist/data/obs-plugins/obs-nvenc/locale/hi-IN.ini +60 -0
  108. package/dist/data/obs-plugins/obs-nvenc/locale/hu-HU.ini +60 -0
  109. package/dist/data/obs-plugins/obs-nvenc/locale/id-ID.ini +55 -0
  110. package/dist/data/obs-plugins/obs-nvenc/locale/is-IS.ini +2 -0
  111. package/dist/data/obs-plugins/obs-nvenc/locale/it-IT.ini +60 -0
  112. package/dist/data/obs-plugins/obs-nvenc/locale/ja-JP.ini +59 -0
  113. package/dist/data/obs-plugins/obs-nvenc/locale/ka-GE.ini +60 -0
  114. package/dist/data/obs-plugins/obs-nvenc/locale/kaa.ini +13 -0
  115. package/dist/data/obs-plugins/obs-nvenc/locale/kmr-TR.ini +20 -0
  116. package/dist/data/obs-plugins/obs-nvenc/locale/ko-KR.ini +58 -0
  117. package/dist/data/obs-plugins/obs-nvenc/locale/ms-MY.ini +58 -0
  118. package/dist/data/obs-plugins/obs-nvenc/locale/nb-NO.ini +24 -0
  119. package/dist/data/obs-plugins/obs-nvenc/locale/nl-NL.ini +54 -0
  120. package/dist/data/obs-plugins/obs-nvenc/locale/nn-NO.ini +1 -0
  121. package/dist/data/obs-plugins/obs-nvenc/locale/pl-PL.ini +55 -0
  122. package/dist/data/obs-plugins/obs-nvenc/locale/pt-BR.ini +58 -0
  123. package/dist/data/obs-plugins/obs-nvenc/locale/pt-PT.ini +60 -0
  124. package/dist/data/obs-plugins/obs-nvenc/locale/ru-RU.ini +60 -0
  125. package/dist/data/obs-plugins/obs-nvenc/locale/sk-SK.ini +56 -0
  126. package/dist/data/obs-plugins/obs-nvenc/locale/sv-SE.ini +58 -0
  127. package/dist/data/obs-plugins/obs-nvenc/locale/th-TH.ini +59 -0
  128. package/dist/data/obs-plugins/obs-nvenc/locale/tr-TR.ini +60 -0
  129. package/dist/data/obs-plugins/obs-nvenc/locale/tt-RU.ini +2 -0
  130. package/dist/data/obs-plugins/obs-nvenc/locale/ug-CN.ini +60 -0
  131. package/dist/data/obs-plugins/obs-nvenc/locale/uk-UA.ini +60 -0
  132. package/dist/data/obs-plugins/obs-nvenc/locale/vi-VN.ini +60 -0
  133. package/dist/data/obs-plugins/obs-nvenc/locale/zh-CN.ini +60 -0
  134. package/dist/data/obs-plugins/obs-nvenc/locale/zh-TW.ini +60 -0
  135. package/dist/data/obs-plugins/obs-qsv11/locale/af-ZA.ini +19 -0
  136. package/dist/data/obs-plugins/obs-qsv11/locale/ar-SA.ini +20 -0
  137. package/dist/data/obs-plugins/obs-qsv11/locale/ba-RU.ini +2 -0
  138. package/dist/data/obs-plugins/obs-qsv11/locale/be-BY.ini +20 -0
  139. package/dist/data/obs-plugins/obs-qsv11/locale/bg-BG.ini +7 -0
  140. package/dist/data/obs-plugins/obs-qsv11/locale/bn-BD.ini +8 -0
  141. package/dist/data/obs-plugins/obs-qsv11/locale/ca-ES.ini +20 -0
  142. package/dist/data/obs-plugins/obs-qsv11/locale/cs-CZ.ini +19 -0
  143. package/dist/data/obs-plugins/obs-qsv11/locale/da-DK.ini +19 -0
  144. package/dist/data/obs-plugins/obs-qsv11/locale/de-DE.ini +19 -0
  145. package/dist/data/obs-plugins/obs-qsv11/locale/el-GR.ini +20 -0
  146. package/dist/data/obs-plugins/obs-qsv11/locale/en-GB.ini +1 -0
  147. package/dist/data/obs-plugins/obs-qsv11/locale/en-US.ini +21 -0
  148. package/dist/data/obs-plugins/obs-qsv11/locale/es-ES.ini +19 -0
  149. package/dist/data/obs-plugins/obs-qsv11/locale/et-EE.ini +20 -0
  150. package/dist/data/obs-plugins/obs-qsv11/locale/eu-ES.ini +11 -0
  151. package/dist/data/obs-plugins/obs-qsv11/locale/fa-IR.ini +20 -0
  152. package/dist/data/obs-plugins/obs-qsv11/locale/fi-FI.ini +20 -0
  153. package/dist/data/obs-plugins/obs-qsv11/locale/fil-PH.ini +11 -0
  154. package/dist/data/obs-plugins/obs-qsv11/locale/fr-FR.ini +20 -0
  155. package/dist/data/obs-plugins/obs-qsv11/locale/gd-GB.ini +8 -0
  156. package/dist/data/obs-plugins/obs-qsv11/locale/gl-ES.ini +20 -0
  157. package/dist/data/obs-plugins/obs-qsv11/locale/he-IL.ini +20 -0
  158. package/dist/data/obs-plugins/obs-qsv11/locale/hi-IN.ini +20 -0
  159. package/dist/data/obs-plugins/obs-qsv11/locale/hr-HR.ini +14 -0
  160. package/dist/data/obs-plugins/obs-qsv11/locale/hu-HU.ini +20 -0
  161. package/dist/data/obs-plugins/obs-qsv11/locale/hy-AM.ini +13 -0
  162. package/dist/data/obs-plugins/obs-qsv11/locale/id-ID.ini +18 -0
  163. package/dist/data/obs-plugins/obs-qsv11/locale/is-IS.ini +1 -0
  164. package/dist/data/obs-plugins/obs-qsv11/locale/it-IT.ini +20 -0
  165. package/dist/data/obs-plugins/obs-qsv11/locale/ja-JP.ini +16 -0
  166. package/dist/data/obs-plugins/obs-qsv11/locale/ka-GE.ini +20 -0
  167. package/dist/data/obs-plugins/obs-qsv11/locale/kaa.ini +10 -0
  168. package/dist/data/obs-plugins/obs-qsv11/locale/kab-KAB.ini +5 -0
  169. package/dist/data/obs-plugins/obs-qsv11/locale/kmr-TR.ini +12 -0
  170. package/dist/data/obs-plugins/obs-qsv11/locale/ko-KR.ini +20 -0
  171. package/dist/data/obs-plugins/obs-qsv11/locale/ms-MY.ini +20 -0
  172. package/dist/data/obs-plugins/obs-qsv11/locale/nb-NO.ini +16 -0
  173. package/dist/data/obs-plugins/obs-qsv11/locale/nl-NL.ini +18 -0
  174. package/dist/data/obs-plugins/obs-qsv11/locale/nn-NO.ini +2 -0
  175. package/dist/data/obs-plugins/obs-qsv11/locale/oc-FR.ini +1 -0
  176. package/dist/data/obs-plugins/obs-qsv11/locale/pl-PL.ini +16 -0
  177. package/dist/data/obs-plugins/obs-qsv11/locale/pt-BR.ini +20 -0
  178. package/dist/data/obs-plugins/obs-qsv11/locale/pt-PT.ini +20 -0
  179. package/dist/data/obs-plugins/obs-qsv11/locale/ro-RO.ini +20 -0
  180. package/dist/data/obs-plugins/obs-qsv11/locale/ru-RU.ini +20 -0
  181. package/dist/data/obs-plugins/obs-qsv11/locale/si-LK.ini +8 -0
  182. package/dist/data/obs-plugins/obs-qsv11/locale/sk-SK.ini +19 -0
  183. package/dist/data/obs-plugins/obs-qsv11/locale/sl-SI.ini +20 -0
  184. package/dist/data/obs-plugins/obs-qsv11/locale/sr-CS.ini +6 -0
  185. package/dist/data/obs-plugins/obs-qsv11/locale/sr-SP.ini +10 -0
  186. package/dist/data/obs-plugins/obs-qsv11/locale/sv-SE.ini +20 -0
  187. package/dist/data/obs-plugins/obs-qsv11/locale/ta-IN.ini +2 -0
  188. package/dist/data/obs-plugins/obs-qsv11/locale/th-TH.ini +20 -0
  189. package/dist/data/obs-plugins/obs-qsv11/locale/tl-PH.ini +5 -0
  190. package/dist/data/obs-plugins/obs-qsv11/locale/tr-TR.ini +20 -0
  191. package/dist/data/obs-plugins/obs-qsv11/locale/tt-RU.ini +3 -0
  192. package/dist/data/obs-plugins/obs-qsv11/locale/ug-CN.ini +20 -0
  193. package/dist/data/obs-plugins/obs-qsv11/locale/uk-UA.ini +20 -0
  194. package/dist/data/obs-plugins/obs-qsv11/locale/vi-VN.ini +20 -0
  195. package/dist/data/obs-plugins/obs-qsv11/locale/zh-CN.ini +20 -0
  196. package/dist/data/obs-plugins/obs-qsv11/locale/zh-TW.ini +20 -0
  197. package/dist/noobs.node +0 -0
  198. package/dist/obs-plugins/image-source.dll +0 -0
  199. package/dist/obs-plugins/obs-filters.dll +0 -0
  200. package/dist/obs-plugins/obs-nvenc.dll +0 -0
  201. package/dist/obs-plugins/obs-qsv11.dll +0 -0
  202. package/dist/obs-plugins/obs-x264.dll +0 -0
  203. package/dist/obs-plugins/win-capture.dll +0 -0
  204. package/dist/obs-plugins/win-wasapi.dll +0 -0
  205. package/index.d.ts +5 -8
  206. package/package.json +1 -1
  207. package/src/main.cpp +34 -65
  208. package/src/obs_interface.cpp +322 -215
  209. package/src/obs_interface.h +29 -27
@@ -30,37 +30,40 @@ struct PreviewInfo {
30
30
  uint32_t displayWidth, displayHeight;
31
31
  };
32
32
 
33
+ struct SourceSize {
34
+ uint32_t width;
35
+ uint32_t height;
36
+ };
37
+
33
38
  class ObsInterface {
34
39
  public:
35
40
  ObsInterface(
36
41
  const std::string& distPath, // Where to look for plugins and data
37
42
  const std::string& logPath, // Where to write logs to
38
- const std::string& recordingPath, // Where to save recordings
39
43
  Napi::ThreadSafeFunction cb // JavaScript callback
40
44
  );
41
45
 
42
46
  ~ObsInterface();
43
47
 
44
- bool setBuffering(bool buffering); // In buffering mode, the recording is stored in memory and can be converted to a file later.
45
48
  void startBuffering(); // Start buffering to memory.
46
49
  void startRecording(int offset); // Convert the active buffered recording to a real one.
47
50
  void stopRecording(); // Stop the recording.
48
51
  void forceStopRecording(); // Force stop the recording, this will not save the current recording.
49
52
  std::string getLastRecording(); // Get the last recorded file path.
50
- void setRecordingDir(const std::string& recordingPath); // Output must not be active when calling this.
53
+ void setBuffering(bool buffer); // Enable or disable buffering.
54
+ void setRecordingDir(const std::string& recordingPath); // Set the recording path.
51
55
  void setVideoContext(int fps, int width, int height); // Reset video settings.
52
56
 
53
- void createSource(std::string name, std::string type); // Create a new source
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.
54
58
  void deleteSource(std::string name); // Release a source.
55
59
  obs_data_t* getSourceSettings(std::string name); // Get the current settings.
56
60
  void setSourceSettings(std::string name, obs_data_t* settings); // Set settings.
57
61
  obs_properties_t* getSourceProperties(std::string name); // Get the settings schema.
58
62
  void setMuteAudioInputs(bool mute); // Mute or unmute all audio inputs.
59
- void setOutputVolume(float volume);
60
- void setInputVolume(float volume);
61
- void setProcessVolume(float volume);
62
-
63
- void setVolmeterEnabled(bool enabled);
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.
64
67
 
65
68
  void addSourceToScene(std::string name); // Add source to scene.
66
69
  void removeSourceFromScene(std::string name); // Remove source from scene.
@@ -78,22 +81,22 @@ class ObsInterface {
78
81
 
79
82
  std::vector<std::string> listAvailableVideoEncoders(); // Return a list of available video encoders.
80
83
  void setVideoEncoder(std::string id, obs_data_t* settings); // Set the video encoder to use.
81
-
82
- private:
83
- obs_output_t *file_output = nullptr;
84
- obs_output_t *buffer_output = nullptr;
85
84
 
86
- obs_scene_t *scene = nullptr;
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, SignalContext*> volmeter_cb_ctx; // Map of volmeter callback contexts.
89
+ std::map<std::string, obs_source_t*> filters; // Map of source names to obs_source_t filter pointers.
87
90
 
88
- obs_encoder_t *file_video_encoder = nullptr;
89
- obs_encoder_t *file_audio_encoder = nullptr;
91
+ void sourceCallback(std::string name); // Send callback for source change.
92
+ void zeroVolmeter(std::string name); // Zero the volmeter for a source.
90
93
 
91
- obs_encoder_t *buffer_video_encoder = nullptr;
92
- obs_encoder_t *buffer_audio_encoder = nullptr;
94
+ private:
95
+ obs_output_t *output = nullptr;
96
+ obs_scene_t *scene = nullptr;
93
97
 
94
- float output_volume = 1.0f; // Volume for the output.
95
- float input_volume = 1.0f; // Volume for the input.
96
- float process_volume = 1.0f; // Volume for the process.
98
+ obs_encoder_t *video_encoder = nullptr;
99
+ obs_encoder_t *audio_encoder = nullptr;
97
100
 
98
101
  obs_display_t *display = nullptr;
99
102
  HWND preview_hwnd = nullptr; // window handle for scene preview
@@ -103,13 +106,10 @@ class ObsInterface {
103
106
 
104
107
  bool buffering = false; // Whether we are buffering the recording in memory.
105
108
  bool drawSourceOutline = false; // Draw red outline around source
106
- std::map<std::string, obs_source_t*> sources; // Map of source names to obs_source_t pointers.
107
- std::map<std::string, obs_volmeter_t*> volmeters; // Map of source names to obs_volmeter_t pointers.
108
-
109
109
  void init_obs(const std::string& distPath);
110
110
  int reset_video(int fps, int width, int height);
111
111
  bool reset_audio();
112
- void load_module(const char* module, const char* data); // Load a module, data is optional.
112
+ void load_module(const char* module, const char* data, bool allowFail); // Load a module, data is optional.
113
113
  void connect_signal_handlers(obs_output_t *output);
114
114
  void disconnect_signal_handlers(obs_output_t *output);
115
115
 
@@ -127,12 +127,14 @@ class ObsInterface {
127
127
  void create_scene();
128
128
  void create_output();
129
129
 
130
- std::string video_encoder_id; // The video encoder ID to use.
131
- obs_data_t* video_encoder_settings; // Settings for the video encoder.
130
+ std::string video_encoder_id = "obs_x264"; // The video encoder ID to use.
131
+ obs_data_t* video_encoder_settings = obs_data_create(); // Settings for the video encoder.
132
132
  void create_video_encoders();
133
133
  void create_audio_encoders();
134
134
 
135
135
  bool volmeter_enabled = false; // Whether the volmeter callback is enabled.
136
+ bool audio_suppression = false; // Whether audio suppression is enabled.
137
+ bool force_mono = false; // Whether force mono audio is enabled.
136
138
 
137
139
  static void volmeter_callback(
138
140
  void *data,