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
 | 
					#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) {
 | 
							int offset, int length, int channel, long unsigned *rate, int *n_samples) {
 | 
				
			||||||
	float *samples;
 | 
						float *samples;
 | 
				
			||||||
	int i, n;
 | 
						int i, n;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (length <= 0)
 | 
						if (length <= 0)
 | 
				
			||||||
		length = info.frames;
 | 
							length = info->frames;
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		length = SPA_MIN(length, info.frames);
 | 
							length = SPA_MIN(length, info->frames);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	length -= SPA_MIN(offset, length);
 | 
						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)
 | 
						if (n == 0)
 | 
				
			||||||
		return NULL;
 | 
							return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	samples = calloc(n * info.channels, sizeof(float));
 | 
						samples = calloc(n * info->channels, sizeof(float));
 | 
				
			||||||
	if (samples == NULL)
 | 
						if (samples == NULL)
 | 
				
			||||||
		return NULL;
 | 
							return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (offset > 0)
 | 
						if (offset > 0)
 | 
				
			||||||
		sf_seek(f, offset, SEEK_SET);
 | 
							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++)
 | 
						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;
 | 
						*n_samples = n;
 | 
				
			||||||
	*rate = info.samplerate;
 | 
						*rate = info->samplerate;
 | 
				
			||||||
	return samples;
 | 
						return samples;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					@ -748,7 +748,7 @@ static float *read_closest(struct plugin *pl, char **filenames, float gain, floa
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (fs[best] != NULL) {
 | 
						if (fs[best] != NULL) {
 | 
				
			||||||
		spa_log_info(pl->log, "loading best rate:%u %s", infos[best].samplerate, filenames[best]);
 | 
							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,
 | 
									(int) (delay_sec * infos[best].samplerate), offset, length,
 | 
				
			||||||
				channel, rate, n_samples);
 | 
									channel, rate, n_samples);
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue