You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							506 lines
						
					
					
						
							20 KiB
						
					
					
				
			
		
		
	
	
							506 lines
						
					
					
						
							20 KiB
						
					
					
				| # --- SDE-COPYRIGHT-NOTE-BEGIN --- | |
| # This copyright note is auto-generated by ./scripts/Create-CopyPatch. | |
| # | |
| # Filename: package/.../libsndfile/flac.patch | |
| # Copyright (C) 2008 The OpenSDE Project | |
| # | |
| # More information can be found in the files COPYING and README. | |
| # | |
| # This patch file is dual-licensed. It is available under the license the | |
| # patched project is licensed under, as long as it is an OpenSource license | |
| # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms | |
| # of the GNU General Public License as published by the Free Software | |
| # Foundation; either version 2 of the License, or (at your option) any later | |
| # version. | |
| # --- SDE-COPYRIGHT-NOTE-END --- | |
|  | |
| diff -ru libsndfile-1.0.17/configure.ac libsndfile-1.0.17-b2/configure.ac | |
| --- libsndfile-1.0.17/configure.ac	2006-08-31 02:39:37.000000000 -0700 | |
| +++ libsndfile-1.0.17-b2/configure.ac	2006-10-27 08:54:45.000000000 -0700 | |
| @@ -339,7 +339,8 @@ | |
|  		if test "x$HAVE_FLAC_1_1_1" = xyes ; then | |
|  			AC_DEFINE(HAVE_FLAC_1_1_1, [1], [Define to 1 if you have libflac 1.1.1]) | |
|  			fi | |
| -		FLAC_LIBS="-lFLAC" | |
| +		# in FLAC 1.1.3 libOggFLAC was merged into libFLAC, hence we need -logg | |
| +		FLAC_LIBS="-lFLAC -logg" | |
|  		fi | |
|  	fi | |
|   | |
| diff -ru libsndfile-1.0.17/src/flac.c libsndfile-1.0.17-b2/src/flac.c | |
| --- libsndfile-1.0.17/src/flac.c	2006-08-31 02:22:19.000000000 -0700 | |
| +++ libsndfile-1.0.17-b2/src/flac.c	2006-10-27 08:47:36.000000000 -0700 | |
| @@ -46,6 +46,13 @@ | |
|  #include	"sfendian.h" | |
|  #include	"float_cast.h" | |
|   | |
| +/* FLAC 1.1.3 has FLAC_API_VERSION_CURRENT == 8 */ | |
| +#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8 | |
| +#define LEGACY_FLAC | |
| +#else | |
| +#undef LEGACY_FLAC | |
| +#endif | |
| + | |
|  /*------------------------------------------------------------------------------ | |
|  ** Private static functions. | |
|  */ | |
| @@ -60,8 +67,14 @@ | |
|  } PFLAC_PCM ; | |
|   | |
|  typedef struct | |
| -{	FLAC__SeekableStreamDecoder *fsd ; | |
| +{ | |
| +#ifdef LEGACY_FLAC | |
| +	FLAC__SeekableStreamDecoder *fsd ; | |
|  	FLAC__SeekableStreamEncoder *fse ; | |
| +#else | |
| +	FLAC__StreamDecoder *fsd ; | |
| +	FLAC__StreamEncoder *fse ; | |
| +#endif | |
|  	PFLAC_PCM pcmtype ; | |
|  	void* ptr ; | |
|  	unsigned pos, len, remain ; | |
| @@ -108,6 +121,7 @@ | |
|  static int flac_command (SF_PRIVATE *psf, int command, void *data, int datasize) ; | |
|   | |
|  /* Decoder Callbacks */ | |
| +#ifdef LEGACY_FLAC | |
|  static FLAC__SeekableStreamDecoderReadStatus sf_flac_read_callback (const FLAC__SeekableStreamDecoder *decoder, FLAC__byte buffer [], unsigned *bytes, void *client_data) ; | |
|  static FLAC__SeekableStreamDecoderSeekStatus sf_flac_seek_callback (const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) ; | |
|  static FLAC__SeekableStreamDecoderTellStatus sf_flac_tell_callback (const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data) ; | |
| @@ -116,13 +130,29 @@ | |
|  static FLAC__StreamDecoderWriteStatus sf_flac_write_callback (const FLAC__SeekableStreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer [], void *client_data) ; | |
|  static void sf_flac_meta_callback (const FLAC__SeekableStreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data) ; | |
|  static void sf_flac_error_callback (const FLAC__SeekableStreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data) ; | |
| +#else | |
| +static FLAC__StreamDecoderReadStatus sf_flac_read_callback (const FLAC__StreamDecoder *decoder, FLAC__byte buffer [], size_t *bytes, void *client_data) ; | |
| +static FLAC__StreamDecoderSeekStatus sf_flac_seek_callback (const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) ; | |
| +static FLAC__StreamDecoderTellStatus sf_flac_tell_callback (const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data) ; | |
| +static FLAC__StreamDecoderLengthStatus sf_flac_length_callback (const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data) ; | |
| +static FLAC__bool sf_flac_eof_callback (const FLAC__StreamDecoder *decoder, void *client_data) ; | |
| +static FLAC__StreamDecoderWriteStatus sf_flac_write_callback (const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer [], void *client_data) ; | |
| +static void sf_flac_meta_callback (const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data) ; | |
| +static void sf_flac_error_callback (const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data) ; | |
| +#endif | |
|   | |
|  /* Encoder Callbacks */ | |
| +#ifdef LEGACY_FLAC | |
|  static FLAC__SeekableStreamEncoderSeekStatus sf_flac_enc_seek_callback (const FLAC__SeekableStreamEncoder *encoder, FLAC__uint64 absolute_byte_offset, void *client_data) ; | |
|  #ifdef HAVE_FLAC_1_1_1 | |
|  static FLAC__SeekableStreamEncoderTellStatus sf_flac_enc_tell_callback (const FLAC__SeekableStreamEncoder *encoder, FLAC__uint64 *absolute_byte_offset, void *client_data) ; | |
|  #endif | |
|  static FLAC__StreamEncoderWriteStatus sf_flac_enc_write_callback (const FLAC__SeekableStreamEncoder *encoder, const FLAC__byte buffer [], unsigned bytes, unsigned samples, unsigned current_frame, void *client_data) ; | |
| +#else | |
| +static FLAC__StreamEncoderSeekStatus sf_flac_enc_seek_callback (const FLAC__StreamEncoder *encoder, FLAC__uint64 absolute_byte_offset, void *client_data) ; | |
| +static FLAC__StreamEncoderTellStatus sf_flac_enc_tell_callback (const FLAC__StreamEncoder *encoder, FLAC__uint64 *absolute_byte_offset, void *client_data) ; | |
| +static FLAC__StreamEncoderWriteStatus sf_flac_enc_write_callback (const FLAC__StreamEncoder *encoder, const FLAC__byte buffer [], size_t bytes, unsigned samples, unsigned current_frame, void *client_data) ; | |
| +#endif | |
|   | |
|  static const int legal_sample_rates [] = | |
|  {	8000, 16000, 22050, 24000, 32000, 44100, 48000, 96000 | |
| @@ -283,51 +313,99 @@ | |
|  } /* flac_buffer_copy */ | |
|   | |
|   | |
| +#ifdef LEGACY_FLAC | |
|  static FLAC__SeekableStreamDecoderReadStatus | |
|  sf_flac_read_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__byte buffer [], unsigned *bytes, void *client_data) | |
| +#else | |
| +static FLAC__StreamDecoderReadStatus | |
| +sf_flac_read_callback (const FLAC__StreamDecoder * UNUSED (decoder), FLAC__byte buffer [], size_t *bytes, void *client_data) | |
| +#endif | |
|  {	SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; | |
|   | |
|  	*bytes = psf_fread (buffer, 1, *bytes, psf) ; | |
|  	if (*bytes > 0 && psf->error == 0) | |
| +#ifdef LEGACY_FLAC | |
|  		return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK ; | |
|   | |
|      return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR ; | |
| +#else | |
| +		return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE ; | |
| + | |
| +    return FLAC__STREAM_DECODER_READ_STATUS_ABORT ; | |
| +#endif | |
|  } /* sf_flac_read_callback */ | |
|   | |
| +#ifdef LEGACY_FLAC | |
|  static FLAC__SeekableStreamDecoderSeekStatus | |
|  sf_flac_seek_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__uint64 absolute_byte_offset, void *client_data) | |
| +#else | |
| +static FLAC__StreamDecoderSeekStatus | |
| +sf_flac_seek_callback (const FLAC__StreamDecoder * UNUSED (decoder), FLAC__uint64 absolute_byte_offset, void *client_data) | |
| +#endif | |
|  {	SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; | |
|   | |
|  	psf_fseek (psf, absolute_byte_offset, SEEK_SET) ; | |
|  	if (psf->error) | |
| +#ifdef LEGACY_FLAC | |
|  		return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR ; | |
|   | |
|  	return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK ; | |
| +#else | |
| +		return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR ; | |
| + | |
| +	return FLAC__STREAM_DECODER_SEEK_STATUS_OK ; | |
| +#endif | |
|  } /* sf_flac_seek_callback */ | |
|   | |
| +#ifdef LEGACY_FLAC | |
|  static FLAC__SeekableStreamDecoderTellStatus | |
|  sf_flac_tell_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__uint64 *absolute_byte_offset, void *client_data) | |
| +#else | |
| +static FLAC__StreamDecoderTellStatus | |
| +sf_flac_tell_callback (const FLAC__StreamDecoder * UNUSED (decoder), FLAC__uint64 *absolute_byte_offset, void *client_data) | |
| +#endif | |
|  {	SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; | |
|   | |
|  	*absolute_byte_offset = psf_ftell (psf) ; | |
|  	if (psf->error) | |
| +#ifdef LEGACY_FLAC | |
|  		return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_ERROR ; | |
|   | |
|  	return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK ; | |
| +#else | |
| +		return FLAC__STREAM_DECODER_TELL_STATUS_ERROR ; | |
| + | |
| +	return FLAC__STREAM_DECODER_TELL_STATUS_OK ; | |
| +#endif | |
|  } /* sf_flac_tell_callback */ | |
|   | |
| +#ifdef LEGACY_FLAC | |
|  static FLAC__SeekableStreamDecoderLengthStatus | |
|  sf_flac_length_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__uint64 *stream_length, void *client_data) | |
| +#else | |
| +static FLAC__StreamDecoderLengthStatus | |
| +sf_flac_length_callback (const FLAC__StreamDecoder * UNUSED (decoder), FLAC__uint64 *stream_length, void *client_data) | |
| +#endif | |
|  {	SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; | |
|   | |
|  	if ((*stream_length = psf->filelength) == 0) | |
| +#ifdef LEGACY_FLAC | |
|  		return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_ERROR ; | |
|   | |
|  	return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK ; | |
| +#else | |
| +		return FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR ; | |
| + | |
| +	return FLAC__STREAM_DECODER_LENGTH_STATUS_OK ; | |
| +#endif | |
|  } /* sf_flac_length_callback */ | |
|   | |
|  static FLAC__bool | |
| +#ifdef LEGACY_FLAC | |
|  sf_flac_eof_callback (const FLAC__SeekableStreamDecoder *UNUSED (decoder), void *client_data) | |
| +#else | |
| +sf_flac_eof_callback (const FLAC__StreamDecoder *UNUSED (decoder), void *client_data) | |
| +#endif | |
|  {	SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; | |
|   | |
|  	if (psf_ftell (psf) == psf->filelength) | |
| @@ -337,7 +415,11 @@ | |
|  } /* sf_flac_eof_callback */ | |
|   | |
|  static FLAC__StreamDecoderWriteStatus | |
| +#ifdef LEGACY_FLAC | |
|  sf_flac_write_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), const FLAC__Frame *frame, const FLAC__int32 * const buffer [], void *client_data) | |
| +#else | |
| +sf_flac_write_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC__Frame *frame, const FLAC__int32 * const buffer [], void *client_data) | |
| +#endif | |
|  {	SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; | |
|  	FLAC_PRIVATE* pflac = (FLAC_PRIVATE*) psf->codec_data ; | |
|   | |
| @@ -353,7 +435,11 @@ | |
|  } /* sf_flac_write_callback */ | |
|   | |
|  static void | |
| +#ifdef LEGACY_FLAC | |
|  sf_flac_meta_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), const FLAC__StreamMetadata *metadata, void *client_data) | |
| +#else | |
| +sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC__StreamMetadata *metadata, void *client_data) | |
| +#endif | |
|  {	SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; | |
|   | |
|  	switch (metadata->type) | |
| @@ -387,7 +473,11 @@ | |
|  } /* sf_flac_meta_callback */ | |
|   | |
|  static void | |
| +#ifdef LEGACY_FLAC | |
|  sf_flac_error_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__StreamDecoderErrorStatus status, void *client_data) | |
| +#else | |
| +sf_flac_error_callback (const FLAC__StreamDecoder * UNUSED (decoder), FLAC__StreamDecoderErrorStatus status, void *client_data) | |
| +#endif | |
|  {	SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; | |
|   | |
|  	psf_log_printf (psf, "ERROR : %s\n", FLAC__StreamDecoderErrorStatusString [status]) ; | |
| @@ -407,17 +497,29 @@ | |
|  	return ; | |
|  } /* sf_flac_error_callback */ | |
|   | |
| +#ifdef LEGACY_FLAC | |
|  static FLAC__SeekableStreamEncoderSeekStatus | |
|  sf_flac_enc_seek_callback (const FLAC__SeekableStreamEncoder * UNUSED (encoder), FLAC__uint64 absolute_byte_offset, void *client_data) | |
| +#else | |
| +static FLAC__StreamEncoderSeekStatus | |
| +sf_flac_enc_seek_callback (const FLAC__StreamEncoder * UNUSED (encoder), FLAC__uint64 absolute_byte_offset, void *client_data) | |
| +#endif | |
|  {	SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; | |
|   | |
|  	psf_fseek (psf, absolute_byte_offset, SEEK_SET) ; | |
|  	if (psf->error) | |
| +#ifdef LEGACY_FLAC | |
|  		return FLAC__SEEKABLE_STREAM_ENCODER_SEEK_STATUS_ERROR ; | |
|   | |
|      return FLAC__SEEKABLE_STREAM_ENCODER_SEEK_STATUS_OK ; | |
| +#else | |
| +		return FLAC__STREAM_ENCODER_SEEK_STATUS_ERROR ; | |
| + | |
| +    return FLAC__STREAM_ENCODER_SEEK_STATUS_OK ; | |
| +#endif | |
|  } /* sf_flac_enc_seek_callback */ | |
|   | |
| +#ifdef LEGACY_FLAC | |
|  #ifdef HAVE_FLAC_1_1_1 | |
|  static FLAC__SeekableStreamEncoderTellStatus | |
|  sf_flac_enc_tell_callback (const FLAC__SeekableStreamEncoder *UNUSED (encoder), FLAC__uint64 *absolute_byte_offset, void *client_data) | |
| @@ -430,9 +532,25 @@ | |
|  	return FLAC__SEEKABLE_STREAM_ENCODER_TELL_STATUS_OK ; | |
|  } /* sf_flac_enc_tell_callback */ | |
|  #endif | |
| +#else | |
| +static FLAC__StreamEncoderTellStatus | |
| +sf_flac_enc_tell_callback (const FLAC__StreamEncoder *UNUSED (encoder), FLAC__uint64 *absolute_byte_offset, void *client_data) | |
| +{	SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; | |
| + | |
| +	*absolute_byte_offset = psf_ftell (psf) ; | |
| +	if (psf->error) | |
| +		return FLAC__STREAM_ENCODER_TELL_STATUS_ERROR ; | |
| + | |
| +	return FLAC__STREAM_ENCODER_TELL_STATUS_OK ; | |
| +} /* sf_flac_enc_tell_callback */ | |
| +#endif | |
|   | |
|  static FLAC__StreamEncoderWriteStatus | |
| +#ifdef LEGACY_FLAC | |
|  sf_flac_enc_write_callback (const FLAC__SeekableStreamEncoder * UNUSED (encoder), const FLAC__byte buffer [], unsigned bytes, unsigned UNUSED (samples), unsigned UNUSED (current_frame), void *client_data) | |
| +#else | |
| +sf_flac_enc_write_callback (const FLAC__StreamEncoder * UNUSED (encoder), const FLAC__byte buffer [], size_t bytes, unsigned UNUSED (samples), unsigned UNUSED (current_frame), void *client_data) | |
| +#endif | |
|  {	SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; | |
|   | |
|  	if (psf_fwrite (buffer, 1, bytes, psf) == bytes && psf->error == 0) | |
| @@ -509,15 +627,27 @@ | |
|  		return 0 ; | |
|   | |
|  	if (psf->mode == SFM_WRITE) | |
| -	{	FLAC__seekable_stream_encoder_finish (pflac->fse) ; | |
| +	{ | |
| +#ifdef LEGACY_FLAC | |
| +		FLAC__seekable_stream_encoder_finish (pflac->fse) ; | |
|  		FLAC__seekable_stream_encoder_delete (pflac->fse) ; | |
| +#else | |
| +		FLAC__stream_encoder_finish (pflac->fse) ; | |
| +		FLAC__stream_encoder_delete (pflac->fse) ; | |
| +#endif | |
|  		if (pflac->encbuffer) | |
|  			free (pflac->encbuffer) ; | |
|  		} ; | |
|   | |
|  	if (psf->mode == SFM_READ) | |
| -	{	FLAC__seekable_stream_decoder_finish (pflac->fsd) ; | |
| +	{ | |
| +#ifdef LEGACY_FLAC | |
| +		FLAC__seekable_stream_decoder_finish (pflac->fsd) ; | |
|  		FLAC__seekable_stream_decoder_delete (pflac->fsd) ; | |
| +#else | |
| +		FLAC__stream_decoder_finish (pflac->fsd) ; | |
| +		FLAC__stream_decoder_delete (pflac->fsd) ; | |
| +#endif | |
|  		} ; | |
|   | |
|  	for (k = 0 ; k < ARRAY_LEN (pflac->rbuffer) ; k++) | |
| @@ -546,17 +676,6 @@ | |
|  		return SFE_FLAC_BAD_SAMPLE_RATE ; | |
|   | |
|  	psf_fseek (psf, 0, SEEK_SET) ; | |
| -	if ((pflac->fse = FLAC__seekable_stream_encoder_new ()) == NULL) | |
| -		return SFE_FLAC_NEW_DECODER ; | |
| -	FLAC__seekable_stream_encoder_set_write_callback (pflac->fse, sf_flac_enc_write_callback) ; | |
| -	FLAC__seekable_stream_encoder_set_seek_callback (pflac->fse, sf_flac_enc_seek_callback) ; | |
| - | |
| -#ifdef HAVE_FLAC_1_1_1 | |
| -	FLAC__seekable_stream_encoder_set_tell_callback (pflac->fse, sf_flac_enc_tell_callback) ; | |
| -#endif | |
| -	FLAC__seekable_stream_encoder_set_client_data (pflac->fse, psf) ; | |
| -	FLAC__seekable_stream_encoder_set_channels (pflac->fse, psf->sf.channels) ; | |
| -	FLAC__seekable_stream_encoder_set_sample_rate (pflac->fse, psf->sf.samplerate) ; | |
|   | |
|  	switch (psf->sf.format & SF_FORMAT_SUBMASK) | |
|  	{	case SF_FORMAT_PCM_S8 : | |
| @@ -574,12 +693,36 @@ | |
|  			break ; | |
|  		} ; | |
|   | |
| +#ifdef LEGACY_FLAC | |
| +	if ((pflac->fse = FLAC__seekable_stream_encoder_new ()) == NULL) | |
| +		return SFE_FLAC_NEW_DECODER ; | |
| +	FLAC__seekable_stream_encoder_set_write_callback (pflac->fse, sf_flac_enc_write_callback) ; | |
| +	FLAC__seekable_stream_encoder_set_seek_callback (pflac->fse, sf_flac_enc_seek_callback) ; | |
| + | |
| +#ifdef HAVE_FLAC_1_1_1 | |
| +	FLAC__seekable_stream_encoder_set_tell_callback (pflac->fse, sf_flac_enc_tell_callback) ; | |
| +#endif | |
| +	FLAC__seekable_stream_encoder_set_client_data (pflac->fse, psf) ; | |
| +	FLAC__seekable_stream_encoder_set_channels (pflac->fse, psf->sf.channels) ; | |
| +	FLAC__seekable_stream_encoder_set_sample_rate (pflac->fse, psf->sf.samplerate) ; | |
|  	FLAC__seekable_stream_encoder_set_bits_per_sample (pflac->fse, bps) ; | |
|   | |
|  	if ((bps = FLAC__seekable_stream_encoder_init (pflac->fse)) != FLAC__SEEKABLE_STREAM_DECODER_OK) | |
|  	{	psf_log_printf (psf, "Error : FLAC encoder init returned error : %s\n", FLAC__seekable_stream_encoder_get_resolved_state_string (pflac->fse)) ; | |
|  		return SFE_FLAC_INIT_DECODER ; | |
|  		} ; | |
| +#else | |
| +	if ((pflac->fse = FLAC__stream_encoder_new ()) == NULL) | |
| +		return SFE_FLAC_NEW_DECODER ; | |
| +	FLAC__stream_encoder_set_channels (pflac->fse, psf->sf.channels) ; | |
| +	FLAC__stream_encoder_set_sample_rate (pflac->fse, psf->sf.samplerate) ; | |
| +	FLAC__stream_encoder_set_bits_per_sample (pflac->fse, bps) ; | |
| + | |
| +	if ((bps = FLAC__stream_encoder_init_stream (pflac->fse, sf_flac_enc_write_callback, sf_flac_enc_seek_callback, sf_flac_enc_tell_callback, NULL, psf)) != FLAC__STREAM_DECODER_INIT_STATUS_OK) | |
| +	{	psf_log_printf (psf, "Error : FLAC encoder init returned error : %s\n", FLAC__StreamEncoderInitStatusString[bps]) ; | |
| +		return SFE_FLAC_INIT_DECODER ; | |
| +		} ; | |
| +#endif | |
|   | |
|  	if (psf->error == 0) | |
|  		psf->dataoffset = psf_ftell (psf) ; | |
| @@ -593,6 +736,7 @@ | |
|  {	FLAC_PRIVATE* pflac = (FLAC_PRIVATE*) psf->codec_data ; | |
|   | |
|  	psf_fseek (psf, 0, SEEK_SET) ; | |
| +#ifdef LEGACY_FLAC | |
|  	if ((pflac->fsd = FLAC__seekable_stream_decoder_new ()) == NULL) | |
|  		return SFE_FLAC_NEW_DECODER ; | |
|   | |
| @@ -610,9 +754,22 @@ | |
|  		return SFE_FLAC_INIT_DECODER ; | |
|   | |
|  	FLAC__seekable_stream_decoder_process_until_end_of_metadata (pflac->fsd) ; | |
| +#else | |
| +	if ((pflac->fsd = FLAC__stream_decoder_new ()) == NULL) | |
| +		return SFE_FLAC_NEW_DECODER ; | |
| + | |
| +	if (FLAC__stream_decoder_init_stream (pflac->fsd, sf_flac_read_callback, sf_flac_seek_callback, sf_flac_tell_callback, sf_flac_length_callback, sf_flac_eof_callback, sf_flac_write_callback, sf_flac_meta_callback, sf_flac_error_callback, psf) != FLAC__STREAM_DECODER_INIT_STATUS_OK) | |
| +		return SFE_FLAC_INIT_DECODER ; | |
| + | |
| +	FLAC__stream_decoder_process_until_end_of_metadata (pflac->fsd) ; | |
| +#endif | |
|  	if (psf->error == 0) | |
|  	{	FLAC__uint64 position ; | |
| +#ifdef LEGACY_FLAC | |
|  		FLAC__seekable_stream_decoder_get_decode_position (pflac->fsd, &position) ; | |
| +#else | |
| +		FLAC__stream_decoder_get_decode_position (pflac->fsd, &position) ; | |
| +#endif | |
|  		psf->dataoffset = position ; | |
|  		} ; | |
|   | |
| @@ -676,10 +833,18 @@ | |
|  		flac_buffer_copy (psf) ; | |
|   | |
|  	while (pflac->pos < pflac->len) | |
| -	{	if (FLAC__seekable_stream_decoder_process_single (pflac->fsd) == 0) | |
| +	{ | |
| +#ifdef LEGACY_FLAC | |
| +		if (FLAC__seekable_stream_decoder_process_single (pflac->fsd) == 0) | |
|  			break ; | |
|  		if (FLAC__seekable_stream_decoder_get_state (pflac->fsd) != FLAC__SEEKABLE_STREAM_DECODER_OK) | |
|  			break ; | |
| +#else | |
| +		if (FLAC__stream_decoder_process_single (pflac->fsd) == 0) | |
| +			break ; | |
| +		if (FLAC__stream_decoder_get_state (pflac->fsd) >= FLAC__STREAM_DECODER_END_OF_STREAM) | |
| +			break ; | |
| +#endif | |
|  		} ; | |
|   | |
|  	pflac->ptr = NULL ; | |
| @@ -795,7 +960,11 @@ | |
|  	while (len > 0) | |
|  	{	writecount = (len >= bufferlen) ? bufferlen : (int) len ; | |
|  		convert (ptr + total, buffer, writecount) ; | |
| +#ifdef LEGACY_FLAC | |
|  		if (FLAC__seekable_stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) | |
| +#else | |
| +		if (FLAC__stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) | |
| +#endif | |
|  			thiswrite = writecount ; | |
|  		else | |
|  			break ; | |
| @@ -837,7 +1006,11 @@ | |
|  	while (len > 0) | |
|  	{	writecount = (len >= bufferlen) ? bufferlen : (int) len ; | |
|  		convert (ptr + total, buffer, writecount) ; | |
| +#ifdef LEGACY_FLAC | |
|  		if (FLAC__seekable_stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) | |
| +#else | |
| +		if (FLAC__stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) | |
| +#endif | |
|  			thiswrite = writecount ; | |
|  		else | |
|  			break ; | |
| @@ -879,7 +1052,11 @@ | |
|  	while (len > 0) | |
|  	{	writecount = (len >= bufferlen) ? bufferlen : (int) len ; | |
|  		convert (ptr + total, buffer, writecount, psf->norm_float) ; | |
| +#ifdef LEGACY_FLAC | |
|  		if (FLAC__seekable_stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) | |
| +#else | |
| +		if (FLAC__stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) | |
| +#endif | |
|  			thiswrite = writecount ; | |
|  		else | |
|  			break ; | |
| @@ -1011,7 +1188,11 @@ | |
|  	while (len > 0) | |
|  	{	writecount = (len >= bufferlen) ? bufferlen : (int) len ; | |
|  		convert (ptr + total, buffer, writecount, psf->norm_double) ; | |
| +#ifdef LEGACY_FLAC | |
|  		if (FLAC__seekable_stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) | |
| +#else | |
| +		if (FLAC__stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) | |
| +#endif | |
|  			thiswrite = writecount ; | |
|  		else | |
|  			break ; | |
| @@ -1131,10 +1312,17 @@ | |
|   | |
|  	if (psf->mode == SFM_READ) | |
|  	{	FLAC__uint64 position ; | |
| +#ifdef LEGACY_FLAC | |
|  		if (FLAC__seekable_stream_decoder_seek_absolute (pflac->fsd, offset)) | |
|  		{	FLAC__seekable_stream_decoder_get_decode_position (pflac->fsd, &position) ; | |
|  			return offset ; | |
|  			} ; | |
| +#else | |
| +		if (FLAC__stream_decoder_seek_absolute (pflac->fsd, offset)) | |
| +		{	FLAC__stream_decoder_get_decode_position (pflac->fsd, &position) ; | |
| +			return offset ; | |
| +			} ; | |
| +#endif | |
|   | |
|  		return ((sf_count_t) -1) ; | |
|  		} ; | |
| diff -urN libsndfile-1.0.17-orig/configure.ac libsndfile-1.0.17/configure.ac | |
| --- libsndfile-1.0.17-orig/configure.ac	2006-08-31 11:39:37.000000000 +0200 | |
| +++ libsndfile-1.0.17/configure.ac	2007-06-20 18:53:59.333347643 +0200 | |
| @@ -258,7 +258,7 @@ | |
|   | |
|  ac_cv_sqlite3=no | |
|  if test x$enable_sqlite != xno ; then | |
| -	PKG_CHECK_MODULES(SQLITE3, sqlite3 >= 3.2, ac_cv_sqlite3=yes, ac_cv_sqlite3=no) | |
| +	: #PKG_CHECK_MODULES(SQLITE3, sqlite3 >= 3.2, ac_cv_sqlite3=yes, ac_cv_sqlite3=no) | |
|  	fi | |
|   | |
|  if test x$ac_cv_sqlite3 = "xyes" ; then
 | |
| 
 |