MCPcopy Create free account
hub / github.com/DistroAV/DistroAV / preview_output_init

Function preview_output_init

src/preview-output.cpp:209–252  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

207}
208
209void preview_output_init()
210{
211 obs_log(LOG_DEBUG, "+preview_output_init()");
212
213 auto config = Config::Current();
214 auto output_name = config->PreviewOutputName;
215 auto output_groups = config->PreviewOutputGroups;
216 auto is_enabled = config->PreviewOutputEnabled;
217
218 preview_output_deinit();
219
220 if (is_enabled && !output_name.isEmpty()) {
221 obs_log(LOG_DEBUG, "preview_output_init: creating NDI Preview Output '%s'", QT_TO_UTF8(output_name));
222 obs_data_t *output_settings = obs_data_create();
223 obs_data_set_string(output_settings, "ndi_name", QT_TO_UTF8(output_name));
224 obs_data_set_string(output_settings, "ndi_groups", QT_TO_UTF8(output_groups));
225
226 obs_data_set_bool(output_settings, "uses_audio",
227 false); // Preview has no audio
228
229 context.output = obs_output_create("ndi_output", "NDI Preview Output", output_settings, nullptr);
230 obs_data_release(output_settings);
231 if (context.output) {
232 obs_log(LOG_DEBUG, "preview_output_init: Successfully created NDI Preview Output '%s'",
233 QT_TO_UTF8(output_name));
234
235 // Start handling "remote" start/stop events (ex: from obs-websocket)
236 auto sh = obs_output_get_signal_handler(context.output);
237 signal_handler_connect(sh, "start", on_preview_output_started, nullptr);
238 signal_handler_connect(sh, "stop", on_preview_output_stopped, nullptr);
239
240 context.ndi_name = output_name;
241 context.ndi_groups = output_groups;
242 } else {
243 obs_log(LOG_WARNING, "WARN-423 - Failed to create NDI Preview Output '%s'",
244 QT_TO_UTF8(output_name));
245 obs_log(LOG_DEBUG, "preview_output_init: failed to create NDI Preview Output '%s'",
246 QT_TO_UTF8(output_name));
247 }
248 preview_output_start();
249 }
250
251 obs_log(LOG_DEBUG, "-preview_output_init()");
252}
253
254void on_preview_scene_changed(enum obs_frontend_event event, void *param)
255{

Callers 2

obs_module_loadFunction · 0.85
onFormAcceptedMethod · 0.85

Calls 2

preview_output_deinitFunction · 0.85
preview_output_startFunction · 0.85

Tested by

no test coverage detected