(sndfile loader) Removed useless allocation when mixing to mono
Former-commit-id: 22a4032bd2edffe51b9d9d823d7a2155a7b9fef5
This commit is contained in:
parent
28bbc28125
commit
0a9bf851fd
|
|
@ -8,6 +8,7 @@
|
|||
template<typename T>
|
||||
void NzMixToMono(T* input, T* output, unsigned int channelCount, unsigned int frameCount)
|
||||
{
|
||||
///DOC: Le buffer d'entrée peut être le même que le buffer de sortie
|
||||
// Pour éviter l'overflow, on utilise comme accumulateur un type assez grand, (u)int 64 bits pour les entiers, double pour les flottants
|
||||
typedef typename std::conditional<std::is_unsigned<T>::value, nzUInt64, nzInt64>::type BiggestInt;
|
||||
typedef typename std::conditional<std::is_integral<T>::value, BiggestInt, double>::type Biggest;
|
||||
|
|
|
|||
|
|
@ -363,8 +363,8 @@ namespace
|
|||
// Une conversion en mono est-elle nécessaire ?
|
||||
if (parameters.forceMono && format != nzAudioFormat_Mono)
|
||||
{
|
||||
std::unique_ptr<nzInt16[]> monoSamples(new nzInt16[info.frames]);
|
||||
NzMixToMono(samples.get(), monoSamples.get(), info.channels, info.frames);
|
||||
// Nous effectuons la conversion en mono dans le même buffer (il va de toute façon être copié)
|
||||
NzMixToMono(monoSamples.get(), monoSamples.get(), info.channels, info.frames);
|
||||
|
||||
format = nzAudioFormat_Mono;
|
||||
samples = std::move(monoSamples);
|
||||
|
|
|
|||
Loading…
Reference in New Issue