ALT Linux Bugzilla
– Attachment 1813 Details for
Bug 10869
unsupported flac >= 1.1.3
New bug
|
Search
|
[?]
|
Help
Register
|
Log In
[x]
|
Forgot Password
Login:
[x]
|
EN
|
RU
[patch]
flac123-0.0.9+flac-1.1.3.patch
flac123-0.0.9+flac-1.1.3.patch (text/plain), 8.14 KB, created by
led
on 2007-02-19 18:19:39 MSK
(
hide
)
Description:
flac123-0.0.9+flac-1.1.3.patch
Filename:
MIME Type:
Creator:
led
Created:
2007-02-19 18:19:39 MSK
Size:
8.14 KB
patch
obsolete
>diff -ru flac123-0.0.9/configure.ac flac123-0.0.9-b2/configure.ac >--- flac123-0.0.9/configure.ac 2005-05-07 16:05:24.000000000 -0700 >+++ flac123-0.0.9-b2/configure.ac 2006-10-31 00:03:09.000000000 -0800 >@@ -40,9 +40,9 @@ > AC_PROG_CC > > # Checks for libraries. >-AC_CHECK_LIB(FLAC, FLAC__file_decoder_new, [haveflac=yes], [haveflac=no], -lm) >+AC_CHECK_LIB(FLAC, FLAC__stream_decoder_new, [haveflac=yes], [haveflac=no], -lm) > if test "$haveflac" = "yes"; then >- FLAC_LIBS="-lFLAC -lm" >+ FLAC_LIBS="-lFLAC -logg -lm" > AC_SUBST(FLAC_LIBS) > else > AC_MSG_ERROR(FLAC required!) >diff -ru flac123-0.0.9/flac123.c flac123-0.0.9-b2/flac123.c >--- flac123-0.0.9/flac123.c 2005-05-08 21:25:20.000000000 -0700 >+++ flac123-0.0.9-b2/flac123.c 2006-10-31 00:06:06.000000000 -0800 >@@ -49,12 +49,17 @@ > > static void play_file(const char *); > static void play_remote_file(void); >-void flac_error_hdl(const FLAC__FileDecoder *, FLAC__StreamDecoderErrorStatus, >- void *); >-void flac_metadata_hdl(const FLAC__FileDecoder *, const FLAC__StreamMetadata *, >- void *); >+#ifdef LEGACY_FLAC >+void flac_error_hdl(const FLAC__FileDecoder *, FLAC__StreamDecoderErrorStatus, void *); >+void flac_metadata_hdl(const FLAC__FileDecoder *, const FLAC__StreamMetadata *, void *); > FLAC__StreamDecoderWriteStatus flac_write_hdl(const FLAC__FileDecoder *, > const FLAC__Frame *, const FLAC__int32 * const buf[], void *); >+#else >+void flac_error_hdl(const FLAC__StreamDecoder *, FLAC__StreamDecoderErrorStatus, void *); >+void flac_metadata_hdl(const FLAC__StreamDecoder *, const FLAC__StreamMetadata *, void *); >+FLAC__StreamDecoderWriteStatus flac_write_hdl(const FLAC__StreamDecoder *, >+ const FLAC__Frame *, const FLAC__int32 * const buf[], void *); >+#endif > > static void signal_handler(int); > static int quit_now = 0; >@@ -190,6 +195,7 @@ > file_info.year[VORBIS_YEAR_LEN] = '\0'; > > /* create and initialize flac decoder object */ >+#ifdef LEGACY_FLAC > file_info.decoder = FLAC__file_decoder_new(); > FLAC__file_decoder_set_md5_checking(file_info.decoder, true); > FLAC__file_decoder_set_filename(file_info.decoder, filename); >@@ -210,13 +216,29 @@ > FLAC__file_decoder_delete(file_info.decoder); > return false; > } >+#else >+ file_info.decoder = FLAC__stream_decoder_new(); >+ FLAC__stream_decoder_set_md5_checking(file_info.decoder, true); >+ >+ /* read metadata */ >+ if ((FLAC__stream_decoder_init_file(file_info.decoder, filename, flac_write_hdl, flac_metadata_hdl, flac_error_hdl, (void *)&file_info) != FLAC__STREAM_DECODER_INIT_STATUS_OK) >+ || (!FLAC__stream_decoder_process_until_end_of_metadata(file_info.decoder))) >+ { >+ FLAC__stream_decoder_delete(file_info.decoder); >+ return false; >+ } >+#endif > > /* open libao output device */ > if (cli_args.wavfile) { > if (!(file_info.ao_dev = ao_open_file(ao_driver_id("wav"), cli_args.wavfile, /*overwrite*/ 1, &(file_info.ao_fmt), NULL))) > { > fprintf(stderr, "Error opening wav file %s\n", cli_args.wavfile); >+#ifdef LEGACY_FLAC > FLAC__file_decoder_delete(file_info.decoder); >+#else >+ FLAC__stream_decoder_delete(file_info.decoder); >+#endif > return false; > } > } >@@ -224,7 +246,11 @@ > if (!(file_info.ao_dev = ao_open_live(ao_output_id, &(file_info.ao_fmt), NULL))) > { > fprintf(stderr, "Error opening ao device %d\n", ao_output_id); >+#ifdef LEGACY_FLAC > FLAC__file_decoder_delete(file_info.decoder); >+#else >+ FLAC__stream_decoder_delete(file_info.decoder); >+#endif > return false; > } > } >@@ -237,7 +263,11 @@ > if (!(file_info.ao_dev = ao_open_live(ao_output_id, &(file_info.ao_fmt), NULL))) > { > fprintf(stderr, "Error opening ao device %d\n", ao_output_id); >+#ifdef LEGACY_FLAC > FLAC__file_decoder_delete(file_info.decoder); >+#else >+ FLAC__stream_decoder_delete(file_info.decoder); >+#endif > return false; > } > } >@@ -257,8 +287,13 @@ > > void decoder_destructor(void) > { >+#ifdef LEGACY_FLAC > FLAC__file_decoder_finish(file_info.decoder); > FLAC__file_decoder_delete(file_info.decoder); >+#else >+ FLAC__stream_decoder_finish(file_info.decoder); >+ FLAC__stream_decoder_delete(file_info.decoder); >+#endif > file_info.is_loaded = false; > file_info.is_playing = false; > file_info.filename[0] = '\0'; >@@ -272,9 +307,15 @@ > return; > } > >+#ifdef LEGACY_FLAC > while (FLAC__file_decoder_process_single(file_info.decoder) == true && > FLAC__file_decoder_get_state(file_info.decoder) == > FLAC__FILE_DECODER_OK && !interrupted) >+#else >+ while (FLAC__stream_decoder_process_single(file_info.decoder) == true && >+ FLAC__stream_decoder_get_state(file_info.decoder) < >+ FLAC__STREAM_DECODER_END_OF_STREAM && !interrupted) >+#endif > { > } > interrupted = 0; /* more accurate feedback if placed after loop */ >@@ -292,13 +333,22 @@ > { > if (file_info.is_playing == true) > { >+#ifdef LEGACY_FLAC > if (FLAC__file_decoder_get_state(file_info.decoder) == > FLAC__FILE_DECODER_END_OF_FILE) >+#else >+ if (FLAC__stream_decoder_get_state(file_info.decoder) == >+ FLAC__STREAM_DECODER_END_OF_STREAM) >+#endif > { > decoder_destructor(); > printf("@P 0\n"); > } >+#ifdef LEGACY_FLAC > else if (!FLAC__file_decoder_process_single(file_info.decoder)) >+#else >+ else if (!FLAC__stream_decoder_process_single(file_info.decoder)) >+#endif > { > fprintf(stderr, "error decoding single frame!\n"); > } >@@ -314,14 +364,24 @@ > } > } > >+#ifdef LEGACY_FLAC > void flac_error_hdl(const FLAC__FileDecoder *dec, > FLAC__StreamDecoderErrorStatus status, void *data) >+#else >+void flac_error_hdl(const FLAC__StreamDecoder *dec, >+ FLAC__StreamDecoderErrorStatus status, void *data) >+#endif > { > fprintf(stderr, "error handler called!\n"); > } > >+#ifdef LEGACY_FLAC > void flac_metadata_hdl(const FLAC__FileDecoder *dec, > const FLAC__StreamMetadata *meta, void *data) >+#else >+void flac_metadata_hdl(const FLAC__StreamDecoder *dec, >+ const FLAC__StreamMetadata *meta, void *data) >+#endif > { > file_info_struct *p = (file_info_struct *) data; > >@@ -344,10 +404,17 @@ > } > } > >+#ifdef LEGACY_FLAC > FLAC__StreamDecoderWriteStatus flac_write_hdl(const FLAC__FileDecoder *dec, > const FLAC__Frame *frame, > const FLAC__int32 * const buf[], > void *data) >+#else >+FLAC__StreamDecoderWriteStatus flac_write_hdl(const FLAC__StreamDecoder *dec, >+ const FLAC__Frame *frame, >+ const FLAC__int32 * const buf[], >+ void *data) >+#endif > { > int sample, channel, i; > uint_32 samples = frame->header.blocksize; >diff -ru flac123-0.0.9/flac123.h flac123-0.0.9-b2/flac123.h >--- flac123-0.0.9/flac123.h 2005-02-24 21:52:02.000000000 -0800 >+++ flac123-0.0.9-b2/flac123.h 2006-10-30 17:23:56.000000000 -0800 >@@ -22,13 +22,24 @@ > #include <limits.h> > #include <FLAC/all.h> > >+/* by LEGACY_FLAC we mean pre-1.1.3 before FLAC__FileDecoder was merged into FLAC__StreamDecoder */ >+#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8 >+#define LEGACY_FLAC >+#else >+#undef LEGACY_FLAC >+#endif >+ > /* string widths for printing ID3 (vorbis) data in remote mode */ > #define VORBIS_TAG_LEN 30 > #define VORBIS_YEAR_LEN 4 > > /* the main data structure of the program */ > typedef struct { >+#ifdef LEGACY_FLAC > FLAC__FileDecoder *decoder; >+#else >+ FLAC__StreamDecoder *decoder; >+#endif > > /* bits, rate, channels, byte_format */ > ao_sample_format sam_fmt; /* input sample's true format */ >diff -ru flac123-0.0.9/remote.c flac123-0.0.9-b2/remote.c >--- flac123-0.0.9/remote.c 2005-02-24 21:50:41.000000000 -0800 >+++ flac123-0.0.9-b2/remote.c 2006-10-30 17:24:28.000000000 -0800 >@@ -150,8 +150,13 @@ > file_info.current_sample += delta_frames; > } > >+#ifdef LEGACY_FLAC > FLAC__file_decoder_seek_absolute(file_info.decoder, > file_info.current_sample); >+#else >+ FLAC__stream_decoder_seek_absolute(file_info.decoder, >+ file_info.current_sample); >+#endif > } > /* absolute seek */ > else >@@ -161,7 +166,11 @@ > file_info.elapsed_time = absolute_time; > file_info.current_sample = absolute_frame; > >+#ifdef LEGACY_FLAC > FLAC__file_decoder_seek_absolute(file_info.decoder, absolute_frame); >+#else >+ FLAC__stream_decoder_seek_absolute(file_info.decoder, absolute_frame); >+#endif > } > > }
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 10869
: 1813