diff options
author | Jakub Bogusz | 2006-12-24 19:49:56 (GMT) |
---|---|---|
committer | cvs2git | 2012-06-24 12:13:13 (GMT) |
commit | 05eeb3168162d36627f9f867332852f750b0ab61 (patch) | |
tree | ced7193cdd98295621bf37220db3dffa97c61b9c | |
parent | 2f051b7f85c234fa49817db97f0492a12b3c6b47 (diff) | |
download | libsndfile-05eeb3168162d36627f9f867332852f750b0ab61.zip libsndfile-05eeb3168162d36627f9f867332852f750b0ab61.tar.gz |
- update to flac 1.1.3 API
Changed files:
libsndfile-flac.patch -> 1.1
-rw-r--r-- | libsndfile-flac.patch | 343 |
1 files changed, 343 insertions, 0 deletions
diff --git a/libsndfile-flac.patch b/libsndfile-flac.patch new file mode 100644 index 0000000..dc5f51e --- /dev/null +++ b/libsndfile-flac.patch @@ -0,0 +1,343 @@ +--- libsndfile-1.0.17/src/flac.c.orig 2006-08-31 11:22:19.000000000 +0200 ++++ libsndfile-1.0.17/src/flac.c 2006-12-24 18:01:46.197783626 +0100 +@@ -60,8 +60,8 @@ + } PFLAC_PCM ; + + typedef struct +-{ FLAC__SeekableStreamDecoder *fsd ; +- FLAC__SeekableStreamEncoder *fse ; ++{ FLAC__StreamDecoder *fsd ; ++ FLAC__StreamEncoder *fse ; + PFLAC_PCM pcmtype ; + void* ptr ; + unsigned pos, len, remain ; +@@ -108,21 +108,19 @@ + static int flac_command (SF_PRIVATE *psf, int command, void *data, int datasize) ; + + /* Decoder Callbacks */ +-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) ; +-static FLAC__SeekableStreamDecoderLengthStatus sf_flac_length_callback (const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data) ; +-static FLAC__bool sf_flac_eof_callback (const FLAC__SeekableStreamDecoder *decoder, void *client_data) ; +-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) ; ++static FLAC__StreamDecoderReadStatus sf_flac_read_callback (const FLAC__StreamDecoder *decoder, FLAC__byte buffer [], unsigned *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) ; + + /* Encoder Callbacks */ +-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) ; ++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 [], unsigned bytes, unsigned samples, unsigned current_frame, void *client_data) ; + + static const int legal_sample_rates [] = + { 8000, 16000, 22050, 24000, 32000, 44100, 48000, 96000 +@@ -283,51 +281,51 @@ + } /* flac_buffer_copy */ + + +-static FLAC__SeekableStreamDecoderReadStatus +-sf_flac_read_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__byte buffer [], unsigned *bytes, void *client_data) ++static FLAC__StreamDecoderReadStatus ++sf_flac_read_callback (const FLAC__StreamDecoder * UNUSED (decoder), FLAC__byte buffer [], unsigned *bytes, void *client_data) + { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; + + *bytes = psf_fread (buffer, 1, *bytes, psf) ; + if (*bytes > 0 && psf->error == 0) +- return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK ; ++ return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE ; + +- return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR ; ++ return FLAC__STREAM_DECODER_READ_STATUS_ABORT ; + } /* sf_flac_read_callback */ + +-static FLAC__SeekableStreamDecoderSeekStatus +-sf_flac_seek_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__uint64 absolute_byte_offset, void *client_data) ++static FLAC__StreamDecoderSeekStatus ++sf_flac_seek_callback (const FLAC__StreamDecoder * UNUSED (decoder), FLAC__uint64 absolute_byte_offset, void *client_data) + { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; + + psf_fseek (psf, absolute_byte_offset, SEEK_SET) ; + if (psf->error) +- return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR ; ++ return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR ; + +- return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK ; ++ return FLAC__STREAM_DECODER_SEEK_STATUS_OK ; + } /* sf_flac_seek_callback */ + +-static FLAC__SeekableStreamDecoderTellStatus +-sf_flac_tell_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__uint64 *absolute_byte_offset, void *client_data) ++static FLAC__StreamDecoderTellStatus ++sf_flac_tell_callback (const FLAC__StreamDecoder * UNUSED (decoder), 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__SEEKABLE_STREAM_DECODER_TELL_STATUS_ERROR ; ++ return FLAC__STREAM_DECODER_TELL_STATUS_ERROR ; + +- return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK ; ++ return FLAC__STREAM_DECODER_TELL_STATUS_OK ; + } /* sf_flac_tell_callback */ + +-static FLAC__SeekableStreamDecoderLengthStatus +-sf_flac_length_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__uint64 *stream_length, void *client_data) ++static FLAC__StreamDecoderLengthStatus ++sf_flac_length_callback (const FLAC__StreamDecoder * UNUSED (decoder), FLAC__uint64 *stream_length, void *client_data) + { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; + + if ((*stream_length = psf->filelength) == 0) +- return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_ERROR ; ++ return FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR ; + +- return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK ; ++ return FLAC__STREAM_DECODER_LENGTH_STATUS_OK ; + } /* sf_flac_length_callback */ + + static FLAC__bool +-sf_flac_eof_callback (const FLAC__SeekableStreamDecoder *UNUSED (decoder), void *client_data) ++sf_flac_eof_callback (const FLAC__StreamDecoder *UNUSED (decoder), void *client_data) + { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; + + if (psf_ftell (psf) == psf->filelength) +@@ -337,7 +335,7 @@ + } /* sf_flac_eof_callback */ + + static FLAC__StreamDecoderWriteStatus +-sf_flac_write_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), const FLAC__Frame *frame, const FLAC__int32 * const buffer [], void *client_data) ++sf_flac_write_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC__Frame *frame, const FLAC__int32 * const buffer [], void *client_data) + { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; + FLAC_PRIVATE* pflac = (FLAC_PRIVATE*) psf->codec_data ; + +@@ -353,7 +351,7 @@ + } /* sf_flac_write_callback */ + + static void +-sf_flac_meta_callback (const FLAC__SeekableStreamDecoder * 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 ; + + switch (metadata->type) +@@ -387,7 +385,7 @@ + } /* sf_flac_meta_callback */ + + static void +-sf_flac_error_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__StreamDecoderErrorStatus status, void *client_data) ++sf_flac_error_callback (const FLAC__StreamDecoder * UNUSED (decoder), FLAC__StreamDecoderErrorStatus status, void *client_data) + { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; + + psf_log_printf (psf, "ERROR : %s\n", FLAC__StreamDecoderErrorStatusString [status]) ; +@@ -407,32 +405,30 @@ + return ; + } /* sf_flac_error_callback */ + +-static FLAC__SeekableStreamEncoderSeekStatus +-sf_flac_enc_seek_callback (const FLAC__SeekableStreamEncoder * UNUSED (encoder), FLAC__uint64 absolute_byte_offset, void *client_data) ++static FLAC__StreamEncoderSeekStatus ++sf_flac_enc_seek_callback (const FLAC__StreamEncoder * UNUSED (encoder), FLAC__uint64 absolute_byte_offset, void *client_data) + { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; + + psf_fseek (psf, absolute_byte_offset, SEEK_SET) ; + if (psf->error) +- return FLAC__SEEKABLE_STREAM_ENCODER_SEEK_STATUS_ERROR ; ++ return FLAC__STREAM_ENCODER_SEEK_STATUS_ERROR ; + +- return FLAC__SEEKABLE_STREAM_ENCODER_SEEK_STATUS_OK ; ++ return FLAC__STREAM_ENCODER_SEEK_STATUS_OK ; + } /* sf_flac_enc_seek_callback */ + +-#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) ++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__SEEKABLE_STREAM_ENCODER_TELL_STATUS_ERROR ; ++ return FLAC__STREAM_ENCODER_TELL_STATUS_ERROR ; + +- return FLAC__SEEKABLE_STREAM_ENCODER_TELL_STATUS_OK ; ++ return FLAC__STREAM_ENCODER_TELL_STATUS_OK ; + } /* sf_flac_enc_tell_callback */ +-#endif + + static FLAC__StreamEncoderWriteStatus +-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) ++sf_flac_enc_write_callback (const FLAC__StreamEncoder * UNUSED (encoder), const FLAC__byte buffer [], unsigned bytes, unsigned UNUSED (samples), unsigned UNUSED (current_frame), void *client_data) + { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ; + + if (psf_fwrite (buffer, 1, bytes, psf) == bytes && psf->error == 0) +@@ -509,15 +505,15 @@ + return 0 ; + + if (psf->mode == SFM_WRITE) +- { FLAC__seekable_stream_encoder_finish (pflac->fse) ; +- FLAC__seekable_stream_encoder_delete (pflac->fse) ; ++ { FLAC__stream_encoder_finish (pflac->fse) ; ++ FLAC__stream_encoder_delete (pflac->fse) ; + if (pflac->encbuffer) + free (pflac->encbuffer) ; + } ; + + if (psf->mode == SFM_READ) +- { FLAC__seekable_stream_decoder_finish (pflac->fsd) ; +- FLAC__seekable_stream_decoder_delete (pflac->fsd) ; ++ { FLAC__stream_decoder_finish (pflac->fsd) ; ++ FLAC__stream_decoder_delete (pflac->fsd) ; + } ; + + for (k = 0 ; k < ARRAY_LEN (pflac->rbuffer) ; k++) +@@ -546,17 +542,11 @@ + return SFE_FLAC_BAD_SAMPLE_RATE ; + + psf_fseek (psf, 0, SEEK_SET) ; +- if ((pflac->fse = FLAC__seekable_stream_encoder_new ()) == NULL) ++ if ((pflac->fse = FLAC__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__stream_encoder_set_channels (pflac->fse, psf->sf.channels) ; ++ FLAC__stream_encoder_set_sample_rate (pflac->fse, psf->sf.samplerate) ; + + switch (psf->sf.format & SF_FORMAT_SUBMASK) + { case SF_FORMAT_PCM_S8 : +@@ -574,10 +564,15 @@ + break ; + } ; + +- FLAC__seekable_stream_encoder_set_bits_per_sample (pflac->fse, bps) ; ++ FLAC__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)) ; ++ 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_ENCODER_INIT_STATUS_OK) ++ { psf_log_printf (psf, "Error : FLAC encoder init returned error : %s\n", FLAC__stream_encoder_get_resolved_state_string (pflac->fse)) ; + return SFE_FLAC_INIT_DECODER ; + } ; + +@@ -593,26 +588,25 @@ + { FLAC_PRIVATE* pflac = (FLAC_PRIVATE*) psf->codec_data ; + + psf_fseek (psf, 0, SEEK_SET) ; +- if ((pflac->fsd = FLAC__seekable_stream_decoder_new ()) == NULL) ++ if ((pflac->fsd = FLAC__stream_decoder_new ()) == NULL) + return SFE_FLAC_NEW_DECODER ; + +- FLAC__seekable_stream_decoder_set_read_callback (pflac->fsd, sf_flac_read_callback) ; +- FLAC__seekable_stream_decoder_set_seek_callback (pflac->fsd, sf_flac_seek_callback) ; +- FLAC__seekable_stream_decoder_set_tell_callback (pflac->fsd, sf_flac_tell_callback) ; +- FLAC__seekable_stream_decoder_set_length_callback (pflac->fsd, sf_flac_length_callback) ; +- FLAC__seekable_stream_decoder_set_eof_callback (pflac->fsd, sf_flac_eof_callback) ; +- FLAC__seekable_stream_decoder_set_write_callback (pflac->fsd, sf_flac_write_callback) ; +- FLAC__seekable_stream_decoder_set_metadata_callback (pflac->fsd, sf_flac_meta_callback) ; +- FLAC__seekable_stream_decoder_set_error_callback (pflac->fsd, sf_flac_error_callback) ; +- FLAC__seekable_stream_decoder_set_client_data (pflac->fsd, psf) ; +- +- if (FLAC__seekable_stream_decoder_init (pflac->fsd) != FLAC__SEEKABLE_STREAM_DECODER_OK) ++ 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__seekable_stream_decoder_process_until_end_of_metadata (pflac->fsd) ; ++ FLAC__stream_decoder_process_until_end_of_metadata (pflac->fsd) ; + if (psf->error == 0) + { FLAC__uint64 position ; +- FLAC__seekable_stream_decoder_get_decode_position (pflac->fsd, &position) ; ++ FLAC__stream_decoder_get_decode_position (pflac->fsd, &position) ; + psf->dataoffset = position ; + } ; + +@@ -676,9 +670,9 @@ + flac_buffer_copy (psf) ; + + while (pflac->pos < pflac->len) +- { if (FLAC__seekable_stream_decoder_process_single (pflac->fsd) == 0) ++ { if (FLAC__stream_decoder_process_single (pflac->fsd) == 0) + break ; +- if (FLAC__seekable_stream_decoder_get_state (pflac->fsd) != FLAC__SEEKABLE_STREAM_DECODER_OK) ++ if (FLAC__stream_decoder_get_state (pflac->fsd) == FLAC__STREAM_DECODER_ABORTED) + break ; + } ; + +@@ -795,7 +789,7 @@ + while (len > 0) + { writecount = (len >= bufferlen) ? bufferlen : (int) len ; + convert (ptr + total, buffer, writecount) ; +- if (FLAC__seekable_stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) ++ if (FLAC__stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) + thiswrite = writecount ; + else + break ; +@@ -837,7 +831,7 @@ + while (len > 0) + { writecount = (len >= bufferlen) ? bufferlen : (int) len ; + convert (ptr + total, buffer, writecount) ; +- if (FLAC__seekable_stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) ++ if (FLAC__stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) + thiswrite = writecount ; + else + break ; +@@ -879,7 +873,7 @@ + while (len > 0) + { writecount = (len >= bufferlen) ? bufferlen : (int) len ; + convert (ptr + total, buffer, writecount, psf->norm_float) ; +- if (FLAC__seekable_stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) ++ if (FLAC__stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) + thiswrite = writecount ; + else + break ; +@@ -1011,7 +1005,7 @@ + while (len > 0) + { writecount = (len >= bufferlen) ? bufferlen : (int) len ; + convert (ptr + total, buffer, writecount, psf->norm_double) ; +- if (FLAC__seekable_stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) ++ if (FLAC__stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels)) + thiswrite = writecount ; + else + break ; +@@ -1131,8 +1125,8 @@ + + if (psf->mode == SFM_READ) + { FLAC__uint64 position ; +- if (FLAC__seekable_stream_decoder_seek_absolute (pflac->fsd, offset)) +- { FLAC__seekable_stream_decoder_get_decode_position (pflac->fsd, &position) ; ++ if (FLAC__stream_decoder_seek_absolute (pflac->fsd, offset)) ++ { FLAC__stream_decoder_get_decode_position (pflac->fsd, &position) ; + return offset ; + } ; + |