Просмотр исходного кода

libobs: Allow source to fully control source flags (for now)

This change prevents source flags from being incorrectly overwritten and
set to 0.  Eventually flags need to be separated from source settings
and this should be reverted, but for now this solves an issue where
buffering would be enabled on async video sources regardless of whether
the user disabled it or not on the source.
jp9000 9 лет назад
Родитель
Сommit
d85224bb9b
2 измененных файлов с 2 добавлено и 8 удалено
  1. 2 1
      libobs/obs-source.c
  2. 0 7
      libobs/obs.c

+ 2 - 1
libobs/obs-source.c

@@ -330,6 +330,8 @@ static obs_source_t *obs_source_create_internal(const char *id,
 	if (!private)
 		obs_source_init_audio_hotkeys(source);
 
+	source->flags = source->default_flags;
+
 	/* allow the source to be created even if creation fails so that the
 	 * user's data doesn't become lost */
 	if (info)
@@ -342,7 +344,6 @@ static obs_source_t *obs_source_create_internal(const char *id,
 			private ? "private " : "", name, id);
 	obs_source_dosignal(source, "source_create", NULL);
 
-	source->flags = source->default_flags;
 	source->enabled = true;
 	return source;
 

+ 0 - 7
libobs/obs.c

@@ -1464,7 +1464,6 @@ static obs_source_t *obs_load_source_type(obs_data_t *source_data)
 	obs_data_t   *hotkeys  = obs_data_get_obj(source_data, "hotkeys");
 	double       volume;
 	int64_t      sync;
-	uint32_t     flags;
 	uint32_t     mixers;
 	int          di_order;
 	int          di_mode;
@@ -1485,10 +1484,6 @@ static obs_source_t *obs_load_source_type(obs_data_t *source_data)
 	mixers = (uint32_t)obs_data_get_int(source_data, "mixers");
 	obs_source_set_audio_mixers(source, mixers);
 
-	obs_data_set_default_int(source_data, "flags", source->default_flags);
-	flags = (uint32_t)obs_data_get_int(source_data, "flags");
-	obs_source_set_flags(source, flags);
-
 	obs_data_set_default_bool(source_data, "enabled", true);
 	obs_source_set_enabled(source,
 			obs_data_get_bool(source_data, "enabled"));
@@ -1611,7 +1606,6 @@ obs_data_t *obs_save_source(obs_source_t *source)
 	float      volume      = obs_source_get_volume(source);
 	uint32_t   mixers      = obs_source_get_audio_mixers(source);
 	int64_t    sync        = obs_source_get_sync_offset(source);
-	uint32_t   flags       = obs_source_get_flags(source);
 	const char *name       = obs_source_get_name(source);
 	const char *id         = obs_source_get_id(source);
 	bool       enabled     = obs_source_enabled(source);
@@ -1639,7 +1633,6 @@ obs_data_t *obs_save_source(obs_source_t *source)
 	obs_data_set_obj   (source_data, "settings", settings);
 	obs_data_set_int   (source_data, "mixers",   mixers);
 	obs_data_set_int   (source_data, "sync",     sync);
-	obs_data_set_int   (source_data, "flags",    flags);
 	obs_data_set_double(source_data, "volume",   volume);
 	obs_data_set_bool  (source_data, "enabled",  enabled);
 	obs_data_set_bool  (source_data, "muted",    muted);