Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 103819 Details for
Bug 157849
media-libs/sdl-sound -- flac 1.1.3 compatibility patch
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch from Josh Coalson
SDL_sound-1.0.1+flac-1.1.3.patch (text/plain), 4.73 KB, created by
Alexis Ballier
on 2006-12-11 11:48:19 UTC
(
hide
)
Description:
Patch from Josh Coalson
Filename:
MIME Type:
Creator:
Alexis Ballier
Created:
2006-12-11 11:48:19 UTC
Size:
4.73 KB
patch
obsolete
>diff -u -r SDL_sound-1.0.1/configure.in SDL_sound-1.0.1-flac/configure.in >--- SDL_sound-1.0.1/configure.in 2003-10-12 20:49:54.000000000 +0200 >+++ SDL_sound-1.0.1-flac/configure.in 2006-12-11 20:43:46.546583251 +0100 >@@ -155,9 +155,12 @@ > dnl FLAC developers tend to break their API with every release, so we're > dnl checking for the latest-and-greatest here so we don't have to support > dnl obsolete versions. >+dnl Starting with FLAC 1.1.3: >+dnl libFLAC supports Ogg FLAC (no more libOggFLAC) so we also need -logg >+dnl the libFLAC .so version is also #defined in FLAC/export.h > > dnl Hooray for shitty autoconf bugs! >-x="C__seekable_stream_decoder_process_single" >+x="C__stream_decoder_process_single" > flcsym="FLA$x" > dnl Check for libFLAC > AC_ARG_ENABLE(flac, >@@ -167,7 +170,7 @@ > AC_CHECK_HEADER(FLAC/stream_decoder.h, have_flac_hdr=yes) > AC_CHECK_LIB(FLAC, $flcsym, have_flac_lib=yes) > if test x$have_flac_hdr = xyes -a x$have_flac_lib = xyes; then >- LIBS="$LIBS -lFLAC" >+ LIBS="$LIBS -lFLAC -logg" > AC_DEFINE(SOUND_SUPPORTS_FLAC) > fi > fi >diff -u -r SDL_sound-1.0.1/decoders/flac.c SDL_sound-1.0.1-flac/decoders/flac.c >--- SDL_sound-1.0.1/decoders/flac.c 2003-03-10 23:44:14.000000000 +0100 >+++ SDL_sound-1.0.1-flac/decoders/flac.c 2006-12-11 20:43:57.880097062 +0100 >@@ -44,6 +44,16 @@ > #define __SDL_SOUND_INTERNAL__ > #include "SDL_sound_internal.h" > >+#include <FLAC/export.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 >+ >+#ifdef LEGACY_FLAC > #include <FLAC/seekable_stream_decoder.h> > > #define D_END_OF_STREAM FLAC__SEEKABLE_STREAM_DECODER_END_OF_STREAM >@@ -80,6 +90,34 @@ > typedef FLAC__SeekableStreamDecoderSeekStatus d_seek_status_t; > typedef FLAC__SeekableStreamDecoderTellStatus d_tell_status_t; > typedef FLAC__SeekableStreamDecoderLengthStatus d_length_status_t; >+#else >+#include <FLAC/stream_decoder.h> >+ >+#define D_END_OF_STREAM FLAC__STREAM_DECODER_END_OF_STREAM >+ >+#define d_new() FLAC__stream_decoder_new() >+#define d_process_metadata(x) FLAC__stream_decoder_process_until_end_of_metadata(x) >+#define d_process_one_frame(x) FLAC__stream_decoder_process_single(x) >+#define d_get_state(x) FLAC__stream_decoder_get_state(x) >+#define d_finish(x) FLAC__stream_decoder_finish(x) >+#define d_delete(x) FLAC__stream_decoder_delete(x) >+ >+typedef FLAC__StreamDecoder decoder_t; >+typedef FLAC__StreamDecoderReadStatus d_read_status_t; >+ >+#define D_SEEK_STATUS_OK FLAC__STREAM_DECODER_SEEK_STATUS_OK >+#define D_SEEK_STATUS_ERROR FLAC__STREAM_DECODER_SEEK_STATUS_ERROR >+#define D_TELL_STATUS_OK FLAC__STREAM_DECODER_TELL_STATUS_OK >+#define D_TELL_STATUS_ERROR FLAC__STREAM_DECODER_TELL_STATUS_ERROR >+#define D_LENGTH_STATUS_OK FLAC__STREAM_DECODER_LENGTH_STATUS_OK >+#define D_LENGTH_STATUS_ERROR FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR >+ >+#define d_seek_absolute(x, y) FLAC__stream_decoder_seek_absolute(x, y) >+ >+typedef FLAC__StreamDecoderSeekStatus d_seek_status_t; >+typedef FLAC__StreamDecoderTellStatus d_tell_status_t; >+typedef FLAC__StreamDecoderLengthStatus d_length_status_t; >+#endif > > #define D_WRITE_CONTINUE FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE > #define D_READ_END_OF_STREAM FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM >@@ -141,9 +179,15 @@ > } /* free_flac */ > > >+#ifdef LEGACY_FLAC > static d_read_status_t read_callback( > const decoder_t *decoder, FLAC__byte buffer[], > unsigned int *bytes, void *client_data) >+#else >+static d_read_status_t read_callback( >+ const decoder_t *decoder, FLAC__byte buffer[], >+ size_t *bytes, void *client_data) >+#endif > { > flac_t *f = (flac_t *) client_data; > Uint32 retval; >@@ -400,6 +444,7 @@ > BAIL_MACRO(ERR_OUT_OF_MEMORY, 0); > } /* if */ > >+#ifdef LEGACY_FLAC > d_set_read_callback(decoder, read_callback); > d_set_write_callback(decoder, write_callback); > d_set_metadata_callback(decoder, metadata_callback); >@@ -410,6 +455,7 @@ > d_set_eof_callback(decoder, eof_callback); > > d_set_client_data(decoder, f); >+#endif > > f->rw = internal->rw; > f->sample = sample; >@@ -418,7 +464,12 @@ > f->is_flac = 0 /* !!! FIXME: should be "has_extension", not "0". */; > > internal->decoder_private = f; >+ /* really should check the init return value here: */ >+#ifdef LEGACY_FLAC > d_init(decoder); >+#else >+ FLAC__stream_decoder_init_stream(decoder, read_callback, seek_callback, tell_callback, length_callback, eof_callback, write_callback, metadata_callback, error_callback, f); >+#endif > > sample->flags = SOUND_SAMPLEFLAG_NONE; >
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 157849
: 103819