mirror of
https://github.com/ZDoom/fluidsynth.git
synced 2025-02-21 11:21:24 +00:00
This change moves the Ogg Vorbis decompression to fluid_sffile, so that this is the only place where we have to deal with compressed audio. It also changes the way the samples are loaded for SF3 files: previously, the compressed data was copied into memory, then the individual samples were decompressed (resulting in both compressed and decompressed data to stay in memory). Also, decompressed data wasn't cached, so previous loads of the same file ran the decompressed again for each sample. After this change, the vorbis decompression is changed so that it reads the compressed data directly from the Soundfont file. And the resulting WAV data is stored in the sample cache.
34 lines
1.2 KiB
C
34 lines
1.2 KiB
C
/* FluidSynth - A Software Synthesizer
|
|
*
|
|
* Copyright (C) 2003 Peter Hanappe and others.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public License
|
|
* as published by the Free Software Foundation; either version 2.1 of
|
|
* the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free
|
|
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
* 02110-1301, USA
|
|
*/
|
|
|
|
|
|
#ifndef _FLUID_SAMPLECACHE_H
|
|
#define _FLUID_SAMPLECACHE_H
|
|
|
|
#include "fluid_sfont.h"
|
|
#include "fluid_sffile.h"
|
|
|
|
int fluid_samplecache_load(SFData *sf,
|
|
unsigned int sample_start, unsigned int sample_end, int sample_type,
|
|
int try_mlock, short **data, char **data24);
|
|
|
|
int fluid_samplecache_unload(const short *sample_data);
|
|
|
|
#endif /* _FLUID_SAMPLECACHE_H */
|