static inline bool obs_init_handlers(void) { obs->signals = signal_handler_create(); if (!obs->signals) return false; obs->procs = proc_handler_create(); return (obs->procs != NULL); }
bool obs_source_init_handlers(struct obs_source *source) { source->signals = signal_handler_create(); if (!source->signals) return false; source->procs = proc_handler_create(); return (source->procs != NULL); }
static inline bool obs_init_handlers(void) { obs->signals = signal_handler_create(); if (!obs->signals) return false; obs->procs = proc_handler_create(); if (!obs->procs) return false; return signal_handler_add_array(obs->signals, obs_signals); }
obs_output_t obs_output_create(const char *id, const char *name, obs_data_t settings) { const struct obs_output_info *info = find_output(id); struct obs_output *output; if (!info) { blog(LOG_ERROR, "Output '%s' not found", id); return NULL; } output = bzalloc(sizeof(struct obs_output)); output->signals = signal_handler_create(); if (!output->signals) goto fail; output->procs = proc_handler_create(); if (!output->procs) goto fail; output->info = *info; output->settings = obs_data_newref(settings); output->data = info->create(output->settings, output); if (!output->data) goto fail; output->name = bstrdup(name); pthread_mutex_lock(&obs->data.outputs_mutex); da_push_back(obs->data.outputs, &output); pthread_mutex_unlock(&obs->data.outputs_mutex); output->valid = true; return output; fail: obs_output_destroy(output); return NULL; }
static inline bool obs_context_data_init_wrap( struct obs_context_data *context, obs_data_t *settings, const char *name) { assert(context); memset(context, 0, sizeof(*context)); pthread_mutex_init_value(&context->rename_cache_mutex); if (pthread_mutex_init(&context->rename_cache_mutex, NULL) < 0) return false; context->signals = signal_handler_create(); if (!context->signals) return false; context->procs = proc_handler_create(); if (!context->procs) return false; context->name = dup_name(name); context->settings = obs_data_newref(settings); return true; }