diff options
author | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-04-03 00:38:22 +0200 |
---|---|---|
committer | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-04-03 00:38:22 +0200 |
commit | 0ed2cd4f34189ec303dfac5a30de0abae0decba8 (patch) | |
tree | 7a8d08d25ca7c81daa9d6cd65fd4f633fd676b41 /src/libflac/decoder_flac.c | |
parent | 6081bc9a06ee97333769f77a9e5c18a15afb29da (diff) | |
parent | 3dd7d925c2feb7868a49e7a1a0b953a5aab233f0 (diff) | |
download | xine-lib-0ed2cd4f34189ec303dfac5a30de0abae0decba8.tar.gz xine-lib-0ed2cd4f34189ec303dfac5a30de0abae0decba8.tar.bz2 |
Merge changes happened in 1.1 development.
Diffstat (limited to 'src/libflac/decoder_flac.c')
-rw-r--r-- | src/libflac/decoder_flac.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/libflac/decoder_flac.c b/src/libflac/decoder_flac.c index b62286eaa..9b77cc27d 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, @@ -355,10 +363,26 @@ open_plugin (audio_decoder_class_t *class_gen, xine_stream_t *stream) { FLAC__stream_decoder_set_client_data (this->flac_decoder, this); - if (FLAC__stream_decoder_init (this->flac_decoder) == FLAC__STREAM_DECODER_SEARCH_FOR_METADATA) { + if (FLAC__stream_decoder_init (this->flac_decoder) != FLAC__STREAM_DECODER_SEARCH_FOR_METADATA) { + 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; } |