ALT Linux Bugzilla
– Attachment 1823 Details for
Bug 10876
unsupported flac >= 1.1.3
New bug
|
Search
|
[?]
|
Help
Register
|
Log In
[x]
|
Forgot Password
Login:
[x]
|
EN
|
RU
[patch]
ardour-2.0beta11.1+flac-1.1.3.patch
ardour-2.0beta11.1+flac-1.1.3.patch (text/plain), 21.23 KB, created by
led
on 2007-02-19 18:59:56 MSK
(
hide
)
Description:
ardour-2.0beta11.1+flac-1.1.3.patch
Filename:
MIME Type:
Creator:
led
Created:
2007-02-19 18:59:56 MSK
Size:
21.23 KB
patch
obsolete
>diff -urN ardour-2.0beta11.1.orig/libs/libsndfile/configure ardour-2.0beta11.1/libs/libsndfile/configure >--- ardour-2.0beta11.1.orig/libs/libsndfile/configure 2006-12-18 15:01:38 +0200 >+++ ardour-2.0beta11.1/libs/libsndfile/configure 2007-02-19 16:47:26 +0200 >@@ -12365,9 +12365,9 @@ > done > > if test x$ac_cv_header_FLAC_all_h = xyes ; then >- echo "$as_me:$LINENO: checking for FLAC__seekable_stream_encoder_set_tell_callback in -lFLAC" >&5 >-echo $ECHO_N "checking for FLAC__seekable_stream_encoder_set_tell_callback in -lFLAC... $ECHO_C" >&6 >-if test "${ac_cv_lib_FLAC_FLAC__seekable_stream_encoder_set_tell_callback+set}" = set; then >+ echo "$as_me:$LINENO: checking for FLAC__stream_encoder_init_stream in -lFLAC" >&5 >+echo $ECHO_N "checking for FLAC__stream_encoder_init_stream in -lFLAC... $ECHO_C" >&6 >+if test "${ac_cv_lib_FLAC_FLAC__stream_encoder_init_stream+set}" = set; then > echo $ECHO_N "(cached) $ECHO_C" >&6 > else > ac_check_lib_save_LIBS=$LIBS >@@ -12385,11 +12385,11 @@ > #endif > /* We use char because int might match the return type of a gcc2 > builtin and then its argument prototype would still apply. */ >-char FLAC__seekable_stream_encoder_set_tell_callback (); >+char FLAC__stream_encoder_init_stream (); > int > main () > { >-FLAC__seekable_stream_encoder_set_tell_callback (); >+FLAC__stream_encoder_init_stream (); > ; > return 0; > } >@@ -12416,20 +12416,20 @@ > ac_status=$? > echo "$as_me:$LINENO: \$? = $ac_status" >&5 > (exit $ac_status); }; }; then >- ac_cv_lib_FLAC_FLAC__seekable_stream_encoder_set_tell_callback=yes >+ ac_cv_lib_FLAC_FLAC__stream_encoder_init_stream=yes > else > echo "$as_me: failed program was:" >&5 > sed 's/^/| /' conftest.$ac_ext >&5 > >-ac_cv_lib_FLAC_FLAC__seekable_stream_encoder_set_tell_callback=no >+ac_cv_lib_FLAC_FLAC__stream_encoder_init_stream=no > fi > rm -f conftest.err conftest.$ac_objext \ > conftest$ac_exeext conftest.$ac_ext > LIBS=$ac_check_lib_save_LIBS > fi >-echo "$as_me:$LINENO: result: $ac_cv_lib_FLAC_FLAC__seekable_stream_encoder_set_tell_callback" >&5 >-echo "${ECHO_T}$ac_cv_lib_FLAC_FLAC__seekable_stream_encoder_set_tell_callback" >&6 >-if test $ac_cv_lib_FLAC_FLAC__seekable_stream_encoder_set_tell_callback = yes; then >+echo "$as_me:$LINENO: result: $ac_cv_lib_FLAC_FLAC__stream_encoder_init_stream" >&5 >+echo "${ECHO_T}$ac_cv_lib_FLAC_FLAC__stream_encoder_init_stream" >&6 >+if test $ac_cv_lib_FLAC_FLAC__stream_encoder_init_stream = yes; then > HAVE_FLAC_1_1_1="yes" > fi > >diff -urN ardour-2.0beta11.1.orig/libs/libsndfile/src/flac.c ardour-2.0beta11.1/libs/libsndfile/src/flac.c >--- ardour-2.0beta11.1.orig/libs/libsndfile/src/flac.c 2006-08-30 23:50:11 +0300 >+++ ardour-2.0beta11.1/libs/libsndfile/src/flac.c 2007-02-19 16:48:29 +0200 >@@ -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->fdata ; > >@@ -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->fdata ; > > 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) ; > } ;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 10876
: 1823