[arch-commits] CVS update of extra/daemons/mpd (2 files)
Damir Perisa
damir at archlinux.org
Sat Feb 16 16:31:32 UTC 2008
Date: Saturday, February 16, 2008 @ 11:31:32
Author: damir
Path: /home/cvs-extra/extra/daemons/mpd
Modified: PKGBUILD (1.15 -> 1.16)
Removed: mpd-0.12.1-flac-1.1.4-support.patch (1.1)
upgpkg: mpd 0.13.1-1
-------------------------------------+
PKGBUILD | 15
mpd-0.12.1-flac-1.1.4-support.patch | 724 ----------------------------------
2 files changed, 6 insertions(+), 733 deletions(-)
Index: extra/daemons/mpd/PKGBUILD
diff -u extra/daemons/mpd/PKGBUILD:1.15 extra/daemons/mpd/PKGBUILD:1.16
--- extra/daemons/mpd/PKGBUILD:1.15 Mon Jul 16 01:43:46 2007
+++ extra/daemons/mpd/PKGBUILD Sat Feb 16 11:31:32 2008
@@ -3,8 +3,8 @@
# Contributor: Ben <ben at benmazer.net>
pkgname=mpd
-pkgver=0.13.0
-pkgrel=2
+pkgver=0.13.1
+pkgrel=1
pkgdesc="Music daemon that plays MP3, FLAC, and Ogg Vorbis files"
arch=('i686' 'x86_64')
license="GPL"
@@ -14,16 +14,10 @@
install=mpd.install
source=(http://musicpd.org/uploads/files/mpd-${pkgver}.tar.gz
mpd mpd.conf.example)
-md5sums=('0b33bdb9d706439949344073e90f812a'
- 'b1fd15de359db08e4b9ae4b199640f0e'
- 'b3e370377d39d17427c50f04a0cdea6e')
-sha1sums=('96f939b3d926c5b95d7615c1a5e7860f4d5fcd94'
- '1018eeba932aa3df9456a120bc106b4bd345ccda'
- 'f04a668c89cd3511751cc7d0b05cc8a3dd36c437')
build() {
cd ${startdir}/src/${pkgname}-${pkgver}
- ./configure --prefix=/usr --sysconfdir=/etc --disable-jack -with-zeroconf=no
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-jack --enable-ao -with-zeroconf=no
make || return 1
make DESTDIR=${startdir}/pkg install
@@ -33,3 +27,6 @@
mkdir -p ${startdir}/pkg/var/log/mpd
mkdir -p ${startdir}/pkg/var/run/mpd
}
+md5sums=('3079a76b7ce048d89e2f644b578cd4fe'
+ 'b1fd15de359db08e4b9ae4b199640f0e'
+ 'b3e370377d39d17427c50f04a0cdea6e')
Index: extra/daemons/mpd/mpd-0.12.1-flac-1.1.4-support.patch
diff -u extra/daemons/mpd/mpd-0.12.1-flac-1.1.4-support.patch:1.1 extra/daemons/mpd/mpd-0.12.1-flac-1.1.4-support.patch:removed
--- extra/daemons/mpd/mpd-0.12.1-flac-1.1.4-support.patch:1.1 Sun Mar 11 18:42:21 2007
+++ extra/daemons/mpd/mpd-0.12.1-flac-1.1.4-support.patch Sat Feb 16 11:31:32 2008
@@ -1,724 +0,0 @@
---- mpd-0.12.1/src/inputPlugins/flac_plugin.c.orig 2006-10-11 01:56:56.000000000 +0200
-+++ mpd-0.12.1/src/inputPlugins/flac_plugin.c 2007-02-14 22:59:35.000000000 +0100
-@@ -16,12 +16,10 @@
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
--#include "../inputPlugin.h"
-+#include "_flac_common.h"
-
- #ifdef HAVE_FLAC
-
--#include "_flac_common.h"
--
- #include "../utils.h"
- #include "../log.h"
- #include "../pcm_utils.h"
-@@ -33,166 +31,14 @@
- #include <stdio.h>
- #include <string.h>
- #include <unistd.h>
--#include <FLAC/seekable_stream_decoder.h>
--#include <FLAC/metadata.h>
--
--/* this code is based on flac123, from flac-tools */
--
--static void flacError(const FLAC__SeekableStreamDecoder *,
-- FLAC__StreamDecoderErrorStatus, void *);
--static void flacPrintErroredState(FLAC__SeekableStreamDecoderState state);
--static void flacMetadata(const FLAC__SeekableStreamDecoder *,
-- const FLAC__StreamMetadata *, void *);
--static FLAC__StreamDecoderWriteStatus flacWrite(const
-- FLAC__SeekableStreamDecoder *,
-- const FLAC__Frame *,
-- const FLAC__int32 * const buf[],
-- void *);
--static FLAC__SeekableStreamDecoderReadStatus flacRead(const
-- FLAC__SeekableStreamDecoder
-- *, FLAC__byte buf[],
-- unsigned *, void *);
--static FLAC__SeekableStreamDecoderSeekStatus flacSeek(const
-- FLAC__SeekableStreamDecoder
-- *, FLAC__uint64, void *);
--static FLAC__SeekableStreamDecoderTellStatus flacTell(const
-- FLAC__SeekableStreamDecoder
-- *, FLAC__uint64 *,
-- void *);
--static FLAC__SeekableStreamDecoderLengthStatus flacLength(const
-- FLAC__SeekableStreamDecoder
-- *, FLAC__uint64 *,
-- void *);
--static FLAC__bool flacEOF(const FLAC__SeekableStreamDecoder *, void *);
--
--static int flac_decode(OutputBuffer * cb, DecoderControl * dc,
-- InputStream * inStream)
--{
-- FLAC__SeekableStreamDecoder *flacDec = NULL;
-- FlacData data;
-- int status = 1;
-- int ret = 0;
--
-- init_FlacData(&data, cb, dc, inStream);
--
-- if (!(flacDec = FLAC__seekable_stream_decoder_new())) {
-- ret = -1;
-- goto fail;
-- }
-- /*status&=FLAC__file_decoder_set_md5_checking(flacDec,1); */
-- status &= FLAC__seekable_stream_decoder_set_read_callback(flacDec,
-- flacRead);
-- status &= FLAC__seekable_stream_decoder_set_seek_callback(flacDec,
-- flacSeek);
-- status &= FLAC__seekable_stream_decoder_set_tell_callback(flacDec,
-- flacTell);
-- status &= FLAC__seekable_stream_decoder_set_length_callback(flacDec,
-- flacLength);
-- status &=
-- FLAC__seekable_stream_decoder_set_eof_callback(flacDec, flacEOF);
-- status &=
-- FLAC__seekable_stream_decoder_set_write_callback(flacDec,
-- flacWrite);
-- status &=
-- FLAC__seekable_stream_decoder_set_metadata_callback(flacDec,
-- flacMetadata);
-- status &=
-- FLAC__seekable_stream_decoder_set_metadata_respond(flacDec,
-- FLAC__METADATA_TYPE_VORBIS_COMMENT);
-- status &=
-- FLAC__seekable_stream_decoder_set_error_callback(flacDec,
-- flacError);
-- status &=
-- FLAC__seekable_stream_decoder_set_client_data(flacDec,
-- (void *)&data);
-- if (!status) {
-- ERROR("flac problem before init()\n");
-- flacPrintErroredState(FLAC__seekable_stream_decoder_get_state
-- (flacDec));
-- ret = -1;
-- goto fail;
-- }
--
-- if (FLAC__seekable_stream_decoder_init(flacDec) !=
-- FLAC__SEEKABLE_STREAM_DECODER_OK) {
-- ERROR("flac problem doing init()\n");
-- flacPrintErroredState(FLAC__seekable_stream_decoder_get_state
-- (flacDec));
-- ret = -1;
-- goto fail;
-- }
--
-- if (!FLAC__seekable_stream_decoder_process_until_end_of_metadata
-- (flacDec)) {
-- ERROR("flac problem reading metadata\n");
-- flacPrintErroredState(FLAC__seekable_stream_decoder_get_state
-- (flacDec));
-- ret = -1;
-- goto fail;
-- }
--
-- dc->state = DECODE_STATE_DECODE;
--
-- while (1) {
-- FLAC__seekable_stream_decoder_process_single(flacDec);
-- if (FLAC__seekable_stream_decoder_get_state(flacDec) !=
-- FLAC__SEEKABLE_STREAM_DECODER_OK) {
-- break;
-- }
-- if (dc->seek) {
-- FLAC__uint64 sampleToSeek = dc->seekWhere *
-- dc->audioFormat.sampleRate + 0.5;
-- if (FLAC__seekable_stream_decoder_seek_absolute(flacDec,
-- sampleToSeek))
-- {
-- clearOutputBuffer(cb);
-- data.time = ((float)sampleToSeek) /
-- dc->audioFormat.sampleRate;
-- data.position = 0;
-- } else
-- dc->seekError = 1;
-- dc->seek = 0;
-- }
-- }
-- /* I don't think we need this bit here! -shank */
-- /*FLAC__file_decoder_process_until_end_of_file(flacDec); */
-- if (!dc->stop) {
-- flacPrintErroredState(FLAC__seekable_stream_decoder_get_state
-- (flacDec));
-- FLAC__seekable_stream_decoder_finish(flacDec);
-- }
-- /* send last little bit */
-- if (data.chunk_length > 0 && !dc->stop) {
-- flacSendChunk(&data);
-- flushOutputBuffer(data.cb);
-- }
--
-- /*if(dc->seek) {
-- dc->seekError = 1;
-- dc->seek = 0;
-- } */
--
-- dc->state = DECODE_STATE_STOP;
-- dc->stop = 0;
--
--fail:
-- if (data.replayGainInfo)
-- freeReplayGainInfo(data.replayGainInfo);
--
-- if (flacDec)
-- FLAC__seekable_stream_decoder_delete(flacDec);
--
-- closeInputStream(inStream);
-+#include <assert.h>
-
-- return ret;
--}
-+/* this code was based on flac123, from flac-tools */
-
--static FLAC__SeekableStreamDecoderReadStatus flacRead(const
-- FLAC__SeekableStreamDecoder
-- * flacDec,
-- FLAC__byte buf[],
-- unsigned *bytes,
-- void *fdata)
-+static flac_read_status flacRead(const flac_decoder * flacDec,
-+ FLAC__byte buf[],
-+ flac_read_status_size_t *bytes,
-+ void *fdata)
- {
- FlacData *data = (FlacData *) fdata;
- size_t r;
-@@ -207,55 +53,51 @@ static FLAC__SeekableStreamDecoderReadSt
- }
- *bytes = r;
-
-- if (*bytes == 0 && !inputStreamAtEOF(data->inStream) && !data->dc->stop)
-- return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR;
--
-- return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK;
-+ if (r == 0 && !data->dc->stop) {
-+ if (inputStreamAtEOF(data->inStream))
-+ return flac_read_status_eof;
-+ else
-+ return flac_read_status_abort;
-+ }
-+ return flac_read_status_continue;
- }
-
--static FLAC__SeekableStreamDecoderSeekStatus flacSeek(const
-- FLAC__SeekableStreamDecoder
-- * flacDec,
-- FLAC__uint64 offset,
-- void *fdata)
-+static flac_seek_status flacSeek(const flac_decoder * flacDec,
-+ FLAC__uint64 offset,
-+ void *fdata)
- {
- FlacData *data = (FlacData *) fdata;
-
- if (seekInputStream(data->inStream, offset, SEEK_SET) < 0) {
-- return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
-+ return flac_seek_status_error;
- }
-
-- return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK;
-+ return flac_seek_status_ok;
- }
-
--static FLAC__SeekableStreamDecoderTellStatus flacTell(const
-- FLAC__SeekableStreamDecoder
-- * flacDec,
-- FLAC__uint64 * offset,
-- void *fdata)
-+static flac_tell_status flacTell(const flac_decoder * flacDec,
-+ FLAC__uint64 * offset,
-+ void *fdata)
- {
- FlacData *data = (FlacData *) fdata;
-
- *offset = (long)(data->inStream->offset);
-
-- return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK;
-+ return flac_tell_status_ok;
- }
-
--static FLAC__SeekableStreamDecoderLengthStatus flacLength(const
-- FLAC__SeekableStreamDecoder
-- * flacDec,
-- FLAC__uint64 * length,
-- void *fdata)
-+static flac_length_status flacLength(const flac_decoder * flacDec,
-+ FLAC__uint64 * length,
-+ void *fdata)
- {
- FlacData *data = (FlacData *) fdata;
-
- *length = (size_t) (data->inStream->size);
-
-- return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK;
-+ return flac_length_status_ok;
- }
-
--static FLAC__bool flacEOF(const FLAC__SeekableStreamDecoder * flacDec,
-- void *fdata)
-+static FLAC__bool flacEOF(const flac_decoder * flacDec, void *fdata)
- {
- FlacData *data = (FlacData *) fdata;
-
-@@ -264,52 +106,112 @@ static FLAC__bool flacEOF(const FLAC__Se
- return false;
- }
-
--static void flacError(const FLAC__SeekableStreamDecoder * dec,
-+static void flacError(const flac_decoder *dec,
- FLAC__StreamDecoderErrorStatus status, void *fdata)
- {
- flac_error_common_cb("flac", status, (FlacData *) fdata);
- }
-
-+#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT <= 7
- static void flacPrintErroredState(FLAC__SeekableStreamDecoderState state)
- {
-+ const char *str = ""; /* "" to silence compiler warning */
- switch (state) {
-+ case FLAC__SEEKABLE_STREAM_DECODER_OK:
-+ case FLAC__SEEKABLE_STREAM_DECODER_SEEKING:
-+ case FLAC__SEEKABLE_STREAM_DECODER_END_OF_STREAM:
-+ return;
- case FLAC__SEEKABLE_STREAM_DECODER_MEMORY_ALLOCATION_ERROR:
-- ERROR("flac allocation error\n");
-+ str = "allocation error";
- break;
- case FLAC__SEEKABLE_STREAM_DECODER_READ_ERROR:
-- ERROR("flac read error\n");
-+ str = "read error";
- break;
- case FLAC__SEEKABLE_STREAM_DECODER_SEEK_ERROR:
-- ERROR("flac seek error\n");
-+ str = "seek error";
- break;
- case FLAC__SEEKABLE_STREAM_DECODER_STREAM_DECODER_ERROR:
-- ERROR("flac seekable stream error\n");
-+ str = "seekable stream error";
- break;
- case FLAC__SEEKABLE_STREAM_DECODER_ALREADY_INITIALIZED:
-- ERROR("flac decoder already initialized\n");
-+ str = "decoder already initialized";
- break;
- case FLAC__SEEKABLE_STREAM_DECODER_INVALID_CALLBACK:
-- ERROR("invalid flac callback\n");
-+ str = "invalid callback";
- break;
- case FLAC__SEEKABLE_STREAM_DECODER_UNINITIALIZED:
-- ERROR("flac decoder uninitialized\n");
-+ str = "decoder uninitialized";
-+ }
-+ ERROR("flac %s\n", str);
-+}
-+
-+static int flac_init(FLAC__SeekableStreamDecoder *dec,
-+ FLAC__SeekableStreamDecoderReadCallback read_cb,
-+ FLAC__SeekableStreamDecoderSeekCallback seek_cb,
-+ FLAC__SeekableStreamDecoderTellCallback tell_cb,
-+ FLAC__SeekableStreamDecoderLengthCallback length_cb,
-+ FLAC__SeekableStreamDecoderEofCallback eof_cb,
-+ FLAC__SeekableStreamDecoderWriteCallback write_cb,
-+ FLAC__SeekableStreamDecoderMetadataCallback metadata_cb,
-+ FLAC__SeekableStreamDecoderErrorCallback error_cb,
-+ void *data)
-+{
-+ int s = 1;
-+ s &= FLAC__seekable_stream_decoder_set_read_callback(dec, read_cb);
-+ s &= FLAC__seekable_stream_decoder_set_seek_callback(dec, seek_cb);
-+ s &= FLAC__seekable_stream_decoder_set_tell_callback(dec, tell_cb);
-+ s &= FLAC__seekable_stream_decoder_set_length_callback(dec, length_cb);
-+ s &= FLAC__seekable_stream_decoder_set_eof_callback(dec, eof_cb);
-+ s &= FLAC__seekable_stream_decoder_set_write_callback(dec, write_cb);
-+ s &= FLAC__seekable_stream_decoder_set_metadata_callback(dec,
-+ metadata_cb);
-+ s &= FLAC__seekable_stream_decoder_set_metadata_respond(dec,
-+ FLAC__METADATA_TYPE_VORBIS_COMMENT);
-+ s &= FLAC__seekable_stream_decoder_set_error_callback(dec, error_cb);
-+ s &= FLAC__seekable_stream_decoder_set_client_data(dec, data);
-+ if (!s || (FLAC__seekable_stream_decoder_init(dec) !=
-+ FLAC__SEEKABLE_STREAM_DECODER_OK))
-+ return 0;
-+ return 1;
-+}
-+#else /* FLAC_API_VERSION_CURRENT >= 7 */
-+static void flacPrintErroredState(FLAC__StreamDecoderState state)
-+{
-+ const char *str = ""; /* "" to silence compiler warning */
-+ switch (state) {
-+ case FLAC__STREAM_DECODER_SEARCH_FOR_METADATA:
-+ case FLAC__STREAM_DECODER_READ_METADATA:
-+ case FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC:
-+ case FLAC__STREAM_DECODER_READ_FRAME:
-+ case FLAC__STREAM_DECODER_END_OF_STREAM:
-+ return;
-+ case FLAC__STREAM_DECODER_OGG_ERROR:
-+ str = "error in the Ogg layer";
- break;
-- case FLAC__SEEKABLE_STREAM_DECODER_OK:
-- case FLAC__SEEKABLE_STREAM_DECODER_SEEKING:
-- case FLAC__SEEKABLE_STREAM_DECODER_END_OF_STREAM:
-+ case FLAC__STREAM_DECODER_SEEK_ERROR:
-+ str = "seek error";
-+ break;
-+ case FLAC__STREAM_DECODER_ABORTED:
-+ str = "decoder aborted by read";
-+ break;
-+ case FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR:
-+ str = "allocation error";
- break;
-+ case FLAC__STREAM_DECODER_UNINITIALIZED:
-+ str = "decoder uninitialized";
- }
-+ ERROR("flac %s\n", str);
- }
-+#endif /* FLAC_API_VERSION_CURRENT >= 7 */
-
--static void flacMetadata(const FLAC__SeekableStreamDecoder * dec,
-+static void flacMetadata(const flac_decoder * dec,
- const FLAC__StreamMetadata * block, void *vdata)
- {
- flac_metadata_common_cb(block, (FlacData *) vdata);
- }
-
--static FLAC__StreamDecoderWriteStatus flacWrite(const
-- FLAC__SeekableStreamDecoder *
-- dec, const FLAC__Frame * frame,
-+static FLAC__StreamDecoderWriteStatus flacWrite(const flac_decoder *dec,
-+ const FLAC__Frame * frame,
- const FLAC__int32 * const buf[],
- void *vdata)
- {
-@@ -325,7 +227,7 @@ static FLAC__StreamDecoderWriteStatus fl
- timeChange = ((float)samples) / frame->header.sample_rate;
- data->time += timeChange;
-
-- FLAC__seekable_stream_decoder_get_decode_position(dec, &newPosition);
-+ flac_get_decode_position(dec, &newPosition);
- if (data->position) {
- data->bitRate =
- ((newPosition - data->position) * 8.0 / timeChange)
-@@ -438,12 +340,179 @@ static MpdTag *flacTagDup(char *file)
- return ret;
- }
-
-+static int flac_decode_internal(OutputBuffer * cb, DecoderControl * dc,
-+ InputStream * inStream, int is_ogg)
-+{
-+ flac_decoder *flacDec;
-+ FlacData data;
-+ const char *err = NULL;
-+
-+ if (!(flacDec = flac_new()))
-+ return -1;
-+ init_FlacData(&data, cb, dc, inStream);
-+ if (is_ogg) {
-+ if (!flac_ogg_init(flacDec, flacRead, flacSeek, flacTell,
-+ flacLength, flacEOF, flacWrite, flacMetadata,
-+ flacError, (void *)&data)) {
-+ err = "doing Ogg init()";
-+ goto fail;
-+ }
-+ } else {
-+ if (!flac_init(flacDec, flacRead, flacSeek, flacTell,
-+ flacLength, flacEOF, flacWrite, flacMetadata,
-+ flacError, (void *)&data)) {
-+ err = "doing init()";
-+ goto fail;
-+ }
-+ if (!flac_process_metadata(flacDec)) {
-+ err = "problem reading metadata";
-+ goto fail;
-+ }
-+ }
-+
-+ dc->state = DECODE_STATE_DECODE;
-+
-+ while (1) {
-+ if (!flac_process_single(flacDec))
-+ break;
-+ if (flac_get_state(flacDec) == flac_decoder_eof)
-+ break;
-+ if (dc->seek) {
-+ FLAC__uint64 sampleToSeek = dc->seekWhere *
-+ dc->audioFormat.sampleRate + 0.5;
-+ if (flac_seek_absolute(flacDec, sampleToSeek)) {
-+ clearOutputBuffer(cb);
-+ data.time = ((float)sampleToSeek) /
-+ dc->audioFormat.sampleRate;
-+ data.position = 0;
-+ } else
-+ dc->seekError = 1;
-+ dc->seek = 0;
-+ }
-+ }
-+ if (!dc->stop) {
-+ flacPrintErroredState(flac_get_state(flacDec));
-+ flac_finish(flacDec);
-+ }
-+ /* send last little bit */
-+ if (data.chunk_length > 0 && !dc->stop) {
-+ flacSendChunk(&data);
-+ flushOutputBuffer(data.cb);
-+ }
-+
-+ /*if(dc->seek) {
-+ dc->seekError = 1;
-+ dc->seek = 0;
-+ } */
-+
-+ dc->state = DECODE_STATE_STOP;
-+ dc->stop = 0;
-+
-+fail:
-+ if (data.replayGainInfo)
-+ freeReplayGainInfo(data.replayGainInfo);
-+
-+ if (flacDec)
-+ flac_delete(flacDec);
-+
-+ closeInputStream(inStream);
-+
-+ if (err) {
-+ ERROR("flac %s\n", err);
-+ return -1;
-+ }
-+ return 0;
-+}
-+
-+static int flac_decode(OutputBuffer * cb, DecoderControl * dc,
-+ InputStream * inStream)
-+{
-+ return flac_decode_internal(cb, dc, inStream, 0);
-+}
-+
-+#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT <= 7
-+# define flac_plugin_init NULL
-+#else /* FLAC_API_VERSION_CURRENT >= 7 */
-+/* some of this stuff is duplicated from oggflac_plugin.c */
-+extern InputPlugin oggflacPlugin;
-+
-+static MpdTag *oggflac_tag_dup(char *file)
-+{
-+ MpdTag *ret = NULL;
-+ FLAC__Metadata_Iterator *it;
-+ FLAC__StreamMetadata *block;
-+ FLAC__Metadata_Chain *chain = FLAC__metadata_chain_new();
-+
-+ if (!(FLAC__metadata_chain_read_ogg(chain, file)))
-+ goto out;
-+ it = FLAC__metadata_iterator_new();
-+ FLAC__metadata_iterator_init(it, chain);
-+ do {
-+ if (!(block = FLAC__metadata_iterator_get_block(it)))
-+ break;
-+ if (block->type == FLAC__METADATA_TYPE_VORBIS_COMMENT) {
-+ ret = copyVorbisCommentBlockToMpdTag(block, ret);
-+ } else if (block->type == FLAC__METADATA_TYPE_STREAMINFO) {
-+ if (!ret)
-+ ret = newMpdTag();
-+ ret->time = ((float)block->data.stream_info.
-+ total_samples) /
-+ block->data.stream_info.sample_rate + 0.5;
-+ }
-+ } while (FLAC__metadata_iterator_next(it));
-+ FLAC__metadata_iterator_delete(it);
-+out:
-+ FLAC__metadata_chain_delete(chain);
-+ return ret;
-+}
-+
-+static int oggflac_decode(OutputBuffer * cb, DecoderControl * dc,
-+ InputStream * inStream)
-+{
-+ return flac_decode_internal(cb, dc, inStream, 1);
-+}
-+
-+static unsigned int oggflac_try_decode(InputStream * inStream)
-+{
-+ return (ogg_stream_type_detect(inStream) == FLAC) ? 1 : 0;
-+}
-+
-+static char *oggflac_suffixes[] = { "ogg", NULL };
-+static char *oggflac_mime_types[] = { "audio/x-flac+ogg",
-+ "application/ogg",
-+ "application/x-ogg",
-+ NULL };
-+
-+static int flac_plugin_init(void)
-+{
-+ if (!FLAC_API_SUPPORTS_OGG_FLAC) {
-+ DEBUG("libFLAC does not support OggFLAC\n");
-+ return 1;
-+ }
-+ DEBUG("libFLAC supports OggFLAC, initializing OggFLAC support\n");
-+ assert(oggflacPlugin.name == NULL);
-+ oggflacPlugin.name = "oggflac";
-+ oggflacPlugin.tryDecodeFunc = oggflac_try_decode;
-+ oggflacPlugin.streamDecodeFunc = oggflac_decode;
-+ oggflacPlugin.tagDupFunc = oggflac_tag_dup;
-+ oggflacPlugin.streamTypes = INPUT_PLUGIN_STREAM_URL |
-+ INPUT_PLUGIN_STREAM_FILE;
-+ oggflacPlugin.suffixes = oggflac_suffixes;
-+ oggflacPlugin.mimeTypes = oggflac_mime_types;
-+ loadInputPlugin(&oggflacPlugin);
-+ return 1;
-+}
-+
-+#endif /* FLAC_API_VERSION_CURRENT >= 7 */
-+
- static char *flacSuffixes[] = { "flac", NULL };
--static char *flac_mime_types[] = { "application/x-flac", NULL };
-+static char *flac_mime_types[] = { "audio/x-flac",
-+ "application/x-flac",
-+ NULL };
-
- InputPlugin flacPlugin = {
- "flac",
-- NULL,
-+ flac_plugin_init,
- NULL,
- NULL,
- flac_decode,
-@@ -456,17 +525,6 @@ InputPlugin flacPlugin = {
-
- #else /* !HAVE_FLAC */
-
--InputPlugin flacPlugin = {
-- NULL,
-- NULL,
-- NULL,
-- NULL,
-- NULL,
-- NULL,
-- NULL,
-- 0,
-- NULL,
-- NULL,
--};
-+InputPlugin flacPlugin;
-
- #endif /* HAVE_FLAC */
---- mpd-0.12.1/src/inputPlugins/_flac_common.h.orig 2006-10-11 01:56:55.000000000 +0200
-+++ mpd-0.12.1/src/inputPlugins/_flac_common.h 2007-02-14 22:57:43.000000000 +0100
-@@ -30,7 +30,116 @@
- #include "../inputStream.h"
- #include "../outputBuffer.h"
- #include "../decode.h"
--#include <FLAC/seekable_stream_decoder.h>
-+#include <FLAC/export.h>
-+#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT <= 7
-+# include <FLAC/seekable_stream_decoder.h>
-+# define flac_decoder FLAC__SeekableStreamDecoder
-+# define flac_new() FLAC__seekable_stream_decoder_new()
-+
-+# define flac_ogg_init(a,b,c,d,e,f,g,h,i,j) (0)
-+
-+# define flac_get_decode_position(x,y) \
-+ FLAC__seekable_stream_decoder_get_decode_position(x,y)
-+# define flac_get_state(x) FLAC__seekable_stream_decoder_get_state(x)
-+# define flac_process_single(x) FLAC__seekable_stream_decoder_process_single(x)
-+# define flac_process_metadata(x) \
-+ FLAC__seekable_stream_decoder_process_until_end_of_metadata(x)
-+# define flac_seek_absolute(x,y) \
-+ FLAC__seekable_stream_decoder_seek_absolute(x,y)
-+# define flac_finish(x) FLAC__seekable_stream_decoder_finish(x)
-+# define flac_delete(x) FLAC__seekable_stream_decoder_delete(x)
-+
-+# define flac_decoder_eof FLAC__SEEKABLE_STREAM_DECODER_END_OF_STREAM
-+
-+typedef unsigned flac_read_status_size_t;
-+# define flac_read_status FLAC__SeekableStreamDecoderReadStatus
-+# define flac_read_status_continue \
-+ FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK
-+# define flac_read_status_eof FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK
-+# define flac_read_status_abort \
-+ FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR
-+
-+# define flac_seek_status FLAC__SeekableStreamDecoderSeekStatus
-+# define flac_seek_status_ok FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK
-+# define flac_seek_status_error FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR
-+
-+# define flac_tell_status FLAC__SeekableStreamDecoderTellStatus
-+# define flac_tell_status_ok FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK
-+# define flac_tell_status_error \
-+ FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_ERROR
-+# define flac_tell_status_unsupported \
-+ FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_ERROR
-+
-+# define flac_length_status FLAC__SeekableStreamDecoderLengthStatus
-+# define flac_length_status_ok FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK
-+# define flac_length_status_error \
-+ FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_ERROR
-+# define flac_length_status_unsupported \
-+ FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_ERROR
-+
-+# ifdef HAVE_OGGFLAC
-+# include <OggFLAC/seekable_stream_decoder.h>
-+# endif
-+#else /* FLAC_API_VERSION_CURRENT >= 7 */
-+
-+ /* OggFLAC support is handled by our flac_plugin already, and
-+ * thus we *can* always have it if libFLAC was compiled with it */
-+# ifndef HAVE_OGGFLAC
-+# define HAVE_OGGFLAC 1
-+# endif
-+# include "_ogg_common.h"
-+# undef HAVE_OGGFLAC /* we don't need this defined anymore */
-+
-+# include <FLAC/stream_decoder.h>
-+# define flac_decoder FLAC__StreamDecoder
-+# define flac_new() FLAC__stream_decoder_new()
-+
-+# define flac_init(a,b,c,d,e,f,g,h,i,j) \
-+ (FLAC__stream_decoder_init_stream(a,b,c,d,e,f,g,h,i,j) \
-+ == FLAC__STREAM_DECODER_INIT_STATUS_OK)
-+# define flac_ogg_init(a,b,c,d,e,f,g,h,i,j) \
-+ (FLAC__stream_decoder_init_ogg_stream(a,b,c,d,e,f,g,h,i,j) \
-+ == FLAC__STREAM_DECODER_INIT_STATUS_OK)
-+
-+# define flac_get_decode_position(x,y) \
-+ FLAC__stream_decoder_get_decode_position(x,y)
-+# define flac_get_state(x) FLAC__stream_decoder_get_state(x)
-+# define flac_process_single(x) FLAC__stream_decoder_process_single(x)
-+# define flac_process_metadata(x) \
-+ FLAC__stream_decoder_process_until_end_of_metadata(x)
-+# define flac_seek_absolute(x,y) FLAC__stream_decoder_seek_absolute(x,y)
-+# define flac_finish(x) FLAC__stream_decoder_finish(x)
-+# define flac_delete(x) FLAC__stream_decoder_delete(x)
-+
-+# define flac_decoder_eof FLAC__STREAM_DECODER_END_OF_STREAM
-+
-+typedef size_t flac_read_status_size_t;
-+# define flac_read_status FLAC__StreamDecoderReadStatus
-+# define flac_read_status_continue \
-+ FLAC__STREAM_DECODER_READ_STATUS_CONTINUE
-+# define flac_read_status_eof FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM
-+# define flac_read_status_abort FLAC__STREAM_DECODER_READ_STATUS_ABORT
-+
-+# define flac_seek_status FLAC__StreamDecoderSeekStatus
-+# define flac_seek_status_ok FLAC__STREAM_DECODER_SEEK_STATUS_OK
-+# define flac_seek_status_error FLAC__STREAM_DECODER_SEEK_STATUS_ERROR
-+# define flac_seek_status_unsupported \
-+ FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED
-+
-+# define flac_tell_status FLAC__StreamDecoderTellStatus
-+# define flac_tell_status_ok FLAC__STREAM_DECODER_TELL_STATUS_OK
-+# define flac_tell_status_error FLAC__STREAM_DECODER_TELL_STATUS_ERROR
-+# define flac_tell_status_unsupported \
-+ FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED
-+
-+# define flac_length_status FLAC__StreamDecoderLengthStatus
-+# define flac_length_status_ok FLAC__STREAM_DECODER_LENGTH_STATUS_OK
-+# define flac_length_status_error FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR
-+# define flac_length_status_unsupported \
-+ FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED
-+
-+#endif /* FLAC_API_VERSION_CURRENT >= 7 */
-+
- #include <FLAC/metadata.h>
-
- #define FLAC_CHUNK_SIZE 4080
More information about the arch-commits
mailing list