Browse Source

libobs: Store source audio mixers in obs_source (skip)

(Note: This commit breaks libobs compilation.  Skip if bisecting)

The mixers that a source was assigned to were originally stored in the
audio line.  This will store it in the sources themselves instead.
jp9000 9 years ago
parent
commit
f73bbe6746
2 changed files with 5 additions and 5 deletions
  1. 1 0
      libobs/obs-internal.h
  2. 4 5
      libobs/obs-source.c

+ 1 - 0
libobs/obs-internal.h

@@ -507,6 +507,7 @@ struct obs_source {
 	pthread_mutex_t                 audio_mutex;
 	pthread_mutex_t                 audio_mutex;
 	struct obs_audio_data           audio_data;
 	struct obs_audio_data           audio_data;
 	size_t                          audio_storage_size;
 	size_t                          audio_storage_size;
+	uint32_t                        audio_mixers;
 	float                           base_volume;
 	float                           base_volume;
 	float                           user_volume;
 	float                           user_volume;
 	float                           present_volume;
 	float                           present_volume;

+ 4 - 5
libobs/obs-source.c

@@ -165,6 +165,7 @@ bool obs_source_init(struct obs_source *source,
 
 
 	source->control = bzalloc(sizeof(obs_weak_source_t));
 	source->control = bzalloc(sizeof(obs_weak_source_t));
 	source->control->source = source;
 	source->control->source = source;
+	source->audio_mixers = 0xF;
 
 
 	obs_context_data_insert(&source->context,
 	obs_context_data_insert(&source->context,
 			&obs->data.sources_mutex,
 			&obs->data.sources_mutex,
@@ -2776,15 +2777,13 @@ uint32_t obs_source_get_flags(const obs_source_t *source)
 void obs_source_set_audio_mixers(obs_source_t *source, uint32_t mixers)
 void obs_source_set_audio_mixers(obs_source_t *source, uint32_t mixers)
 {
 {
 	struct calldata data = {0};
 	struct calldata data = {0};
-	uint32_t cur_mixers;
 
 
 	if (!obs_source_valid(source, "obs_source_set_audio_mixers"))
 	if (!obs_source_valid(source, "obs_source_set_audio_mixers"))
 		return;
 		return;
 	if ((source->info.output_flags & OBS_SOURCE_AUDIO) == 0)
 	if ((source->info.output_flags & OBS_SOURCE_AUDIO) == 0)
 		return;
 		return;
 
 
-	cur_mixers = audio_line_get_mixers(source->audio_line);
-	if (cur_mixers == mixers)
+	if (source->audio_mixers == mixers)
 		return;
 		return;
 
 
 	calldata_set_ptr(&data, "source", source);
 	calldata_set_ptr(&data, "source", source);
@@ -2795,7 +2794,7 @@ void obs_source_set_audio_mixers(obs_source_t *source, uint32_t mixers)
 	mixers = (uint32_t)calldata_int(&data, "mixers");
 	mixers = (uint32_t)calldata_int(&data, "mixers");
 	calldata_free(&data);
 	calldata_free(&data);
 
 
-	audio_line_set_mixers(source->audio_line, mixers);
+	source->audio_mixers = mixers;
 }
 }
 
 
 uint32_t obs_source_get_audio_mixers(const obs_source_t *source)
 uint32_t obs_source_get_audio_mixers(const obs_source_t *source)
@@ -2805,7 +2804,7 @@ uint32_t obs_source_get_audio_mixers(const obs_source_t *source)
 	if ((source->info.output_flags & OBS_SOURCE_AUDIO) == 0)
 	if ((source->info.output_flags & OBS_SOURCE_AUDIO) == 0)
 		return 0;
 		return 0;
 
 
-	return audio_line_get_mixers(source->audio_line);
+	return source->audio_mixers;
 }
 }
 
 
 void obs_source_draw_set_color_matrix(const struct matrix4 *color_matrix,
 void obs_source_draw_set_color_matrix(const struct matrix4 *color_matrix,