diff options
author | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2006-12-25 19:22:00 +0000 |
---|---|---|
committer | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2006-12-25 19:22:00 +0000 |
commit | 3fb9e4c425b7dfcc7ffe65441a4a8d85d8951a1c (patch) | |
tree | 13098680d70bebf0d62bf9d7081bcd4c7325e606 /src/libflac/decoder_flac.c | |
parent | 43ee5539b3df3fcf945a56e98153f714cf5a0117 (diff) | |
download | xine-lib-3fb9e4c425b7dfcc7ffe65441a4a8d85d8951a1c.tar.gz xine-lib-3fb9e4c425b7dfcc7ffe65441a4a8d85d8951a1c.tar.bz2 |
* Make the libFLAC-based decoder and demuxer for FLAC files work with recent
FLAC release 1.1.3.
CVS patchset: 8455
CVS date: 2006/12/25 19:22:00
Diffstat (limited to 'src/libflac/decoder_flac.c')
-rw-r--r-- | src/libflac/decoder_flac.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/libflac/decoder_flac.c b/src/libflac/decoder_flac.c index b62286eaa..095555e1d 100644 --- a/src/libflac/decoder_flac.c +++ b/src/libflac/decoder_flac.c @@ -30,6 +30,13 @@ #include <FLAC/stream_decoder.h> +#if !defined FLAC_API_VERSION_CURRENT || FLAC_API_VERSION_CURRENT < 8 +#include <FLAC/seekable_stream_decoder.h> +#define LEGACY_FLAC +#else +#undef LEGACY_FLAC +#endif + #define LOG_MODULE "flac_decoder" #define LOG_VERBOSE @@ -344,6 +351,7 @@ open_plugin (audio_decoder_class_t *class_gen, xine_stream_t *stream) { this->flac_decoder = FLAC__stream_decoder_new(); +#ifdef LEGACY_FLAC FLAC__stream_decoder_set_read_callback (this->flac_decoder, flac_read_callback); FLAC__stream_decoder_set_write_callback (this->flac_decoder, @@ -359,6 +367,22 @@ open_plugin (audio_decoder_class_t *class_gen, xine_stream_t *stream) { free (this); return NULL; } +#else + if ( FLAC__stream_decoder_init_stream (this->flac_decoder, + flac_read_callback, + NULL, /* seek */ + NULL, /* tell */ + NULL, /* length */ + NULL, /* eof */ + flac_write_callback, + NULL, /* metadata */ + flac_error_callback, + this + ) != FLAC__STREAM_DECODER_INIT_STATUS_OK ) { + free (this); + return NULL; + } +#endif return (audio_decoder_t *) this; } |