Browse Source

obs-filters: Fix segfault in Compressor Filter

obs_audio_data* sent to compressor_filter_audio had audio->frames == 0.
The analyze_envelope was trying to access an array at index -1 in result
of that. Just return if no samples are provided.

This fixes Mantis issue: 1261
Shaolin 7 years ago
parent
commit
d5fb5edd93
1 changed files with 3 additions and 0 deletions
  1. 3 0
      plugins/obs-filters/compressor-filter.c

+ 3 - 0
plugins/obs-filters/compressor-filter.c

@@ -442,6 +442,9 @@ static struct obs_audio_data *compressor_filter_audio(void *data,
 	struct compressor_data *cd = data;
 	struct compressor_data *cd = data;
 
 
 	const uint32_t num_samples = audio->frames;
 	const uint32_t num_samples = audio->frames;
+	if (num_samples == 0)
+		return audio;
+
 	float **samples = (float**)audio->data;
 	float **samples = (float**)audio->data;
 
 
 	pthread_mutex_lock(&cd->sidechain_update_mutex);
 	pthread_mutex_lock(&cd->sidechain_update_mutex);