ALT Linux Bugzilla
– Attachment 1831 Details for
Bug 10934
unsupported flac >= 1.1.3
New bug
|
Search
|
[?]
|
Help
Register
|
Log In
[x]
|
Forgot Password
Login:
[x]
|
EN
|
RU
[patch]
moc-2.4.1+flac-1.1.3.patch
moc-2.4.1+flac-1.1.3.patch (text/plain), 8.89 KB, created by
led
on 2007-02-26 14:22:47 MSK
(
hide
)
Description:
moc-2.4.1+flac-1.1.3.patch
Filename:
MIME Type:
Creator:
led
Created:
2007-02-26 14:22:47 MSK
Size:
8.89 KB
patch
obsolete
>diff -urN moc-2.4.1.orig/configure moc-2.4.1/configure >--- moc-2.4.1.orig/configure 2006-11-03 13:25:17 +0200 >+++ moc-2.4.1/configure 2007-02-20 15:59:25 +0200 >@@ -30698,7 +30698,7 @@ > LIBFLAC_LIBS="-L$libdir" > fi > >- LIBFLAC_LIBS="$LIBFLAC_LIBS -lFLAC -lm" >+ LIBFLAC_LIBS="$LIBFLAC_LIBS -lFLAC -logg -lm" > > if test "x$libFLAC_includes" != "x" ; then > LIBFLAC_CFLAGS="-I$libFLAC_includes" >diff -urN moc-2.4.1.orig/decoder_plugins/flac/flac.c moc-2.4.1/decoder_plugins/flac/flac.c >--- moc-2.4.1.orig/decoder_plugins/flac/flac.c 2006-11-03 13:25:17 +0200 >+++ moc-2.4.1/decoder_plugins/flac/flac.c 2007-02-20 16:04:57 +0200 >@@ -28,6 +28,13 @@ > #include "log.h" > #include "io.h" > >+/* by LEGACY_FLAC we mean pre-1.1.3, before FLAC__SeekableStreamDecoder was merged into FLAC__StreamDecoder */ >+#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8 >+#define LEGACY_FLAC >+#else >+#undef LEGACY_FLAC >+#endif >+ > #define MAX_SUPPORTED_CHANNELS 2 > > #define SAMPLES_PER_WRITE 512 >@@ -35,7 +42,11 @@ > > struct flac_data > { >+#ifdef LEGACY_FLAC > FLAC__SeekableStreamDecoder *decoder; >+#else >+ FLAC__StreamDecoder *decoder; >+#endif > struct io_stream *stream; > int bitrate; > int abort; /* abort playing (due to an error) */ >@@ -109,7 +120,11 @@ > } > > static FLAC__StreamDecoderWriteStatus write_callback ( >+#ifdef LEGACY_FLAC > const FLAC__SeekableStreamDecoder *decoder ATTR_UNUSED, >+#else >+ const FLAC__StreamDecoder *decoder ATTR_UNUSED, >+#endif > const FLAC__Frame *frame, > const FLAC__int32 * const buffer[], void *client_data) > { >@@ -127,7 +142,11 @@ > } > > static void metadata_callback ( >+#ifdef LEGACY_FLAC > const FLAC__SeekableStreamDecoder *decoder ATTR_UNUSED, >+#else >+ const FLAC__StreamDecoder *decoder ATTR_UNUSED, >+#endif > const FLAC__StreamMetadata *metadata, void *client_data) > { > struct flac_data *data = (struct flac_data *)client_data; >@@ -147,7 +166,11 @@ > } > > static void error_callback ( >+#ifdef LEGACY_FLAC > const FLAC__SeekableStreamDecoder *decoder ATTR_UNUSED, >+#else >+ const FLAC__StreamDecoder *decoder ATTR_UNUSED, >+#endif > FLAC__StreamDecoderErrorStatus status, void *client_data) > { > struct flac_data *data = (struct flac_data *)client_data; >@@ -160,9 +183,15 @@ > decoder_error (&data->error, ERROR_FATAL, 0, "FLAC: lost sync"); > } > >+#ifdef LEGACY_FLAC > static FLAC__SeekableStreamDecoderReadStatus read_callback ( > const FLAC__SeekableStreamDecoder *decoder ATTR_UNUSED, > FLAC__byte buffer[], unsigned *bytes, void *client_data) >+#else >+static FLAC__StreamDecoderReadStatus read_callback ( >+ const FLAC__StreamDecoder *decoder ATTR_UNUSED, >+ FLAC__byte buffer[], size_t *bytes, void *client_data) >+#endif > { > struct flac_data *data = (struct flac_data *)client_data; > ssize_t res; >@@ -171,52 +200,94 @@ > > if (res > 0) { > *bytes = res; >+#ifdef LEGACY_FLAC >+ return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK; >+#else > return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE; >+#endif > } > > if (res == 0) { > *bytes = 0; >+ /* not sure why this works, but if it ain't broke... */ > return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM; > } > > error ("read error: %s", io_strerror(data->stream)); > >+#ifdef LEGACY_FLAC >+ return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR; >+#else > return FLAC__STREAM_DECODER_READ_STATUS_ABORT; >+#endif > } > >+#ifdef LEGACY_FLAC > static FLAC__SeekableStreamDecoderSeekStatus seek_callback ( > const FLAC__SeekableStreamDecoder *decoder ATTR_UNUSED, >+#else >+static FLAC__StreamDecoderSeekStatus seek_callback ( >+ const FLAC__StreamDecoder *decoder ATTR_UNUSED, >+#endif > FLAC__uint64 absolute_byte_offset, void *client_data) > { > struct flac_data *data = (struct flac_data *)client_data; > >+#ifdef LEGACY_FLAC > return io_seek(data->stream, absolute_byte_offset, SEEK_SET) >= 0 > ? FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK > : FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR; >+#else >+ return io_seek(data->stream, absolute_byte_offset, SEEK_SET) >= 0 >+ ? FLAC__STREAM_DECODER_SEEK_STATUS_OK >+ : FLAC__STREAM_DECODER_SEEK_STATUS_ERROR; >+#endif > } > >+#ifdef LEGACY_FLAC > static FLAC__SeekableStreamDecoderTellStatus tell_callback ( > const FLAC__SeekableStreamDecoder *decoder ATTR_UNUSED, >+#else >+static FLAC__StreamDecoderTellStatus tell_callback ( >+ const FLAC__StreamDecoder *decoder ATTR_UNUSED, >+#endif > FLAC__uint64 *absolute_byte_offset, void *client_data) > { > struct flac_data *data = (struct flac_data *)client_data; > > *absolute_byte_offset = io_tell (data->stream); >+#ifdef LEGACY_FLAC > return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK; >+#else >+ return FLAC__STREAM_DECODER_TELL_STATUS_OK; >+#endif > } > >+#ifdef LEGACY_FLAC > static FLAC__SeekableStreamDecoderLengthStatus length_callback ( > const FLAC__SeekableStreamDecoder *decoder ATTR_UNUSED, >+#else >+static FLAC__StreamDecoderLengthStatus length_callback ( >+ const FLAC__StreamDecoder *decoder ATTR_UNUSED, >+#endif > FLAC__uint64 *stream_length, void *client_data) > { > struct flac_data *data = (struct flac_data *)client_data; > > *stream_length = io_file_size (data->stream); >+#ifdef LEGACY_FLAC > return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK; >+#else >+ return FLAC__STREAM_DECODER_LENGTH_STATUS_OK; >+#endif > } > > static FLAC__bool eof_callback ( >+#ifdef LEGACY_FLAC > const FLAC__SeekableStreamDecoder *decoder ATTR_UNUSED, >+#else >+ const FLAC__StreamDecoder *decoder ATTR_UNUSED, >+#endif > void *client_data) > { > struct flac_data *data = (struct flac_data *)client_data; >@@ -248,6 +319,7 @@ > > data->ok = 1; > >+#ifdef LEGACY_FLAC > if (!(data->decoder = FLAC__seekable_stream_decoder_new())) { > decoder_error (&data->error, ERROR_FATAL, 0, > "FLAC__seekable_stream_decoder_new() failed"); >@@ -279,7 +351,7 @@ > eof_callback); > > if (FLAC__seekable_stream_decoder_init(data->decoder) >- != FLAC__FILE_DECODER_OK) { >+ != FLAC__SEEKABLE_STREAM_DECODER_OK) { > decoder_error (&data->error, ERROR_FATAL, 0, > "FLAC__seekable_stream_decoder_init() failed"); > data->ok = 0; >@@ -291,6 +363,33 @@ > decoder_error (&data->error, ERROR_FATAL, 0, > "FLAC__seekable_stream_decoder_process_until_end_of_metadata()" > " failed."); >+#else >+ if (!(data->decoder = FLAC__stream_decoder_new())) { >+ decoder_error (&data->error, ERROR_FATAL, 0, >+ "FLAC__stream_decoder_new() failed"); >+ data->ok = 0; >+ return data; >+ } >+ >+ FLAC__stream_decoder_set_md5_checking (data->decoder, false); >+ >+ FLAC__stream_decoder_set_metadata_ignore_all (data->decoder); >+ FLAC__stream_decoder_set_metadata_respond (data->decoder, >+ FLAC__METADATA_TYPE_STREAMINFO); >+ >+ if (FLAC__stream_decoder_init_stream(data->decoder, read_callback, seek_callback, tell_callback, length_callback, eof_callback, write_callback, metadata_callback, error_callback, data) >+ != FLAC__STREAM_DECODER_INIT_STATUS_OK) { >+ decoder_error (&data->error, ERROR_FATAL, 0, >+ "FLAC__stream_decoder_init() failed"); >+ data->ok = 0; >+ return data; >+ } >+ >+ if (!FLAC__stream_decoder_process_until_end_of_metadata(data->decoder)) { >+ decoder_error (&data->error, ERROR_FATAL, 0, >+ "FLAC__stream_decoder_process_until_end_of_metadata()" >+ " failed."); >+#endif > data->ok = 0; > return data; > } >@@ -309,8 +408,13 @@ > > if (data->ok) { > if (data->decoder) { >+#ifdef LEGACY_FLAC > FLAC__seekable_stream_decoder_finish (data->decoder); > FLAC__seekable_stream_decoder_delete (data->decoder); >+#else >+ FLAC__stream_decoder_finish (data->decoder); >+ FLAC__stream_decoder_delete (data->decoder); >+#endif > } > io_close (data->stream); > } >@@ -430,11 +534,19 @@ > target_sample = (FLAC__uint64)((sec/(double)data->length) * > (double)data->total_samples); > >+#ifdef LEGACY_FLAC > if (FLAC__seekable_stream_decoder_seek_absolute(data->decoder, > target_sample)) >+#else >+ if (FLAC__stream_decoder_seek_absolute(data->decoder, target_sample)) >+#endif > return sec; > else { >+#ifdef LEGACY_FLAC > logit ("FLAC__seekable_stream_decoder_seek_absolute() failed."); >+#else >+ logit ("FLAC__stream_decoder_seek_absolute() failed."); >+#endif > return -1; > } > } >@@ -469,22 +581,34 @@ > if (!data->sample_buffer_fill) { > debug ("decoding..."); > >+#ifdef LEGACY_FLAC > if (FLAC__seekable_stream_decoder_get_state(data->decoder) > == FLAC__FILE_DECODER_END_OF_FILE) { >+#else >+ if (FLAC__stream_decoder_get_state(data->decoder) == FLAC__STREAM_DECODER_END_OF_STREAM) { >+#endif > logit ("EOF"); > return 0; > } > >+#ifdef LEGACY_FLAC > if (!FLAC__seekable_stream_decoder_process_single( > data->decoder)) { >+#else >+ if (!FLAC__stream_decoder_process_single(data->decoder)) { >+#endif > decoder_error (&data->error, ERROR_FATAL, 0, > "Read error processing frame."); > return 0; > } > > /* Count the bitrate */ >+#ifdef LEGACY_FLAC > if(!FLAC__seekable_stream_decoder_get_decode_position( > data->decoder, &decode_position)) >+#else >+ if(!FLAC__stream_decoder_get_decode_position(data->decoder, &decode_position)) >+#endif > decode_position = 0; > if (decode_position > data->last_decode_position) { > int bytes_per_sec = bytes_per_sample * data->sample_rate
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 10934
: 1831