apply patches
This commit is contained in:
commit
cd5d347e6a
|
@ -31,7 +31,7 @@
|
||||||
<UL>
|
<UL>
|
||||||
<LI> Compilation problems on new platforms.
|
<LI> Compilation problems on new platforms.
|
||||||
<LI> Errors being detected during the `make check' process.
|
<LI> Errors being detected during the `make check' process.
|
||||||
<LI> Segmentation faults occuring inside libsndfile.
|
<LI> Segmentation faults occurring inside libsndfile.
|
||||||
<LI> libsndfile hanging when opening a file.
|
<LI> libsndfile hanging when opening a file.
|
||||||
<LI> Supported sound file types being incorrectly read or written.
|
<LI> Supported sound file types being incorrectly read or written.
|
||||||
<LI> Omissions, errors or spelling mistakes in the documentation.
|
<LI> Omissions, errors or spelling mistakes in the documentation.
|
||||||
|
|
|
@ -317,7 +317,7 @@ main (int argc, char * argv [])
|
||||||
if ((sfinfo.format & SF_FORMAT_SUBMASK) == SF_FORMAT_GSM610 && sfinfo.samplerate != 8000)
|
if ((sfinfo.format & SF_FORMAT_SUBMASK) == SF_FORMAT_GSM610 && sfinfo.samplerate != 8000)
|
||||||
{ printf (
|
{ printf (
|
||||||
"WARNING: GSM 6.10 data format only supports 8kHz sample rate. The converted\n"
|
"WARNING: GSM 6.10 data format only supports 8kHz sample rate. The converted\n"
|
||||||
"ouput file will contain the input data converted to the GSM 6.10 data format\n"
|
"output file will contain the input data converted to the GSM 6.10 data format\n"
|
||||||
"but not re-sampled.\n"
|
"but not re-sampled.\n"
|
||||||
) ;
|
) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
|
@ -89,6 +89,13 @@ main (int argc, char **argv)
|
||||||
exit (1) ;
|
exit (1) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
if (sfinfo.channels > MAX_CHANNELS)
|
||||||
|
{ printf ("\nError : Input file '%s' has too many (%d) channels. Limit is %d.\n",
|
||||||
|
argv [1], sfinfo.channels, MAX_CHANNELS) ;
|
||||||
|
exit (1) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
state.channels = sfinfo.channels ;
|
state.channels = sfinfo.channels ;
|
||||||
sfinfo.channels = 1 ;
|
sfinfo.channels = 1 ;
|
||||||
|
|
||||||
|
|
|
@ -1905,7 +1905,7 @@ aiff_read_chanmap (SF_PRIVATE * psf, unsigned dword)
|
||||||
psf_binheader_readf (psf, "j", dword - bytesread) ;
|
psf_binheader_readf (psf, "j", dword - bytesread) ;
|
||||||
|
|
||||||
if (map_info->channel_map != NULL)
|
if (map_info->channel_map != NULL)
|
||||||
{ size_t chanmap_size = psf->sf.channels * sizeof (psf->channel_map [0]) ;
|
{ size_t chanmap_size = SF_MIN (psf->sf.channels, layout_tag & 0xffff) * sizeof (psf->channel_map [0]) ;
|
||||||
|
|
||||||
free (psf->channel_map) ;
|
free (psf->channel_map) ;
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include "sfconfig.h"
|
#include "sfconfig.h"
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
#include "sndfile.h"
|
#include "sndfile.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
@ -326,7 +327,9 @@ s2alaw_array (const short *ptr, int count, unsigned char *buffer)
|
||||||
static inline void
|
static inline void
|
||||||
i2alaw_array (const int *ptr, int count, unsigned char *buffer)
|
i2alaw_array (const int *ptr, int count, unsigned char *buffer)
|
||||||
{ while (--count >= 0)
|
{ while (--count >= 0)
|
||||||
{ if (ptr [count] >= 0)
|
{ if (ptr [count] == INT_MIN)
|
||||||
|
buffer [count] = alaw_encode [INT_MAX >> (16 + 4)] ;
|
||||||
|
else if (ptr [count] >= 0)
|
||||||
buffer [count] = alaw_encode [ptr [count] >> (16 + 4)] ;
|
buffer [count] = alaw_encode [ptr [count] >> (16 + 4)] ;
|
||||||
else
|
else
|
||||||
buffer [count] = 0x7F & alaw_encode [- ptr [count] >> (16 + 4)] ;
|
buffer [count] = 0x7F & alaw_encode [- ptr [count] >> (16 + 4)] ;
|
||||||
|
@ -346,7 +349,9 @@ f2alaw_array (const float *ptr, int count, unsigned char *buffer, float normfact
|
||||||
static inline void
|
static inline void
|
||||||
d2alaw_array (const double *ptr, int count, unsigned char *buffer, double normfact)
|
d2alaw_array (const double *ptr, int count, unsigned char *buffer, double normfact)
|
||||||
{ while (--count >= 0)
|
{ while (--count >= 0)
|
||||||
{ if (ptr [count] >= 0)
|
{ if (!isfinite (ptr [count]))
|
||||||
|
buffer [count] = 0 ;
|
||||||
|
else if (ptr [count] >= 0)
|
||||||
buffer [count] = alaw_encode [lrint (normfact * ptr [count])] ;
|
buffer [count] = alaw_encode [lrint (normfact * ptr [count])] ;
|
||||||
else
|
else
|
||||||
buffer [count] = 0x7F & alaw_encode [- lrint (normfact * ptr [count])] ;
|
buffer [count] = 0x7F & alaw_encode [- lrint (normfact * ptr [count])] ;
|
||||||
|
|
|
@ -675,15 +675,15 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
|
||||||
/* Write a C string (guaranteed to have a zero terminator). */
|
/* Write a C string (guaranteed to have a zero terminator). */
|
||||||
strptr = va_arg (argptr, char *) ;
|
strptr = va_arg (argptr, char *) ;
|
||||||
size = strlen (strptr) + 1 ;
|
size = strlen (strptr) + 1 ;
|
||||||
size += (size & 1) ;
|
|
||||||
|
|
||||||
if (psf->header.indx + (sf_count_t) size >= psf->header.len && psf_bump_header_allocation (psf, 16))
|
if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1)))
|
||||||
return count ;
|
return count ;
|
||||||
|
|
||||||
if (psf->rwf_endian == SF_ENDIAN_BIG)
|
if (psf->rwf_endian == SF_ENDIAN_BIG)
|
||||||
header_put_be_int (psf, size) ;
|
header_put_be_int (psf, size + (size & 1)) ;
|
||||||
else
|
else
|
||||||
header_put_le_int (psf, size) ;
|
header_put_le_int (psf, size + (size & 1)) ;
|
||||||
|
size += (size & 1) ;
|
||||||
memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ;
|
memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ;
|
||||||
psf->header.indx += size ;
|
psf->header.indx += size ;
|
||||||
psf->header.ptr [psf->header.indx - 1] = 0 ;
|
psf->header.ptr [psf->header.indx - 1] = 0 ;
|
||||||
|
|
|
@ -725,6 +725,7 @@ enum
|
||||||
SFE_FLAC_INIT_DECODER,
|
SFE_FLAC_INIT_DECODER,
|
||||||
SFE_FLAC_LOST_SYNC,
|
SFE_FLAC_LOST_SYNC,
|
||||||
SFE_FLAC_BAD_SAMPLE_RATE,
|
SFE_FLAC_BAD_SAMPLE_RATE,
|
||||||
|
SFE_FLAC_CHANNEL_COUNT_CHANGED,
|
||||||
SFE_FLAC_UNKOWN_ERROR,
|
SFE_FLAC_UNKOWN_ERROR,
|
||||||
|
|
||||||
SFE_WVE_NOT_WVE,
|
SFE_WVE_NOT_WVE,
|
||||||
|
|
|
@ -91,7 +91,7 @@ int
|
||||||
double64_init (SF_PRIVATE *psf)
|
double64_init (SF_PRIVATE *psf)
|
||||||
{ static int double64_caps ;
|
{ static int double64_caps ;
|
||||||
|
|
||||||
if (psf->sf.channels < 1)
|
if (psf->sf.channels < 1 || psf->sf.channels > SF_MAX_CHANNELS)
|
||||||
{ psf_log_printf (psf, "double64_init : internal error : channels = %d\n", psf->sf.channels) ;
|
{ psf_log_printf (psf, "double64_init : internal error : channels = %d\n", psf->sf.channels) ;
|
||||||
return SFE_INTERNAL ;
|
return SFE_INTERNAL ;
|
||||||
} ;
|
} ;
|
||||||
|
|
35
src/flac.c
35
src/flac.c
|
@ -169,6 +169,14 @@ flac_buffer_copy (SF_PRIVATE *psf)
|
||||||
const int32_t* const *buffer = pflac->wbuffer ;
|
const int32_t* const *buffer = pflac->wbuffer ;
|
||||||
unsigned i = 0, j, offset, channels, len ;
|
unsigned i = 0, j, offset, channels, len ;
|
||||||
|
|
||||||
|
if (psf->sf.channels != (int) frame->header.channels)
|
||||||
|
{ psf_log_printf (psf, "Error: FLAC frame changed from %d to %d channels\n"
|
||||||
|
"Nothing to do but to error out.\n" ,
|
||||||
|
psf->sf.channels, frame->header.channels) ;
|
||||||
|
psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ;
|
||||||
|
return 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** frame->header.blocksize is variable and we're using a constant blocksize
|
** frame->header.blocksize is variable and we're using a constant blocksize
|
||||||
** of FLAC__MAX_BLOCK_SIZE.
|
** of FLAC__MAX_BLOCK_SIZE.
|
||||||
|
@ -202,7 +210,6 @@ flac_buffer_copy (SF_PRIVATE *psf)
|
||||||
return 0 ;
|
return 0 ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
len = SF_MIN (pflac->len, frame->header.blocksize) ;
|
len = SF_MIN (pflac->len, frame->header.blocksize) ;
|
||||||
|
|
||||||
if (pflac->remain % channels != 0)
|
if (pflac->remain % channels != 0)
|
||||||
|
@ -430,11 +437,23 @@ sf_flac_meta_get_vorbiscomments (SF_PRIVATE *psf, const FLAC__StreamMetadata *me
|
||||||
static void
|
static void
|
||||||
sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC__StreamMetadata *metadata, void *client_data)
|
sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC__StreamMetadata *metadata, void *client_data)
|
||||||
{ SF_PRIVATE *psf = (SF_PRIVATE*) client_data ;
|
{ SF_PRIVATE *psf = (SF_PRIVATE*) client_data ;
|
||||||
FLAC_PRIVATE* pflac = (FLAC_PRIVATE*) psf->codec_data ;
|
int bitwidth = 0 ;
|
||||||
int bitwidth = 0, i ;
|
|
||||||
|
|
||||||
switch (metadata->type)
|
switch (metadata->type)
|
||||||
{ case FLAC__METADATA_TYPE_STREAMINFO :
|
{ case FLAC__METADATA_TYPE_STREAMINFO :
|
||||||
|
if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels)
|
||||||
|
{ psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n"
|
||||||
|
"Nothing to do but to error out.\n" ,
|
||||||
|
psf->sf.channels, metadata->data.stream_info.channels) ;
|
||||||
|
psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ;
|
||||||
|
return ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
if (psf->sf.channels > 0 && psf->sf.samplerate != (int) metadata->data.stream_info.sample_rate)
|
||||||
|
{ psf_log_printf (psf, "Warning: FLAC stream changed sample rates from %d to %d.\n"
|
||||||
|
"Carrying on as if nothing happened.",
|
||||||
|
psf->sf.samplerate, metadata->data.stream_info.sample_rate) ;
|
||||||
|
} ;
|
||||||
psf->sf.channels = metadata->data.stream_info.channels ;
|
psf->sf.channels = metadata->data.stream_info.channels ;
|
||||||
psf->sf.samplerate = metadata->data.stream_info.sample_rate ;
|
psf->sf.samplerate = metadata->data.stream_info.sample_rate ;
|
||||||
psf->sf.frames = metadata->data.stream_info.total_samples ;
|
psf->sf.frames = metadata->data.stream_info.total_samples ;
|
||||||
|
@ -468,12 +487,6 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_
|
||||||
|
|
||||||
if (bitwidth > 0)
|
if (bitwidth > 0)
|
||||||
psf_log_printf (psf, " Bit width : %d\n", bitwidth) ;
|
psf_log_printf (psf, " Bit width : %d\n", bitwidth) ;
|
||||||
|
|
||||||
|
|
||||||
for (i = 0 ; i < psf->sf.channels ; i++)
|
|
||||||
pflac->rbuffer [i] = calloc (FLAC__MAX_BLOCK_SIZE, sizeof (int32_t)) ;
|
|
||||||
|
|
||||||
pflac->wbuffer = (const int32_t* const*) pflac->rbuffer ;
|
|
||||||
break ;
|
break ;
|
||||||
|
|
||||||
case FLAC__METADATA_TYPE_VORBIS_COMMENT :
|
case FLAC__METADATA_TYPE_VORBIS_COMMENT :
|
||||||
|
@ -835,7 +848,9 @@ flac_read_header (SF_PRIVATE *psf)
|
||||||
|
|
||||||
psf_log_printf (psf, "End\n") ;
|
psf_log_printf (psf, "End\n") ;
|
||||||
|
|
||||||
if (psf->error == 0)
|
if (psf->error != 0)
|
||||||
|
FLAC__stream_decoder_delete (pflac->fsd) ;
|
||||||
|
else
|
||||||
{ FLAC__uint64 position ;
|
{ FLAC__uint64 position ;
|
||||||
|
|
||||||
FLAC__stream_decoder_get_decode_position (pflac->fsd, &position) ;
|
FLAC__stream_decoder_get_decode_position (pflac->fsd, &position) ;
|
||||||
|
|
|
@ -193,7 +193,7 @@ ogg_stream_classify (SF_PRIVATE *psf, OGG_PRIVATE* odata)
|
||||||
break ;
|
break ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
psf_log_printf (psf, "This Ogg bitstream contains some uknown data type.\n") ;
|
psf_log_printf (psf, "This Ogg bitstream contains some unknown data type.\n") ;
|
||||||
return SFE_UNIMPLEMENTED ;
|
return SFE_UNIMPLEMENTED ;
|
||||||
} /* ogg_stream_classify */
|
} /* ogg_stream_classify */
|
||||||
|
|
||||||
|
|
11
src/rf64.c
11
src/rf64.c
|
@ -339,6 +339,12 @@ rf64_read_header (SF_PRIVATE *psf, int *blockalign, int *framesperblock)
|
||||||
} ;
|
} ;
|
||||||
break ;
|
break ;
|
||||||
|
|
||||||
|
case JUNK_MARKER :
|
||||||
|
case PAD_MARKER :
|
||||||
|
psf_log_printf (psf, "%M : %d\n", marker, chunk_size) ;
|
||||||
|
psf_binheader_readf (psf, "j", chunk_size) ;
|
||||||
|
break ;
|
||||||
|
|
||||||
default :
|
default :
|
||||||
if (chunk_size >= 0xffff0000)
|
if (chunk_size >= 0xffff0000)
|
||||||
{ psf_log_printf (psf, "*** Unknown chunk marker (%X) at position %D with length %u. Exiting parser.\n", marker, psf_ftell (psf) - 8, chunk_size) ;
|
{ psf_log_printf (psf, "*** Unknown chunk marker (%X) at position %D with length %u. Exiting parser.\n", marker, psf_ftell (psf) - 8, chunk_size) ;
|
||||||
|
@ -659,7 +665,7 @@ rf64_write_header (SF_PRIVATE *psf, int calc_length)
|
||||||
|
|
||||||
if (wpriv->rf64_downgrade && psf->filelength < RIFF_DOWNGRADE_BYTES)
|
if (wpriv->rf64_downgrade && psf->filelength < RIFF_DOWNGRADE_BYTES)
|
||||||
{ psf_binheader_writef (psf, "etm8m", RIFF_MARKER, (psf->filelength < 8) ? 8 : psf->filelength - 8, WAVE_MARKER) ;
|
{ psf_binheader_writef (psf, "etm8m", RIFF_MARKER, (psf->filelength < 8) ? 8 : psf->filelength - 8, WAVE_MARKER) ;
|
||||||
psf_binheader_writef (psf, "m4884", JUNK_MARKER, 20, 0, 0, 0, 0) ;
|
psf_binheader_writef (psf, "m4z", JUNK_MARKER, 24, 24) ;
|
||||||
add_fact_chunk = 1 ;
|
add_fact_chunk = 1 ;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -735,9 +741,10 @@ rf64_write_header (SF_PRIVATE *psf, int calc_length)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Padding may be needed if string data sizes change. */
|
||||||
pad_size = psf->dataoffset - 16 - psf->header.indx ;
|
pad_size = psf->dataoffset - 16 - psf->header.indx ;
|
||||||
if (pad_size >= 0)
|
if (pad_size >= 0)
|
||||||
psf_binheader_writef (psf, "m4z", PAD_MARKER, pad_size, make_size_t (pad_size)) ;
|
psf_binheader_writef (psf, "m4z", PAD_MARKER, (unsigned int) pad_size, make_size_t (pad_size)) ;
|
||||||
|
|
||||||
if (wpriv->rf64_downgrade && (psf->filelength < RIFF_DOWNGRADE_BYTES))
|
if (wpriv->rf64_downgrade && (psf->filelength < RIFF_DOWNGRADE_BYTES))
|
||||||
psf_binheader_writef (psf, "tm8", data_MARKER, psf->datalength) ;
|
psf_binheader_writef (psf, "tm8", data_MARKER, psf->datalength) ;
|
||||||
|
|
|
@ -245,6 +245,7 @@ ErrorStruct SndfileErrors [] =
|
||||||
{ SFE_FLAC_INIT_DECODER , "Error : problem with initialization of the flac decoder." },
|
{ SFE_FLAC_INIT_DECODER , "Error : problem with initialization of the flac decoder." },
|
||||||
{ SFE_FLAC_LOST_SYNC , "Error : flac decoder lost sync." },
|
{ SFE_FLAC_LOST_SYNC , "Error : flac decoder lost sync." },
|
||||||
{ SFE_FLAC_BAD_SAMPLE_RATE, "Error : flac does not support this sample rate." },
|
{ SFE_FLAC_BAD_SAMPLE_RATE, "Error : flac does not support this sample rate." },
|
||||||
|
{ SFE_FLAC_CHANNEL_COUNT_CHANGED, "Error : flac channel changed mid stream." },
|
||||||
{ SFE_FLAC_UNKOWN_ERROR , "Error : unknown error in flac decoder." },
|
{ SFE_FLAC_UNKOWN_ERROR , "Error : unknown error in flac decoder." },
|
||||||
|
|
||||||
{ SFE_WVE_NOT_WVE , "Error : not a WVE file." },
|
{ SFE_WVE_NOT_WVE , "Error : not a WVE file." },
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include "sfconfig.h"
|
#include "sfconfig.h"
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
#include "sndfile.h"
|
#include "sndfile.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
@ -827,7 +828,9 @@ s2ulaw_array (const short *ptr, int count, unsigned char *buffer)
|
||||||
static inline void
|
static inline void
|
||||||
i2ulaw_array (const int *ptr, int count, unsigned char *buffer)
|
i2ulaw_array (const int *ptr, int count, unsigned char *buffer)
|
||||||
{ while (--count >= 0)
|
{ while (--count >= 0)
|
||||||
{ if (ptr [count] >= 0)
|
{ if (ptr [count] == INT_MIN)
|
||||||
|
buffer [count] = ulaw_encode [INT_MAX >> (16 + 2)] ;
|
||||||
|
else if (ptr [count] >= 0)
|
||||||
buffer [count] = ulaw_encode [ptr [count] >> (16 + 2)] ;
|
buffer [count] = ulaw_encode [ptr [count] >> (16 + 2)] ;
|
||||||
else
|
else
|
||||||
buffer [count] = 0x7F & ulaw_encode [-ptr [count] >> (16 + 2)] ;
|
buffer [count] = 0x7F & ulaw_encode [-ptr [count] >> (16 + 2)] ;
|
||||||
|
@ -847,7 +850,9 @@ f2ulaw_array (const float *ptr, int count, unsigned char *buffer, float normfact
|
||||||
static inline void
|
static inline void
|
||||||
d2ulaw_array (const double *ptr, int count, unsigned char *buffer, double normfact)
|
d2ulaw_array (const double *ptr, int count, unsigned char *buffer, double normfact)
|
||||||
{ while (--count >= 0)
|
{ while (--count >= 0)
|
||||||
{ if (ptr [count] >= 0)
|
{ if (!isfinite (ptr [count]))
|
||||||
|
buffer [count] = 0 ;
|
||||||
|
else if (ptr [count] >= 0)
|
||||||
buffer [count] = ulaw_encode [lrint (normfact * ptr [count])] ;
|
buffer [count] = ulaw_encode [lrint (normfact * ptr [count])] ;
|
||||||
else
|
else
|
||||||
buffer [count] = 0x7F & ulaw_encode [- lrint (normfact * ptr [count])] ;
|
buffer [count] = 0x7F & ulaw_encode [- lrint (normfact * ptr [count])] ;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
** Copyright (C) 1999-2016 Erik de Castro Lopo <erikd@mega-nerd.com>
|
** Copyright (C) 1999-2019 Erik de Castro Lopo <erikd@mega-nerd.com>
|
||||||
** Copyright (C) 2004-2005 David Viens <davidv@plogue.com>
|
** Copyright (C) 2004-2005 David Viens <davidv@plogue.com>
|
||||||
**
|
**
|
||||||
** This program is free software; you can redistribute it and/or modify
|
** This program is free software; you can redistribute it and/or modify
|
||||||
|
@ -1094,6 +1094,12 @@ wav_write_header (SF_PRIVATE *psf, int calc_length)
|
||||||
psf_binheader_writef (psf, "44", 0, 0) ; /* SMTPE format */
|
psf_binheader_writef (psf, "44", 0, 0) ; /* SMTPE format */
|
||||||
psf_binheader_writef (psf, "44", psf->instrument->loop_count, 0) ;
|
psf_binheader_writef (psf, "44", psf->instrument->loop_count, 0) ;
|
||||||
|
|
||||||
|
/* Make sure we don't read past the loops array end. */
|
||||||
|
if (psf->instrument->loop_count > ARRAY_LEN (psf->instrument->loops))
|
||||||
|
psf->instrument->loop_count = ARRAY_LEN (psf->instrument->loops) ;
|
||||||
|
|
||||||
|
/* Loop count is signed 16 bit number so we limit it range to something sensible. */
|
||||||
|
psf->instrument->loop_count &= 0x7fff ;
|
||||||
for (tmp = 0 ; tmp < psf->instrument->loop_count ; tmp++)
|
for (tmp = 0 ; tmp < psf->instrument->loop_count ; tmp++)
|
||||||
{ int type ;
|
{ int type ;
|
||||||
|
|
||||||
|
|
|
@ -161,7 +161,7 @@ wavlike_read_fmt_chunk (SF_PRIVATE *psf, int fmtsize)
|
||||||
{ psf_log_printf (psf, " Bit Width : 24\n") ;
|
{ psf_log_printf (psf, " Bit Width : 24\n") ;
|
||||||
|
|
||||||
psf_log_printf (psf, "\n"
|
psf_log_printf (psf, "\n"
|
||||||
" Ambiguous information in 'fmt ' chunk. Possibile file types:\n"
|
" Ambiguous information in 'fmt ' chunk. Possible file types:\n"
|
||||||
" 0) Invalid IEEE float file generated by Syntrillium's Cooledit!\n"
|
" 0) Invalid IEEE float file generated by Syntrillium's Cooledit!\n"
|
||||||
" 1) File generated by ALSA's arecord containing 24 bit samples in 32 bit containers.\n"
|
" 1) File generated by ALSA's arecord containing 24 bit samples in 32 bit containers.\n"
|
||||||
" 2) 24 bit file with incorrect Block Align value.\n"
|
" 2) 24 bit file with incorrect Block Align value.\n"
|
||||||
|
|
Loading…
Reference in New Issue