| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- #include <obs-module.h>
 
- static const char *invert_polarity_name(void *unused)
 
- {
 
- 	UNUSED_PARAMETER(unused);
 
- 	return obs_module_text("InvertPolarity");
 
- }
 
- static void invert_polarity_destroy(void *data)
 
- {
 
- 	UNUSED_PARAMETER(data);
 
- }
 
- static void *invert_polarity_create(obs_data_t *settings, obs_source_t *filter)
 
- {
 
- 	UNUSED_PARAMETER(settings);
 
- 	return filter;
 
- }
 
- static struct obs_audio_data *
 
- invert_polarity_filter_audio(void *unused, struct obs_audio_data *audio)
 
- {
 
- 	float **adata = (float **)audio->data;
 
- 	for (size_t c = 0; c < MAX_AV_PLANES; c++) {
 
- 		register float *channel_data = adata[c];
 
- 		register float *channel_end = channel_data + audio->frames;
 
- 		if (!channel_data)
 
- 			break;
 
- 		while (channel_data < channel_end) {
 
- 			*(channel_data++) *= -1.0f;
 
- 		}
 
- 	}
 
- 	UNUSED_PARAMETER(unused);
 
- 	return audio;
 
- }
 
- struct obs_source_info invert_polarity_filter = {
 
- 	.id = "invert_polarity_filter",
 
- 	.type = OBS_SOURCE_TYPE_FILTER,
 
- 	.output_flags = OBS_SOURCE_AUDIO,
 
- 	.get_name = invert_polarity_name,
 
- 	.create = invert_polarity_create,
 
- 	.destroy = invert_polarity_destroy,
 
- 	.filter_audio = invert_polarity_filter_audio,
 
- };
 
 
  |