mirror of
https://github.com/cookiengineer/audacity
synced 2025-12-13 08:06:32 +01:00
Update libsndfile to 1.0.29pre2+git
This pulls in MANY (over 890) changes compared to our from our current 1.0.24 version.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
** Copyright (C) 1999-2011 Erik de Castro Lopo <erikd@mega-nerd.com>
|
||||
** Copyright (C) 1999-2017 Erik de Castro Lopo <erikd@mega-nerd.com>
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU Lesser General Public License as published by
|
||||
@@ -52,23 +52,19 @@
|
||||
typedef struct
|
||||
{ int version ;
|
||||
int endianness ;
|
||||
int samplerate ;
|
||||
int format ;
|
||||
int samplerate ;
|
||||
int format ;
|
||||
int channels ;
|
||||
int source ;
|
||||
} PAF_FMT ;
|
||||
|
||||
typedef struct
|
||||
{ int max_blocks, channels, samplesperblock, blocksize ;
|
||||
{ int max_blocks, channels, blocksize ;
|
||||
int read_block, write_block, read_count, write_count ;
|
||||
sf_count_t sample_count ;
|
||||
int *samples ;
|
||||
unsigned char *block ;
|
||||
#if HAVE_FLEXIBLE_ARRAY
|
||||
int *block ;
|
||||
int data [] ; /* ISO C99 struct flexible array. */
|
||||
#else
|
||||
int data [1] ; /* This is a hack and may not work. */
|
||||
#endif
|
||||
} PAF24_PRIVATE ;
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
@@ -163,6 +159,9 @@ paf_read_header (SF_PRIVATE *psf)
|
||||
{ PAF_FMT paf_fmt ;
|
||||
int marker ;
|
||||
|
||||
if (psf->filelength < PAF_HEADER_LENGTH)
|
||||
return SFE_PAF_SHORT_HEADER ;
|
||||
|
||||
memset (&paf_fmt, 0, sizeof (paf_fmt)) ;
|
||||
psf_binheader_readf (psf, "pm", 0, &marker) ;
|
||||
|
||||
@@ -199,8 +198,8 @@ paf_read_header (SF_PRIVATE *psf)
|
||||
psf->endian = SF_ENDIAN_BIG ;
|
||||
} ;
|
||||
|
||||
if (psf->filelength < PAF_HEADER_LENGTH)
|
||||
return SFE_PAF_SHORT_HEADER ;
|
||||
if (paf_fmt.channels < 1 || paf_fmt.channels > SF_MAX_CHANNELS)
|
||||
return SFE_PAF_BAD_CHANNELS ;
|
||||
|
||||
psf->datalength = psf->filelength - psf->dataoffset ;
|
||||
|
||||
@@ -299,26 +298,26 @@ paf_write_header (SF_PRIVATE *psf, int UNUSED (calc_length))
|
||||
} ;
|
||||
|
||||
/* Reset the current header length to zero. */
|
||||
psf->header [0] = 0 ;
|
||||
psf->headindex = 0 ;
|
||||
psf->header.ptr [0] = 0 ;
|
||||
psf->header.indx = 0 ;
|
||||
|
||||
if (psf->endian == SF_ENDIAN_BIG)
|
||||
{ /* Marker, version, endianness, samplerate */
|
||||
psf_binheader_writef (psf, "Em444", PAF_MARKER, 0, 0, psf->sf.samplerate) ;
|
||||
psf_binheader_writef (psf, "Em444", BHWm (PAF_MARKER), BHW4 (0), BHW4 (0), BHW4 (psf->sf.samplerate)) ;
|
||||
/* format, channels, source */
|
||||
psf_binheader_writef (psf, "E444", paf_format, psf->sf.channels, 0) ;
|
||||
psf_binheader_writef (psf, "E444", BHW4 (paf_format), BHW4 (psf->sf.channels), BHW4 (0)) ;
|
||||
}
|
||||
else if (psf->endian == SF_ENDIAN_LITTLE)
|
||||
{ /* Marker, version, endianness, samplerate */
|
||||
psf_binheader_writef (psf, "em444", FAP_MARKER, 0, 1, psf->sf.samplerate) ;
|
||||
psf_binheader_writef (psf, "em444", BHWm (FAP_MARKER), BHW4 (0), BHW4 (1), BHW4 (psf->sf.samplerate)) ;
|
||||
/* format, channels, source */
|
||||
psf_binheader_writef (psf, "e444", paf_format, psf->sf.channels, 0) ;
|
||||
psf_binheader_writef (psf, "e444", BHW4 (paf_format), BHW4 (psf->sf.channels), BHW4 (0)) ;
|
||||
} ;
|
||||
|
||||
/* Zero fill to dataoffset. */
|
||||
psf_binheader_writef (psf, "z", (size_t) (psf->dataoffset - psf->headindex)) ;
|
||||
psf_binheader_writef (psf, "z", BHWz ((size_t) (psf->dataoffset - psf->header.indx))) ;
|
||||
|
||||
psf_fwrite (psf->header, psf->headindex, 1, psf) ;
|
||||
psf_fwrite (psf->header.ptr, psf->header.indx, 1, psf) ;
|
||||
|
||||
return psf->error ;
|
||||
} /* paf_write_header */
|
||||
@@ -356,18 +355,16 @@ paf24_init (SF_PRIVATE *psf)
|
||||
*/
|
||||
psf->last_op = 0 ;
|
||||
|
||||
if (! (psf->codec_data = malloc (paf24size)))
|
||||
if (! (psf->codec_data = calloc (1, paf24size)))
|
||||
return SFE_MALLOC_FAILED ;
|
||||
|
||||
ppaf24 = (PAF24_PRIVATE*) psf->codec_data ;
|
||||
memset (ppaf24, 0, paf24size) ;
|
||||
|
||||
ppaf24->channels = psf->sf.channels ;
|
||||
ppaf24->samples = ppaf24->data ;
|
||||
ppaf24->block = (unsigned char*) (ppaf24->data + PAF24_SAMPLES_PER_BLOCK * ppaf24->channels) ;
|
||||
ppaf24->block = ppaf24->data + PAF24_SAMPLES_PER_BLOCK * ppaf24->channels ;
|
||||
|
||||
ppaf24->blocksize = PAF24_BLOCK_SIZE * ppaf24->channels ;
|
||||
ppaf24->samplesperblock = PAF24_SAMPLES_PER_BLOCK ;
|
||||
|
||||
if (psf->file.mode == SFM_READ || psf->file.mode == SFM_RDWR)
|
||||
{ paf24_read_block (psf, ppaf24) ; /* Read first block. */
|
||||
@@ -405,7 +402,7 @@ paf24_init (SF_PRIVATE *psf)
|
||||
else
|
||||
ppaf24->write_block = 0 ;
|
||||
|
||||
psf->sf.frames = ppaf24->samplesperblock * ppaf24->max_blocks ;
|
||||
psf->sf.frames = PAF24_SAMPLES_PER_BLOCK * ppaf24->max_blocks ;
|
||||
ppaf24->sample_count = psf->sf.frames ;
|
||||
|
||||
return 0 ;
|
||||
@@ -426,8 +423,8 @@ paf24_seek (SF_PRIVATE *psf, int mode, sf_count_t offset)
|
||||
if (mode == SFM_READ && ppaf24->write_count > 0)
|
||||
paf24_write_block (psf, ppaf24) ;
|
||||
|
||||
newblock = offset / ppaf24->samplesperblock ;
|
||||
newsample = offset % ppaf24->samplesperblock ;
|
||||
newblock = offset / PAF24_SAMPLES_PER_BLOCK ;
|
||||
newsample = offset % PAF24_SAMPLES_PER_BLOCK ;
|
||||
|
||||
switch (mode)
|
||||
{ case SFM_READ :
|
||||
@@ -460,7 +457,7 @@ paf24_seek (SF_PRIVATE *psf, int mode, sf_count_t offset)
|
||||
return PSF_SEEK_ERROR ;
|
||||
} ;
|
||||
|
||||
return newblock * ppaf24->samplesperblock + newsample ;
|
||||
return newblock * PAF24_SAMPLES_PER_BLOCK + newsample ;
|
||||
} /* paf24_seek */
|
||||
|
||||
static int
|
||||
@@ -490,8 +487,8 @@ paf24_read_block (SF_PRIVATE *psf, PAF24_PRIVATE *ppaf24)
|
||||
ppaf24->read_block ++ ;
|
||||
ppaf24->read_count = 0 ;
|
||||
|
||||
if (ppaf24->read_block * ppaf24->samplesperblock > ppaf24->sample_count)
|
||||
{ memset (ppaf24->samples, 0, ppaf24->samplesperblock * ppaf24->channels) ;
|
||||
if (ppaf24->read_block * PAF24_SAMPLES_PER_BLOCK > ppaf24->sample_count)
|
||||
{ memset (ppaf24->samples, 0, PAF24_SAMPLES_PER_BLOCK * ppaf24->channels) ;
|
||||
return 1 ;
|
||||
} ;
|
||||
|
||||
@@ -499,30 +496,15 @@ paf24_read_block (SF_PRIVATE *psf, PAF24_PRIVATE *ppaf24)
|
||||
if ((k = psf_fread (ppaf24->block, 1, ppaf24->blocksize, psf)) != ppaf24->blocksize)
|
||||
psf_log_printf (psf, "*** Warning : short read (%d != %d).\n", k, ppaf24->blocksize) ;
|
||||
|
||||
/* Do endian swapping if necessary. */
|
||||
if ((CPU_IS_BIG_ENDIAN && psf->endian == SF_ENDIAN_LITTLE) || (CPU_IS_LITTLE_ENDIAN && psf->endian == SF_ENDIAN_BIG))
|
||||
endswap_int_array (ppaf24->block, 8 * ppaf24->channels) ;
|
||||
|
||||
if (CPU_IS_LITTLE_ENDIAN)
|
||||
{ /* Do endian swapping if necessary. */
|
||||
if (psf->endian == SF_ENDIAN_BIG)
|
||||
endswap_int_array (ppaf24->data, 8 * ppaf24->channels) ;
|
||||
|
||||
/* Unpack block. */
|
||||
for (k = 0 ; k < PAF24_SAMPLES_PER_BLOCK * ppaf24->channels ; k++)
|
||||
{ channel = k % ppaf24->channels ;
|
||||
cptr = ppaf24->block + PAF24_BLOCK_SIZE * channel + 3 * (k / ppaf24->channels) ;
|
||||
ppaf24->samples [k] = (cptr [0] << 8) | (cptr [1] << 16) | (cptr [2] << 24) ;
|
||||
} ;
|
||||
}
|
||||
else
|
||||
{ /* Do endian swapping if necessary. */
|
||||
if (psf->endian == SF_ENDIAN_BIG)
|
||||
endswap_int_array (ppaf24->data, 8 * ppaf24->channels) ;
|
||||
|
||||
/* Unpack block. */
|
||||
for (k = 0 ; k < PAF24_SAMPLES_PER_BLOCK * ppaf24->channels ; k++)
|
||||
{ channel = k % ppaf24->channels ;
|
||||
cptr = ppaf24->block + PAF24_BLOCK_SIZE * channel + 3 * (k / ppaf24->channels) ;
|
||||
ppaf24->samples [k] = (cptr [0] << 8) | (cptr [1] << 16) | (cptr [2] << 24) ;
|
||||
} ;
|
||||
/* Unpack block. */
|
||||
for (k = 0 ; k < PAF24_SAMPLES_PER_BLOCK * ppaf24->channels ; k++)
|
||||
{ channel = k % ppaf24->channels ;
|
||||
cptr = ((unsigned char *) ppaf24->block) + PAF24_BLOCK_SIZE * channel + 3 * (k / ppaf24->channels) ;
|
||||
ppaf24->samples [k] = (cptr [0] << 8) | (cptr [1] << 16) | (((unsigned) cptr [2]) << 24) ;
|
||||
} ;
|
||||
|
||||
return 1 ;
|
||||
@@ -533,15 +515,15 @@ paf24_read (SF_PRIVATE *psf, PAF24_PRIVATE *ppaf24, int *ptr, int len)
|
||||
{ int count, total = 0 ;
|
||||
|
||||
while (total < len)
|
||||
{ if (ppaf24->read_block * ppaf24->samplesperblock >= ppaf24->sample_count)
|
||||
{ if (ppaf24->read_block * PAF24_SAMPLES_PER_BLOCK >= ppaf24->sample_count)
|
||||
{ memset (&(ptr [total]), 0, (len - total) * sizeof (int)) ;
|
||||
return total ;
|
||||
} ;
|
||||
|
||||
if (ppaf24->read_count >= ppaf24->samplesperblock)
|
||||
if (ppaf24->read_count >= PAF24_SAMPLES_PER_BLOCK)
|
||||
paf24_read_block (psf, ppaf24) ;
|
||||
|
||||
count = (ppaf24->samplesperblock - ppaf24->read_count) * ppaf24->channels ;
|
||||
count = (PAF24_SAMPLES_PER_BLOCK - ppaf24->read_count) * ppaf24->channels ;
|
||||
count = (len - total > count) ? count : len - total ;
|
||||
|
||||
memcpy (&(ptr [total]), &(ppaf24->samples [ppaf24->read_count * ppaf24->channels]), count * sizeof (int)) ;
|
||||
@@ -554,7 +536,8 @@ paf24_read (SF_PRIVATE *psf, PAF24_PRIVATE *ppaf24, int *ptr, int len)
|
||||
|
||||
static sf_count_t
|
||||
paf24_read_s (SF_PRIVATE *psf, short *ptr, sf_count_t len)
|
||||
{ PAF24_PRIVATE *ppaf24 ;
|
||||
{ BUF_UNION ubuf ;
|
||||
PAF24_PRIVATE *ppaf24 ;
|
||||
int *iptr ;
|
||||
int k, bufferlen, readcount, count ;
|
||||
sf_count_t total = 0 ;
|
||||
@@ -563,8 +546,8 @@ paf24_read_s (SF_PRIVATE *psf, short *ptr, sf_count_t len)
|
||||
return 0 ;
|
||||
ppaf24 = (PAF24_PRIVATE*) psf->codec_data ;
|
||||
|
||||
iptr = psf->u.ibuf ;
|
||||
bufferlen = ARRAY_LEN (psf->u.ibuf) ;
|
||||
iptr = ubuf.ibuf ;
|
||||
bufferlen = ARRAY_LEN (ubuf.ibuf) ;
|
||||
while (len > 0)
|
||||
{ readcount = (len >= bufferlen) ? bufferlen : len ;
|
||||
count = paf24_read (psf, ppaf24, iptr, readcount) ;
|
||||
@@ -592,7 +575,8 @@ paf24_read_i (SF_PRIVATE *psf, int *ptr, sf_count_t len)
|
||||
|
||||
static sf_count_t
|
||||
paf24_read_f (SF_PRIVATE *psf, float *ptr, sf_count_t len)
|
||||
{ PAF24_PRIVATE *ppaf24 ;
|
||||
{ BUF_UNION ubuf ;
|
||||
PAF24_PRIVATE *ppaf24 ;
|
||||
int *iptr ;
|
||||
int k, bufferlen, readcount, count ;
|
||||
sf_count_t total = 0 ;
|
||||
@@ -604,8 +588,8 @@ paf24_read_f (SF_PRIVATE *psf, float *ptr, sf_count_t len)
|
||||
|
||||
normfact = (psf->norm_float == SF_TRUE) ? (1.0 / 0x80000000) : (1.0 / 0x100) ;
|
||||
|
||||
iptr = psf->u.ibuf ;
|
||||
bufferlen = ARRAY_LEN (psf->u.ibuf) ;
|
||||
iptr = ubuf.ibuf ;
|
||||
bufferlen = ARRAY_LEN (ubuf.ibuf) ;
|
||||
while (len > 0)
|
||||
{ readcount = (len >= bufferlen) ? bufferlen : len ;
|
||||
count = paf24_read (psf, ppaf24, iptr, readcount) ;
|
||||
@@ -619,7 +603,8 @@ paf24_read_f (SF_PRIVATE *psf, float *ptr, sf_count_t len)
|
||||
|
||||
static sf_count_t
|
||||
paf24_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len)
|
||||
{ PAF24_PRIVATE *ppaf24 ;
|
||||
{ BUF_UNION ubuf ;
|
||||
PAF24_PRIVATE *ppaf24 ;
|
||||
int *iptr ;
|
||||
int k, bufferlen, readcount, count ;
|
||||
sf_count_t total = 0 ;
|
||||
@@ -631,8 +616,8 @@ paf24_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len)
|
||||
|
||||
normfact = (psf->norm_double == SF_TRUE) ? (1.0 / 0x80000000) : (1.0 / 0x100) ;
|
||||
|
||||
iptr = psf->u.ibuf ;
|
||||
bufferlen = ARRAY_LEN (psf->u.ibuf) ;
|
||||
iptr = ubuf.ibuf ;
|
||||
bufferlen = ARRAY_LEN (ubuf.ibuf) ;
|
||||
while (len > 0)
|
||||
{ readcount = (len >= bufferlen) ? bufferlen : len ;
|
||||
count = paf24_read (psf, ppaf24, iptr, readcount) ;
|
||||
@@ -657,7 +642,7 @@ paf24_write_block (SF_PRIVATE *psf, PAF24_PRIVATE *ppaf24)
|
||||
if (CPU_IS_LITTLE_ENDIAN)
|
||||
{ for (k = 0 ; k < PAF24_SAMPLES_PER_BLOCK * ppaf24->channels ; k++)
|
||||
{ channel = k % ppaf24->channels ;
|
||||
cptr = ppaf24->block + PAF24_BLOCK_SIZE * channel + 3 * (k / ppaf24->channels) ;
|
||||
cptr = ((unsigned char *) ppaf24->block) + PAF24_BLOCK_SIZE * channel + 3 * (k / ppaf24->channels) ;
|
||||
nextsample = ppaf24->samples [k] >> 8 ;
|
||||
cptr [0] = nextsample ;
|
||||
cptr [1] = nextsample >> 8 ;
|
||||
@@ -666,30 +651,30 @@ paf24_write_block (SF_PRIVATE *psf, PAF24_PRIVATE *ppaf24)
|
||||
|
||||
/* Do endian swapping if necessary. */
|
||||
if (psf->endian == SF_ENDIAN_BIG)
|
||||
endswap_int_array (ppaf24->data, 8 * ppaf24->channels) ;
|
||||
endswap_int_array (ppaf24->block, 8 * ppaf24->channels) ;
|
||||
}
|
||||
else if (CPU_IS_BIG_ENDIAN)
|
||||
{ /* This is correct. */
|
||||
for (k = 0 ; k < PAF24_SAMPLES_PER_BLOCK * ppaf24->channels ; k++)
|
||||
{ channel = k % ppaf24->channels ;
|
||||
cptr = ppaf24->block + PAF24_BLOCK_SIZE * channel + 3 * (k / ppaf24->channels) ;
|
||||
cptr = ((unsigned char *) ppaf24->block) + PAF24_BLOCK_SIZE * channel + 3 * (k / ppaf24->channels) ;
|
||||
nextsample = ppaf24->samples [k] >> 8 ;
|
||||
cptr [0] = nextsample ;
|
||||
cptr [1] = nextsample >> 8 ;
|
||||
cptr [2] = nextsample >> 16 ;
|
||||
} ;
|
||||
if (psf->endian == SF_ENDIAN_BIG)
|
||||
endswap_int_array (ppaf24->data, 8 * ppaf24->channels) ;
|
||||
if (psf->endian == SF_ENDIAN_LITTLE)
|
||||
endswap_int_array (ppaf24->block, 8 * ppaf24->channels) ;
|
||||
} ;
|
||||
|
||||
/* Write block to disk. */
|
||||
if ((k = psf_fwrite (ppaf24->block, 1, ppaf24->blocksize, psf)) != ppaf24->blocksize)
|
||||
psf_log_printf (psf, "*** Warning : short write (%d != %d).\n", k, ppaf24->blocksize) ;
|
||||
|
||||
if (ppaf24->sample_count < ppaf24->write_block * ppaf24->samplesperblock + ppaf24->write_count)
|
||||
ppaf24->sample_count = ppaf24->write_block * ppaf24->samplesperblock + ppaf24->write_count ;
|
||||
if (ppaf24->sample_count < ppaf24->write_block * PAF24_SAMPLES_PER_BLOCK + ppaf24->write_count)
|
||||
ppaf24->sample_count = ppaf24->write_block * PAF24_SAMPLES_PER_BLOCK + ppaf24->write_count ;
|
||||
|
||||
if (ppaf24->write_count == ppaf24->samplesperblock)
|
||||
if (ppaf24->write_count == PAF24_SAMPLES_PER_BLOCK)
|
||||
{ ppaf24->write_block ++ ;
|
||||
ppaf24->write_count = 0 ;
|
||||
} ;
|
||||
@@ -702,7 +687,7 @@ paf24_write (SF_PRIVATE *psf, PAF24_PRIVATE *ppaf24, const int *ptr, int len)
|
||||
{ int count, total = 0 ;
|
||||
|
||||
while (total < len)
|
||||
{ count = (ppaf24->samplesperblock - ppaf24->write_count) * ppaf24->channels ;
|
||||
{ count = (PAF24_SAMPLES_PER_BLOCK - ppaf24->write_count) * ppaf24->channels ;
|
||||
|
||||
if (count > len - total)
|
||||
count = len - total ;
|
||||
@@ -711,7 +696,7 @@ paf24_write (SF_PRIVATE *psf, PAF24_PRIVATE *ppaf24, const int *ptr, int len)
|
||||
total += count ;
|
||||
ppaf24->write_count += count / ppaf24->channels ;
|
||||
|
||||
if (ppaf24->write_count >= ppaf24->samplesperblock)
|
||||
if (ppaf24->write_count >= PAF24_SAMPLES_PER_BLOCK)
|
||||
paf24_write_block (psf, ppaf24) ;
|
||||
} ;
|
||||
|
||||
@@ -720,7 +705,8 @@ paf24_write (SF_PRIVATE *psf, PAF24_PRIVATE *ppaf24, const int *ptr, int len)
|
||||
|
||||
static sf_count_t
|
||||
paf24_write_s (SF_PRIVATE *psf, const short *ptr, sf_count_t len)
|
||||
{ PAF24_PRIVATE *ppaf24 ;
|
||||
{ BUF_UNION ubuf ;
|
||||
PAF24_PRIVATE *ppaf24 ;
|
||||
int *iptr ;
|
||||
int k, bufferlen, writecount = 0, count ;
|
||||
sf_count_t total = 0 ;
|
||||
@@ -729,8 +715,8 @@ paf24_write_s (SF_PRIVATE *psf, const short *ptr, sf_count_t len)
|
||||
return 0 ;
|
||||
ppaf24 = (PAF24_PRIVATE*) psf->codec_data ;
|
||||
|
||||
iptr = psf->u.ibuf ;
|
||||
bufferlen = ARRAY_LEN (psf->u.ibuf) ;
|
||||
iptr = ubuf.ibuf ;
|
||||
bufferlen = ARRAY_LEN (ubuf.ibuf) ;
|
||||
while (len > 0)
|
||||
{ writecount = (len >= bufferlen) ? bufferlen : len ;
|
||||
for (k = 0 ; k < writecount ; k++)
|
||||
@@ -770,7 +756,8 @@ paf24_write_i (SF_PRIVATE *psf, const int *ptr, sf_count_t len)
|
||||
|
||||
static sf_count_t
|
||||
paf24_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t len)
|
||||
{ PAF24_PRIVATE *ppaf24 ;
|
||||
{ BUF_UNION ubuf ;
|
||||
PAF24_PRIVATE *ppaf24 ;
|
||||
int *iptr ;
|
||||
int k, bufferlen, writecount = 0, count ;
|
||||
sf_count_t total = 0 ;
|
||||
@@ -782,8 +769,8 @@ paf24_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t len)
|
||||
|
||||
normfact = (psf->norm_float == SF_TRUE) ? (1.0 * 0x7FFFFFFF) : (1.0 / 0x100) ;
|
||||
|
||||
iptr = psf->u.ibuf ;
|
||||
bufferlen = ARRAY_LEN (psf->u.ibuf) ;
|
||||
iptr = ubuf.ibuf ;
|
||||
bufferlen = ARRAY_LEN (ubuf.ibuf) ;
|
||||
while (len > 0)
|
||||
{ writecount = (len >= bufferlen) ? bufferlen : len ;
|
||||
for (k = 0 ; k < writecount ; k++)
|
||||
@@ -800,7 +787,8 @@ paf24_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t len)
|
||||
|
||||
static sf_count_t
|
||||
paf24_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len)
|
||||
{ PAF24_PRIVATE *ppaf24 ;
|
||||
{ BUF_UNION ubuf ;
|
||||
PAF24_PRIVATE *ppaf24 ;
|
||||
int *iptr ;
|
||||
int k, bufferlen, writecount = 0, count ;
|
||||
sf_count_t total = 0 ;
|
||||
@@ -812,8 +800,8 @@ paf24_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len)
|
||||
|
||||
normfact = (psf->norm_double == SF_TRUE) ? (1.0 * 0x7FFFFFFF) : (1.0 / 0x100) ;
|
||||
|
||||
iptr = psf->u.ibuf ;
|
||||
bufferlen = ARRAY_LEN (psf->u.ibuf) ;
|
||||
iptr = ubuf.ibuf ;
|
||||
bufferlen = ARRAY_LEN (ubuf.ibuf) ;
|
||||
while (len > 0)
|
||||
{ writecount = (len >= bufferlen) ? bufferlen : len ;
|
||||
for (k = 0 ; k < writecount ; k++)
|
||||
|
||||
Reference in New Issue
Block a user