summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Faulhammer <opfer@gentoo.org>2007-02-14 14:04:53 +0000
committerChristian Faulhammer <opfer@gentoo.org>2007-02-14 14:04:53 +0000
commitbac91f9f56e90f088d3f976ff160d67586f0504b (patch)
treea03f3cb5495a8b3b48f75e85bc487de26fd3513c /media-sound/cmus
parentStable on sparc wrt #166805 (diff)
downloadgentoo-2-bac91f9f56e90f088d3f976ff160d67586f0504b.tar.gz
gentoo-2-bac91f9f56e90f088d3f976ff160d67586f0504b.tar.bz2
gentoo-2-bac91f9f56e90f088d3f976ff160d67586f0504b.zip
add a patch from cmus mailing list that allows building against media-libs/faad2 2.0, so now I can provide aac and mp4 USE flags
(Portage version: 2.1.2-r9)
Diffstat (limited to 'media-sound/cmus')
-rw-r--r--media-sound/cmus/ChangeLog9
-rw-r--r--media-sound/cmus/cmus-2.1.0-r1.ebuild86
-rw-r--r--media-sound/cmus/files/cmus-2.1.0-faad-2.0.patch301
-rw-r--r--media-sound/cmus/files/digest-cmus-2.1.0-r13
4 files changed, 398 insertions, 1 deletions
diff --git a/media-sound/cmus/ChangeLog b/media-sound/cmus/ChangeLog
index 4cc3e365fa66..73a85397a483 100644
--- a/media-sound/cmus/ChangeLog
+++ b/media-sound/cmus/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for media-sound/cmus
# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/cmus/ChangeLog,v 1.6 2007/01/29 09:09:52 opfer Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/cmus/ChangeLog,v 1.7 2007/02/14 14:04:53 opfer Exp $
+
+*cmus-2.1.0-r1 (14 Feb 2007)
+
+ 14 Feb 2007; Christian Faulhammer <opfer@gentoo.org>
+ +files/cmus-2.1.0-faad-2.0.patch, +cmus-2.1.0-r1.ebuild:
+ add a patch from cmus mailing list that allows building against
+ media-libs/faad2 2.0, so now I can provide aac and mp4 USE flags
29 Jan 2007; Christian Faulhammer <opfer@gentoo.org> -cmus-2.0.4.ebuild:
clean up
diff --git a/media-sound/cmus/cmus-2.1.0-r1.ebuild b/media-sound/cmus/cmus-2.1.0-r1.ebuild
new file mode 100644
index 000000000000..7ddcb149e513
--- /dev/null
+++ b/media-sound/cmus/cmus-2.1.0-r1.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-sound/cmus/cmus-2.1.0-r1.ebuild,v 1.1 2007/02/14 14:04:53 opfer Exp $
+
+inherit eutils multilib
+
+DESCRIPTION="A ncurses based music player with plugin support for many formats"
+HOMEPAGE="http://onion.dynserv.net/~timo/cmus.html"
+SRC_URI="http://onion.dynserv.net/~timo/files/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="aac alsa ao arts debug flac mad mikmod modplug mp3 mp4 musepack oss vorbis"
+
+DEPEND="sys-libs/ncurses
+ alsa? ( >=media-libs/alsa-lib-1.0.11 )
+ ao? ( media-libs/libao )
+ arts? ( kde-base/arts )
+ flac? ( media-libs/flac )
+ mad? ( >=media-libs/libmad-0.14 )
+ mikmod? ( media-libs/libmikmod )
+ modplug? ( >=media-libs/libmodplug-0.7 )
+ mp3? ( >=media-libs/libmad-0.14 )
+ musepack? ( >=media-libs/libmpcdec-1.2 )
+ vorbis? ( >=media-libs/libvorbis-1.0 )
+ aac? ( media-libs/faad2 )
+ mp4? ( media-libs/libmp4v2
+ media-libs/faad2 )"
+RDEPEND="${DEPEND}"
+
+my_config() {
+ local value
+ use ${1} && value=y || value=n
+ myconf="${myconf} ${2}=${value}"
+}
+
+pkg_setup() {
+ if ! built_with_use sys-libs/ncurses unicode
+ then
+ ewarn
+ ewarn "\t sys-libs/ncurses compiled without the unicode USE flag."
+ ewarn "\t Please recompile sys-libs/ncurses with USE=unicode and emerge"
+ ewarn "\t cmus again if you experience any problems with UTF-8 or"
+ ewarn "\t wide characters."
+ ewarn
+ epause
+ fi
+}
+
+src_unpack(){
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}/${P}-faad-2.0.patch"
+}
+
+src_compile() {
+ local debuglevel myconf
+
+ use debug && debuglevel=2 || debuglevel=1
+
+ myconf="CONFIG_SUN=n"
+ my_config aac CONFIG_AAC
+ my_config ao CONFIG_AO
+ my_config alsa CONFIG_ALSA
+ my_config arts CONFIG_ARTS
+ my_config flac CONFIG_FLAC
+ my_config mad CONFIG_MAD
+ my_config mikmod CONFIG_MIKMOD
+ my_config mp3 CONFIG_MAD
+ my_config mp4 CONFIG_MP4
+ my_config modplug CONFIG_MODPLUG
+ my_config musepack CONFIG_MPC
+ my_config oss CONFIG_OSS
+ my_config vorbis CONFIG_VORBIS
+
+ # econf doesn't work, because configure wants "prefix" (and similar) without dashes
+ ./configure prefix=/usr ${myconf} libdir=/usr/$(get_libdir) DEBUG=$debuglevel || die "configure failed"
+
+ emake || die "emake failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+ dodoc AUTHORS README
+}
diff --git a/media-sound/cmus/files/cmus-2.1.0-faad-2.0.patch b/media-sound/cmus/files/cmus-2.1.0-faad-2.0.patch
new file mode 100644
index 000000000000..d86fcc2a1d80
--- /dev/null
+++ b/media-sound/cmus/files/cmus-2.1.0-faad-2.0.patch
@@ -0,0 +1,301 @@
+diff --git a/aac.c b/aac.c
+index 727b705..4983ad4 100644
+--- a/aac.c
++++ b/aac.c
+@@ -24,7 +24,7 @@ #include "id3.h"
+ #include "comment.h"
+ #include "read_wrapper.h"
+
+-#include <neaacdec.h>
++#include <faad.h>
+
+ #include <errno.h>
+ #include <string.h>
+@@ -41,12 +41,12 @@ struct aac_private {
+ int rbuf_pos;
+
+ unsigned char channels;
+- unsigned long sample_rate;
++ uint32_t sample_rate;
+
+ char *overflow_buf;
+ int overflow_buf_len;
+
+- NeAACDecHandle decoder; /* typedef void * */
++ faacDecHandle decoder; /* typedef void * */
+ };
+
+ static inline int buffer_length(const struct input_plugin_data *ip_data)
+@@ -187,20 +187,20 @@ static int buffer_fill_frame(struct inpu
+ static int aac_open(struct input_plugin_data *ip_data)
+ {
+ struct aac_private *priv;
+- NeAACDecConfigurationPtr neaac_cfg;
++ faacDecConfigurationPtr neaac_cfg;
+ int ret, n;
+
+ /* init private struct */
+ priv = xnew0(struct aac_private, 1);
+- priv->decoder = NeAACDecOpen();
++ priv->decoder = faacDecOpen();
+ ip_data->private = priv;
+
+ /* set decoder config */
+- neaac_cfg = NeAACDecGetCurrentConfiguration(priv->decoder);
++ neaac_cfg = faacDecGetCurrentConfiguration(priv->decoder);
+ neaac_cfg->outputFormat = FAAD_FMT_16BIT; /* force 16 bit audio */
+ neaac_cfg->downMatrix = 1; /* 5.1 -> stereo */
+ neaac_cfg->dontUpSampleImplicitSBR = 0; /* upsample, please! */
+- NeAACDecSetConfiguration(priv->decoder, neaac_cfg);
++ faacDecSetConfiguration(priv->decoder, neaac_cfg);
+
+ /* find a frame */
+ if (buffer_fill_frame(ip_data) <= 0) {
+@@ -209,7 +209,7 @@ static int aac_open(struct input_plugin_
+ }
+
+ /* in case of a bug, make sure there is at least some data
+- * in the buffer for NeAACDecInit() to work with.
++ * in the buffer for faacDecInit() to work with.
+ */
+ if (buffer_fill_min(ip_data, 256) <= 0) {
+ d_print("not enough data\n");
+@@ -218,10 +218,10 @@ static int aac_open(struct input_plugin_
+ }
+
+ /* init decoder, returns the length of the header (if any) */
+- n = NeAACDecInit(priv->decoder, buffer_data(ip_data), buffer_length(ip_data),
++ n = faacDecInit(priv->decoder, buffer_data(ip_data), buffer_length(ip_data),
+ &priv->sample_rate, &priv->channels);
+ if (n < 0) {
+- d_print("NeAACDecInit failed\n");
++ d_print("faacDecInit failed\n");
+ ret = -IP_ERROR_FILE_FORMAT;
+ goto out;
+ }
+@@ -233,7 +233,7 @@ static int aac_open(struct input_plugin_
+
+ d_print("sample rate %luhz, channels %u\n", priv->sample_rate, priv->channels);
+
+- /*NeAACDecInitDRM(priv->decoder, priv->sample_rate, priv->channels);*/
++ /*faacDecInitDRM(priv->decoder, priv->sample_rate, priv->channels);*/
+
+ ip_data->sf = sf_rate(priv->sample_rate) | sf_channels(priv->channels) | sf_bits(16) | sf_signed(1);
+ #if defined(WORDS_BIGENDIAN)
+@@ -241,7 +241,7 @@ #if defined(WORDS_BIGENDIAN)
+ #endif
+ return 0;
+ out:
+- NeAACDecClose(priv->decoder);
++ faacDecClose(priv->decoder);
+ free(priv);
+ return ret;
+ }
+@@ -250,7 +250,7 @@ static int aac_close(struct input_plugin
+ {
+ struct aac_private *priv = ip_data->private;
+
+- NeAACDecClose(priv->decoder);
++ faacDecClose(priv->decoder);
+ free(priv);
+ ip_data->private = NULL;
+ return 0;
+@@ -265,7 +265,7 @@ static int decode_one_frame(struct input
+ struct aac_private *priv = ip_data->private;
+ unsigned char *aac_data;
+ unsigned int aac_data_size;
+- NeAACDecFrameInfo frame_info;
++ faacDecFrameInfo frame_info;
+ char *sample_buf;
+ int bytes, rc;
+
+@@ -277,18 +277,18 @@ static int decode_one_frame(struct input
+ aac_data_size = buffer_length(ip_data);
+
+ /* aac data -> raw pcm */
+- sample_buf = NeAACDecDecode(priv->decoder, &frame_info, aac_data, aac_data_size);
++ sample_buf = faacDecDecode(priv->decoder, &frame_info, aac_data, aac_data_size);
+
+ buffer_consume(ip_data, frame_info.bytesconsumed);
+
+ if (!sample_buf || frame_info.bytesconsumed <= 0) {
+- d_print("fatal error: %s\n", NeAACDecGetErrorMessage(frame_info.error));
++ d_print("fatal error: %s\n", faacDecGetErrorMessage(frame_info.error));
+ errno = EINVAL;
+ return -1;
+ }
+
+ if (frame_info.error != 0) {
+- d_print("frame error: %s\n", NeAACDecGetErrorMessage(frame_info.error));
++ d_print("frame error: %s\n", faacDecGetErrorMessage(frame_info.error));
+ return -2;
+ }
+
+@@ -395,7 +395,7 @@ out:
+ static int aac_duration(struct input_plugin_data *ip_data)
+ {
+ struct aac_private *priv = ip_data->private;
+- NeAACDecFrameInfo frame_info;
++ faacDecFrameInfo frame_info;
+ int samples = 0, bytes = 0, frames = 0;
+ off_t file_size;
+ char *sample_buf;
+@@ -409,7 +409,7 @@ static int aac_duration(struct input_plu
+ if (buffer_fill_frame(ip_data) <= 0)
+ break;
+
+- sample_buf = NeAACDecDecode(priv->decoder, &frame_info,
++ sample_buf = faacDecDecode(priv->decoder, &frame_info,
+ buffer_data(ip_data), buffer_length(ip_data));
+ if (frame_info.error == 0 && frame_info.samples > 0) {
+ samples += frame_info.samples;
+diff --git a/configure b/configure
+index d1dce2d..a71d73d 100755
+--- a/configure
++++ b/configure
+@@ -174,14 +174,14 @@ check_waveout()
+
+ check_mp4()
+ {
+- check_header neaacdec.h &&
++ check_header faad.h &&
+ check_library MP4 "" "-lmp4v2 -lfaad -lm"
+ return $?
+ }
+
+ check_aac()
+ {
+- check_header neaacdec.h &&
++ check_header faad.h &&
+ check_library AAC "" "-lfaad -lm"
+ return $?
+ }
+diff --git a/mp4.c b/mp4.c
+index eb82ca7..ce1c542 100644
+--- a/mp4.c
++++ b/mp4.c
+@@ -23,7 +23,7 @@ #include "debug.h"
+ #include "file.h"
+
+ #include <mp4.h>
+-#include <neaacdec.h>
++#include <faad.h>
+
+ #include <errno.h>
+ #include <string.h>
+@@ -35,9 +35,9 @@ struct mp4_private {
+ int overflow_buf_len;
+
+ unsigned char channels;
+- unsigned long sample_rate;
++ uint32_t sample_rate;
+
+- NeAACDecHandle decoder; /* typedef void * */
++ faacDecHandle decoder; /* typedef void * */
+
+ struct {
+ MP4FileHandle handle; /* typedef void * */
+@@ -88,7 +88,7 @@ static MP4TrackId mp4_get_track(MP4FileH
+ static int mp4_open(struct input_plugin_data *ip_data)
+ {
+ struct mp4_private *priv;
+- NeAACDecConfigurationPtr neaac_cfg;
++ faacDecConfigurationPtr neaac_cfg;
+ unsigned char *buf;
+ unsigned int buf_size;
+
+@@ -101,13 +101,13 @@ static int mp4_open(struct input_plugin_
+ priv = xnew0(struct mp4_private, 1);
+ ip_data->private = priv;
+
+- priv->decoder = NeAACDecOpen();
++ priv->decoder = faacDecOpen();
+
+ /* set decoder config */
+- neaac_cfg = NeAACDecGetCurrentConfiguration(priv->decoder);
++ neaac_cfg = faacDecGetCurrentConfiguration(priv->decoder);
+ neaac_cfg->outputFormat = FAAD_FMT_16BIT; /* force 16 bit audio */
+ neaac_cfg->downMatrix = 1; /* 5.1 -> stereo */
+- NeAACDecSetConfiguration(priv->decoder, neaac_cfg);
++ faacDecSetConfiguration(priv->decoder, neaac_cfg);
+
+ /* open mpeg-4 file */
+ priv->mp4.handle = MP4Read(ip_data->filename, 0);
+@@ -131,15 +131,14 @@ static int mp4_open(struct input_plugin_
+ buf_size = 0;
+ if (!MP4GetTrackESConfiguration(priv->mp4.handle, priv->mp4.track, &buf, &buf_size)) {
+ /* failed to get mpeg-4 audio config... this is ok.
+- * NeAACDecInit2() will simply use default values instead.
++ * faacDecInit2() will simply use default values instead.
+ */
+ buf = NULL;
+ buf_size = 0;
+ }
+
+- /* init decoder according to mpeg-4 audio config
+- * cast to signed char because char is unsigned by default on ppc */
+- if ((signed char)NeAACDecInit2(priv->decoder, buf, buf_size, &priv->sample_rate, &priv->channels) < 0) {
++ /* init decoder according to mpeg-4 audio config */
++ if (faacDecInit2(priv->decoder, buf, buf_size, &priv->sample_rate, &priv->channels) < 0) {
+ free(buf);
+ goto out;
+ }
+@@ -159,7 +158,7 @@ out:
+ if (priv->mp4.handle)
+ MP4Close(priv->mp4.handle);
+ if (priv->decoder)
+- NeAACDecClose(priv->decoder);
++ faacDecClose(priv->decoder);
+ free(priv);
+ return -IP_ERROR_FILE_FORMAT;
+ }
+@@ -174,7 +173,7 @@ static int mp4_close(struct input_plugin
+ MP4Close(priv->mp4.handle);
+
+ if (priv->decoder)
+- NeAACDecClose(priv->decoder);
++ faacDecClose(priv->decoder);
+
+ free(priv);
+ ip_data->private = NULL;
+@@ -191,7 +190,7 @@ static int decode_one_frame(struct input
+ struct mp4_private *priv;
+ unsigned char *aac_data = NULL;
+ unsigned int aac_data_len = 0;
+- NeAACDecFrameInfo frame_info;
++ faacDecFrameInfo frame_info;
+ char *sample_buf;
+ int bytes;
+
+@@ -217,18 +216,18 @@ static int decode_one_frame(struct input
+ return -1;
+ }
+
+- sample_buf = NeAACDecDecode(priv->decoder, &frame_info, aac_data, aac_data_len);
++ sample_buf = faacDecDecode(priv->decoder, &frame_info, aac_data, aac_data_len);
+
+ free(aac_data);
+
+ if (!sample_buf || frame_info.bytesconsumed <= 0) {
+- d_print("fatal error: %s\n", NeAACDecGetErrorMessage(frame_info.error));
++ d_print("fatal error: %s\n", faacDecGetErrorMessage(frame_info.error));
+ errno = EINVAL;
+ return -1;
+ }
+
+ if (frame_info.error != 0) {
+- d_print("frame error: %s\n", NeAACDecGetErrorMessage(frame_info.error));
++ d_print("frame error: %s\n", faacDecGetErrorMessage(frame_info.error));
+ return -2;
+ }
+
+@@ -244,8 +243,7 @@ static int decode_one_frame(struct input
+ bytes = frame_info.samples * 2;
+
+ if (bytes > count) {
+- /* decoded too much; keep overflow. this only happens
+- * when we've called NeAACDecDecode_bugfree() */
++ /* decoded too much; keep overflow. */
+ priv->overflow_buf = sample_buf + count;
+ priv->overflow_buf_len = bytes - count;
+ memcpy(buffer, sample_buf, count);
diff --git a/media-sound/cmus/files/digest-cmus-2.1.0-r1 b/media-sound/cmus/files/digest-cmus-2.1.0-r1
new file mode 100644
index 000000000000..98c2b516ef2b
--- /dev/null
+++ b/media-sound/cmus/files/digest-cmus-2.1.0-r1
@@ -0,0 +1,3 @@
+MD5 11ca53a05442ee073b6e790e957b1433 cmus-2.1.0.tar.bz2 146956
+RMD160 f359c8929dd616855aedbe2c4d1d2e252a8946ca cmus-2.1.0.tar.bz2 146956
+SHA256 fe47e258918526b9e1b2cd7081d73654af8c326f0f3b0fabe450b805b78423c0 cmus-2.1.0.tar.bz2 146956