ALT Linux Bugzilla
– Attachment 1832 Details for
Bug 10935
unsupported flac >= 1.1.3
New bug
|
Search
|
[?]
|
Help
Register
|
Log In
[x]
|
Forgot Password
Login:
[x]
|
EN
|
RU
[patch]
mpfc-flac-0.1+flac-1.1.3.patch
mpfc-flac-0.1+flac-1.1.3.patch (text/plain), 7.15 KB, created by
led
on 2007-02-26 14:30:28 MSK
(
hide
)
Description:
mpfc-flac-0.1+flac-1.1.3.patch
Filename:
MIME Type:
Creator:
led
Created:
2007-02-26 14:30:28 MSK
Size:
7.15 KB
patch
obsolete
>diff -urN mpfc-flac-0.1.orig/configure.ac mpfc-flac-0.1/configure.ac >--- mpfc-flac-0.1.orig/configure.ac 2006-01-01 19:54:58 +0200 >+++ mpfc-flac-0.1/configure.ac 2007-02-19 20:30:29 +0200 >@@ -13,7 +13,7 @@ > AC_SUBST(prefix) > > AC_CHECK_HEADERS([FLAC/all.h],,[AC_MSG_ERROR(*** Can't find FLAC/all.h ***)]) >-AC_CHECK_LIB(FLAC, FLAC__file_decoder_process_single,,[AC_MSG_ERROR(*** Can't find FLAC library ***)]) >+AC_CHECK_LIB(FLAC, FLAC__stream_decoder_process_single,,[AC_MSG_ERROR(*** Can't find FLAC library ***)]) > FLAC_LIBS="-lFLAC" > AC_SUBST(FLAC_LIBS) > >diff -urN mpfc-flac-0.1.orig/src/flac.c mpfc-flac-0.1/src/flac.c >--- mpfc-flac-0.1.orig/src/flac.c 2006-01-06 00:45:33 +0200 >+++ mpfc-flac-0.1/src/flac.c 2007-02-19 20:31:22 +0200 >@@ -23,6 +23,14 @@ > //#include "config.h" > #define __MPFC_OUTER__ > #include <FLAC/all.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 >+ > #include <sys/soundcard.h> > #include "types.h" > #include "inp.h" >@@ -48,7 +56,11 @@ > static int flac_max_bs, flac_bpp; > > /* Decoder object */ >+#ifdef LEGACY_FLAC > static FLAC__FileDecoder *flac_decoder = NULL; >+#else >+static FLAC__StreamDecoder *flac_decoder = NULL; >+#endif > > /* Buffer for writing decoded stream */ > static byte *flac_buf = NULL, *flac_buf_ptr = NULL; >@@ -71,7 +83,11 @@ > flac_client_data_t flac_client_data; > > /* Write decoded data callback */ >+#ifdef LEGACY_FLAC > FLAC__StreamDecoderWriteStatus flac_write_callback( const FLAC__FileDecoder *decoder, >+#else >+FLAC__StreamDecoderWriteStatus flac_write_callback( const FLAC__StreamDecoder *decoder, >+#endif > const FLAC__Frame *frame, const FLAC__int32 * const buf[], void *client_data ) > { > int i, j; >@@ -116,7 +132,11 @@ > } /* End of 'flac_write_callback' function */ > > /* Process metadata callback */ >+#ifdef LEGACY_FLAC > void flac_metadata_callback( const FLAC__FileDecoder *decoder, >+#else >+void flac_metadata_callback( const FLAC__StreamDecoder *decoder, >+#endif > const FLAC__StreamMetadata *metadata, void *client_data ) > { > flac_client_data_t *cd = (flac_client_data_t *)client_data; >@@ -144,31 +164,49 @@ > } /* End of 'flac_metadata_callback' function */ > > /* Error callback */ >+#ifdef LEGACY_FLAC > void flac_error_callback( const FLAC__FileDecoder *decoder, >+#else >+void flac_error_callback( const FLAC__StreamDecoder *decoder, >+#endif > FLAC__StreamDecoderErrorStatus status, void *client_data ) > { > logger_error(flac_log, 0, "flac: got stream decoder error %d", status); > } /* End of 'flac_error_callback' function */ > > /* Read file metadata */ >+#ifdef LEGACY_FLAC > FLAC__FileDecoder *flac_read_metadata( char *filename, void *client_data ) > { > FLAC__FileDecoderState fds; > int buf_size; > FLAC__FileDecoder *decoder; >+#else >+FLAC__StreamDecoder *flac_read_metadata( char *filename, void *client_data ) >+{ >+ FLAC__StreamDecoderState fds; >+ int buf_size; >+ FLAC__StreamDecoder *decoder; >+#endif > > logger_debug(flac_log, "flac: flac_read_metadata(%s)", filename); > > /* Initialize decoder */ >+#ifdef LEGACY_FLAC > decoder = FLAC__file_decoder_new(); > logger_debug(flac_log, "flac: FLAC__file_decoder_new returned %p", > decoder); >+#else >+ decoder = FLAC__stream_decoder_new(); >+ logger_debug(flac_log, "flac: FLAC__stream_decoder_new returned %p", decoder); >+#endif > if (decoder == NULL) > { > logger_error(flac_log, 0, "flac: FLAC__file_decoder_new failed"); > FLAC__file_decoder_delete(decoder); > return NULL; > } >+#ifdef LEGACY_FLAC > if (!FLAC__file_decoder_set_client_data(decoder, client_data)) > { > logger_error(flac_log, 0, "flac: FLAC__file_decoder_set_client_data failed"); >@@ -206,16 +244,32 @@ > { > logger_error(flac_log, 0, "flac: FLAC__file_decoder_init failed"); > FLAC__file_decoder_delete(decoder); >+#else >+ fds = FLAC__stream_decoder_init_file(decoder, filename, flac_write_callback, flac_metadata_callback, flac_error_callback, client_data); >+ logger_debug(flac_log, "flac: FLAC__stream_decoder_init_file returned %d", fds); >+ if (fds != FLAC__STREAM_DECODER_INIT_STATUS_OK) >+ { >+ logger_error(flac_log, 0, "flac: FLAC__stream_decoder_init_file failed"); >+ FLAC__stream_decoder_delete(decoder); >+#endif > return NULL; > } > > /* Read metadata */ >+#ifdef LEGACY_FLAC > if (!FLAC__file_decoder_process_until_end_of_metadata(decoder)) > { > logger_error(flac_log, 0, > "flac: FLAC__file_decoder_process_until_end_of_metadata failed"); > FLAC__file_decoder_finish(decoder); > FLAC__file_decoder_delete(decoder); >+#else >+ if (!FLAC__stream_decoder_process_until_end_of_metadata(decoder)) >+ { >+ logger_error(flac_log, 0, "flac: FLAC__stream_decoder_process_until_end_of_metadata failed"); >+ FLAC__stream_decoder_finish(decoder); >+ FLAC__stream_decoder_delete(decoder); >+#endif > return NULL; > } > logger_debug(flac_log, "flac: Samplerate: %d, channels: %d, " >@@ -227,7 +281,11 @@ > /* Start play function */ > bool_t flac_start( char *filename ) > { >+#ifdef LEGACY_FLAC > FLAC__FileDecoderState fds; >+#else >+ FLAC__StreamDecoderState fds; >+#endif > int buf_size; > > logger_debug(flac_log, "flac: flac_start(%s)", filename); >@@ -256,8 +314,13 @@ > if (flac_buf == NULL) > { > logger_error(flac_log, 0, "flac: no enough memory"); >+#ifdef LEGACY_FLAC > FLAC__file_decoder_finish(flac_decoder); > FLAC__file_decoder_delete(flac_decoder); >+#else >+ FLAC__stream_decoder_finish(flac_decoder); >+ FLAC__stream_decoder_delete(flac_decoder); >+#endif > flac_decoder = NULL; > return FALSE; > } >@@ -281,8 +344,13 @@ > > if (flac_decoder != NULL) > { >+#ifdef LEGACY_FLAC > FLAC__file_decoder_finish(flac_decoder); > FLAC__file_decoder_delete(flac_decoder); >+#else >+ FLAC__stream_decoder_finish(flac_decoder); >+ FLAC__stream_decoder_delete(flac_decoder); >+#endif > flac_decoder = NULL; > } > } /* End of 'flac_end' function */ >@@ -302,17 +370,30 @@ > flac_buf_ptr = flac_buf; > flac_buf_size = 0; > >+#ifdef LEGACY_FLAC > res = FLAC__file_decoder_seek_absolute(flac_decoder, >+#else >+ res = FLAC__stream_decoder_seek_absolute(flac_decoder, >+#endif > flac_seek_pos * flac_freq); >+#ifdef LEGACY_FLAC > logger_debug(flac_log, "flac: FLAC__file_decoder_seek_absolute returned %d", res); >+#else >+ logger_debug(flac_log, "flac: FLAC__stream_decoder_seek_absolute returned %d", res); >+#endif > flac_seek_pos = -1; > } > > /* Read data */ > if (flac_buf_size == 0) > { >+#ifdef LEGACY_FLAC > res = FLAC__file_decoder_process_single(flac_decoder); > logger_debug(flac_log, "flac: FLAC__file_decoder_process_single returned %d", res); >+#else >+ res = FLAC__stream_decoder_process_single(flac_decoder); >+ logger_debug(flac_log, "flac: FLAC__stream_decoder_process_single returned %d", res); >+#endif > } > > /* Flush buffer */ >@@ -352,7 +433,11 @@ > /* Get song info */ > song_info_t *flac_get_info( char *file_name, int *len ) > { >+#ifdef LEGACY_FLAC > FLAC__FileDecoder *decoder; >+#else >+ FLAC__StreamDecoder *decoder; >+#endif > flac_client_data_t cd; > > (*len) = 0; >@@ -367,8 +452,13 @@ > (*len) = cd.m_length; > > /* Free memory */ >+#ifdef LEGACY_FLAC > FLAC__file_decoder_finish(decoder); > FLAC__file_decoder_delete(decoder); >+#else >+ FLAC__stream_decoder_finish(decoder); >+ FLAC__stream_decoder_delete(decoder); >+#endif > return NULL; > } /* End of 'flac_get_info' function */ >
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 10935
: 1832