mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	spa: filter-graph: builtin: pointer instead of copying
This commit is contained in:
		
							parent
							
								
									bf5d5f0201
								
							
						
					
					
						commit
						bedcbf3631
					
				
					 1 changed files with 9 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -686,15 +686,15 @@ struct convolver_impl {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_SNDFILE
 | 
			
		||||
static float *read_samples_from_sf(SNDFILE *f, SF_INFO info, float gain, int delay,
 | 
			
		||||
static float *read_samples_from_sf(SNDFILE *f, const SF_INFO *info, float gain, int delay,
 | 
			
		||||
		int offset, int length, int channel, long unsigned *rate, int *n_samples) {
 | 
			
		||||
	float *samples;
 | 
			
		||||
	int i, n;
 | 
			
		||||
 | 
			
		||||
	if (length <= 0)
 | 
			
		||||
		length = info.frames;
 | 
			
		||||
		length = info->frames;
 | 
			
		||||
	else
 | 
			
		||||
		length = SPA_MIN(length, info.frames);
 | 
			
		||||
		length = SPA_MIN(length, info->frames);
 | 
			
		||||
 | 
			
		||||
	length -= SPA_MIN(offset, length);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -702,21 +702,21 @@ static float *read_samples_from_sf(SNDFILE *f, SF_INFO info, float gain, int del
 | 
			
		|||
	if (n == 0)
 | 
			
		||||
		return NULL;
 | 
			
		||||
 | 
			
		||||
	samples = calloc(n * info.channels, sizeof(float));
 | 
			
		||||
	samples = calloc(n * info->channels, sizeof(float));
 | 
			
		||||
	if (samples == NULL)
 | 
			
		||||
		return NULL;
 | 
			
		||||
 | 
			
		||||
	if (offset > 0)
 | 
			
		||||
		sf_seek(f, offset, SEEK_SET);
 | 
			
		||||
	sf_readf_float(f, samples + (delay * info.channels), length);
 | 
			
		||||
	sf_readf_float(f, samples + (delay * info->channels), length);
 | 
			
		||||
 | 
			
		||||
	channel = channel % info.channels;
 | 
			
		||||
	channel = channel % info->channels;
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < n; i++)
 | 
			
		||||
		samples[i] = samples[info.channels * i + channel] * gain;
 | 
			
		||||
		samples[i] = samples[info->channels * i + channel] * gain;
 | 
			
		||||
 | 
			
		||||
	*n_samples = n;
 | 
			
		||||
	*rate = info.samplerate;
 | 
			
		||||
	*rate = info->samplerate;
 | 
			
		||||
	return samples;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -748,7 +748,7 @@ static float *read_closest(struct plugin *pl, char **filenames, float gain, floa
 | 
			
		|||
	}
 | 
			
		||||
	if (fs[best] != NULL) {
 | 
			
		||||
		spa_log_info(pl->log, "loading best rate:%u %s", infos[best].samplerate, filenames[best]);
 | 
			
		||||
		samples = read_samples_from_sf(fs[best], infos[best], gain,
 | 
			
		||||
		samples = read_samples_from_sf(fs[best], &infos[best], gain,
 | 
			
		||||
				(int) (delay_sec * infos[best].samplerate), offset, length,
 | 
			
		||||
				channel, rate, n_samples);
 | 
			
		||||
	} else {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue