From 3ed647b8a0e48a5d34c8bdc4604c65c07aaa15a0 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Sun, 16 Mar 2014 17:42:37 -0700 Subject: [PATCH] Set defaults automatically Automatically query defaults for sources/outputs/encoders and set them before calling create --- libobs/obs-encoder.c | 5 ++++- libobs/obs-output.c | 5 ++++- libobs/obs-source.c | 4 +++- plugins/mac-capture/mac-audio.c | 2 -- plugins/obs-x264/obs-x264.c | 2 -- plugins/win-capture/monitor-capture.c | 2 -- plugins/win-wasapi/win-wasapi.cpp | 1 - 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/libobs/obs-encoder.c b/libobs/obs-encoder.c index cd2e8b0cf..a665cedb6 100644 --- a/libobs/obs-encoder.c +++ b/libobs/obs-encoder.c @@ -43,7 +43,10 @@ static bool init_encoder(struct obs_encoder *encoder, const char *name, return false; encoder->settings = obs_data_newref(settings); - encoder->data = encoder->info.create(encoder->settings, encoder); + if (encoder->info.defaults) + encoder->info.defaults(encoder->settings); + + encoder->data = encoder->info.create(encoder->settings, encoder); if (!encoder->data) { pthread_mutex_destroy(&encoder->callbacks_mutex); diff --git a/libobs/obs-output.c b/libobs/obs-output.c index c6b847beb..6b80f36c7 100644 --- a/libobs/obs-output.c +++ b/libobs/obs-output.c @@ -49,8 +49,11 @@ obs_output_t obs_output_create(const char *id, const char *name, if (!output->procs) goto fail; - output->info = *info; + output->info = *info; output->settings = obs_data_newref(settings); + if (output->info.defaults) + output->info.defaults(output->settings); + output->data = info->create(output->settings, output); if (!output->data) goto fail; diff --git a/libobs/obs-source.c b/libobs/obs-source.c index fb0e6f859..dd5331362 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -182,8 +182,10 @@ obs_source_t obs_source_create(enum obs_source_type type, const char *id, source_init_name(source, name); source->settings = obs_data_newref(settings); - source->data = info->create(source->settings, source); + if (info->defaults) + info->defaults(source->settings); + source->data = info->create(source->settings, source); if (!source->data) goto fail; diff --git a/plugins/mac-capture/mac-audio.c b/plugins/mac-capture/mac-audio.c index 0b1d2b2a4..3c7c430b4 100644 --- a/plugins/mac-capture/mac-audio.c +++ b/plugins/mac-capture/mac-audio.c @@ -684,8 +684,6 @@ static void *coreaudio_create(obs_data_t settings, obs_source_t source, return NULL; } - coreaudio_defaults(settings); - ca->device_uid = bstrdup(obs_data_getstring(settings, "device_id")); ca->source = source; ca->input = input; diff --git a/plugins/obs-x264/obs-x264.c b/plugins/obs-x264/obs-x264.c index fb284e3b7..e94b74192 100644 --- a/plugins/obs-x264/obs-x264.c +++ b/plugins/obs-x264/obs-x264.c @@ -358,8 +358,6 @@ static void *obs_x264_create(obs_data_t settings, obs_encoder_t encoder) { struct obs_x264 *data = bzalloc(sizeof(struct obs_x264)); data->encoder = encoder; - - obs_x264_defaults(settings); return data; } diff --git a/plugins/win-capture/monitor-capture.c b/plugins/win-capture/monitor-capture.c index eb579e11b..cd0287446 100644 --- a/plugins/win-capture/monitor-capture.c +++ b/plugins/win-capture/monitor-capture.c @@ -119,9 +119,7 @@ static void *monitor_capture_create(obs_data_t settings, obs_source_t source) capture = bzalloc(sizeof(struct monitor_capture)); capture->opaque_effect = opaque_effect; - monitor_capture_defaults(settings); update_settings(capture, settings); - return capture; } diff --git a/plugins/win-wasapi/win-wasapi.cpp b/plugins/win-wasapi/win-wasapi.cpp index fb7979b70..81a19cdb2 100644 --- a/plugins/win-wasapi/win-wasapi.cpp +++ b/plugins/win-wasapi/win-wasapi.cpp @@ -71,7 +71,6 @@ WASAPISource::WASAPISource(obs_data_t settings, obs_source_t source_, source (source_), isInputDevice (input) { - GetWASAPIDefaults(settings); UpdateSettings(settings); stopSignal = CreateEvent(nullptr, true, false, nullptr);