summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-sound')
-rw-r--r--media-sound/lame/Manifest2
-rw-r--r--media-sound/lame/files/lame-3.98.2-ffmpeg-0.5.patch86
-rw-r--r--media-sound/lame/lame-3.98.2-r1.ebuild86
3 files changed, 174 insertions, 0 deletions
diff --git a/media-sound/lame/Manifest b/media-sound/lame/Manifest
index 2881d8c37..e1dd12d24 100644
--- a/media-sound/lame/Manifest
+++ b/media-sound/lame/Manifest
@@ -7,10 +7,12 @@ AUX lame-3.98-gtk-path.patch 8606 RMD160 8bca3b986edf75853bfaee6837f9eb4832b664f
AUX lame-3.98-pic-fix.patch 14804 RMD160 443e4b1fc6a54be4d2c356ea7b4cc857f26b2a1c SHA1 551d364c34c30f6486b034f6e0789247450aae95 SHA256 f77ededd6e067a4d47ad49a0fa939290de5b248ef83a4b8a1aba52dbb0649381
AUX lame-3.98-shared-frontend.patch 1008 RMD160 8e12e752a325926e1376e45ffd3b72cac61ebf4a SHA1 af371fe673e42c4ba2e6e07255d6196d76d8ef79 SHA256 fb40bfb00e47964acbe0de428cc7a3e4b3a0e0ade120bf547891bf78031f6916
AUX lame-3.98-stdint.patch 651 RMD160 84a732f356ac05941d90c2a261f9d624fc38bc5b SHA1 b4ebe2a3e8c343180b7d82e2bd2edb81a7c0d1bd SHA256 2fc25342cf5b5d5fd465c76f7899b0276e6e9f21b948f6005de0724a35dcc567
+AUX lame-3.98.2-ffmpeg-0.5.patch 2950 RMD160 71628a5b2d9ac7365ccbac3dbf3de7cea6006b5d SHA1 1f7c0a6c90bdc133921f999f1ed0855e95d39a5a SHA256 f9de77da233d81485463cf6c51a3b7ff21be78b17f7d91741532f9a9f5577500
DIST lame-3.97.tar.gz 1328058 RMD160 5c4cf02c0f4e10c4cd2ab610d62478b554cd0873 SHA1 acf56065f4e31ce023b0f99002d537adb1ec09df SHA256 0a2334a6d11085298a9a3c46d5d310cca012f2e61d6efae90840a76a364dbe17
DIST lame-398-2.tar.gz 1327643 RMD160 767dd94271eef221170469535db2bf388149715a SHA1 b2db41dbc9c0824caa102e8c932b820c79ccd5ec SHA256 a17a28569d8ed1e514915c1f12bdf4eedac506e5fbdf9a429ba97d5d42c9af32
DIST lame-398.tar.gz 1415983 RMD160 754343791ac80d2403291c63f99eb409bca6b62f SHA1 287979d076834882c99d0cc01ddbd9b3697ceaae SHA256 8396bcb425ddcbfb8027d5712fa8878a2257006ccbe3ac7a772e1652e43d19b1
EBUILD lame-3.97-r1.ebuild 2463 RMD160 817c39ec6f5df1a9790b24b8305a7576d3071604 SHA1 1b7a018e4a1547c333d7583c640bb353628953ce SHA256 bc40029ced32790978ab609d7221f70f106a4abb6fb9ca3c8f62e387a86b5e32
+EBUILD lame-3.98.2-r1.ebuild 2733 RMD160 70231b90bf73f0b203661155281e31ea29233f4b SHA1 87042bcd46b281b529abb66c6a204e7154e6b09a SHA256 7c28f27e69e3feb42e896569574cbbdcc0d4f653eeaa59b21315f165dfc4175a
EBUILD lame-3.98.2.ebuild 2636 RMD160 4612a529ad55e2eb66972a2d7aa0cb19b74d36d8 SHA1 71deb751279cadb26ebf649fbaf327877b63bd31 SHA256 5766fcae3fdedc9f4642ef28bf00049cd43725556a223738cebab2a53560f932
EBUILD lame-3.98.ebuild 2982 RMD160 13b5f8b2dba50dcea7015dc62b4c80180a3649de SHA1 2af0d47545e6e006c939397cc64e83d07e4487c6 SHA256 8501af22b587e2f3d07864fa7906d4038b200c7de46ab837ecd43ae1298d7109
MISC ChangeLog 14986 RMD160 a8d8f2cc563f19cbf076a7e55dd7a74eb64acd63 SHA1 149ea580edecd730ddbae9976e1ab955d00669ea SHA256 b2c3ba3f8f0325a4bb491407531a9e2ec29a74e32f12393406dc2522c57bddab
diff --git a/media-sound/lame/files/lame-3.98.2-ffmpeg-0.5.patch b/media-sound/lame/files/lame-3.98.2-ffmpeg-0.5.patch
new file mode 100644
index 000000000..30528c7db
--- /dev/null
+++ b/media-sound/lame/files/lame-3.98.2-ffmpeg-0.5.patch
@@ -0,0 +1,86 @@
+diff -NrU5 lame-398-2.orig/libmp3lame/lame.c lame-398-2/libmp3lame/lame.c
+--- lame-398-2.orig/libmp3lame/lame.c 2009-05-03 15:16:40.000000000 +0200
++++ lame-398-2/libmp3lame/lame.c 2009-05-03 15:24:49.000000000 +0200
+@@ -1600,10 +1600,17 @@
+ in_buffer[1] += n_in;
+
+ /* update mfbuf[] counters */
+ gfc->mf_size += n_out;
+ assert(gfc->mf_size <= MFSIZE);
++
++ /* lame_encode_flush may have set gfc->mf_sample_to_encode to 0
++ * so we have to reinitialize it here when that happened.
++ */
++ if (gfc->mf_samples_to_encode < 1) {
++ gfc->mf_samples_to_encode = ENCDELAY + POSTDELAY;
++ }
+ gfc->mf_samples_to_encode += n_out;
+
+
+ if (gfc->mf_size >= mf_needed) {
+ /* encode the frame. */
+@@ -1929,10 +1936,14 @@
+ int end_padding = POSTDELAY;
+ int pad_out_samples;
+ int frames_left;
+ int samples_to_encode = gfc->mf_samples_to_encode;
+
++ /* Was flush already called? */
++ if (gfc->mf_samples_to_encode < 1) {
++ return 0;
++ }
+ memset(buffer, 0, sizeof(buffer));
+ mp3count = 0;
+
+ if (gfp->in_samplerate != gfp->out_samplerate) {
+ /* delay due to resampling; needs to be fixed, if resampling code gets changed */
+@@ -1940,35 +1951,38 @@
+ }
+ pad_out_samples = gfp->framesize - (samples_to_encode % gfp->framesize);
+ end_padding += pad_out_samples;
+
+ frames_left = (samples_to_encode + pad_out_samples) / gfp->framesize;
+- while (frames_left > 0) {
++
++ /* send in a frame of 0 padding until all internal sample buffers are flushed */
++ while (frames_left > 0 && imp3 >= 0) {
+ int frame_num = gfp->frameNum;
+
+ mp3buffer_size_remaining = mp3buffer_size - mp3count;
+
+ /* if user specifed buffer size = 0, dont check size */
+ if (mp3buffer_size == 0)
+ mp3buffer_size_remaining = 0;
+
+- /* send in a frame of 0 padding until all internal sample buffers
+- * are flushed
+- */
+ imp3 = lame_encode_buffer(gfp, buffer[0], buffer[1], 32,
+ mp3buffer, mp3buffer_size_remaining);
+
+- if (frame_num != gfp->frameNum) {
+- --frames_left;
+- }
+- if (imp3 < 0) {
+- /* some type of fatal error */
+- return imp3;
+- }
+ mp3buffer += imp3;
+ mp3count += imp3;
++ frames_left -= (frame_num != gfp->frameNum) ? 1 : 0;
+ }
++ /* Set gfc->mf_samples_to_encode to 0, so we may detect
++ * and break loops calling it more than once in a row.
++ */
++ gfc->mf_samples_to_encode = 0;
++
++ if (imp3 < 0) {
++ /* some type of fatal error */
++ return imp3;
++ }
++
+ mp3buffer_size_remaining = mp3buffer_size - mp3count;
+ /* if user specifed buffer size = 0, dont check size */
+ if (mp3buffer_size == 0)
+ mp3buffer_size_remaining = 0;
+
diff --git a/media-sound/lame/lame-3.98.2-r1.ebuild b/media-sound/lame/lame-3.98.2-r1.ebuild
new file mode 100644
index 000000000..f3599bc36
--- /dev/null
+++ b/media-sound/lame/lame-3.98.2-r1.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-sound/lame/lame-3.98.2.ebuild,v 1.6 2008/11/14 12:25:16 armin76 Exp $
+
+EAPI="2"
+
+inherit flag-o-matic toolchain-funcs eutils autotools versionator multilib-native
+
+DESCRIPTION="LAME Ain't an MP3 Encoder"
+HOMEPAGE="http://lame.sourceforge.net"
+
+MY_PV=$(replace_version_separator 1 '')
+[ ${MY_PV/.} = ${MY_PV} ] || MY_PV=$(replace_version_separator 1 '-' ${MY_PV})
+S=${WORKDIR}/${PN}-${MY_PV}
+SRC_URI="mirror://sourceforge/${PN}/${PN}-${MY_PV}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="debug mmx mp3rtp sndfile gtk"
+
+RDEPEND=">=sys-libs/ncurses-5.2[lib32?]
+ sndfile? ( >=media-libs/libsndfile-1.0.2[lib32?] )
+ gtk? ( =x11-libs/gtk+-1.2*[lib32?] )"
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig
+ mmx? ( dev-lang/nasm )"
+
+multilib-native_src_prepare_internal() {
+ cd "${S}"
+
+ # The frontened tries to link staticly, but we prefer shared libs
+ epatch "${FILESDIR}"/${PN}-3.98-shared-frontend.patch
+
+ # If ccc (alpha compiler) is installed on the system, the default
+ # configure is broken, fix it to respect CC. This is only
+ # directly broken for ARCH=alpha but would affect anybody with a
+ # ccc binary in their PATH. Bug #41908 (26 Jul 2004 agriffis)
+ epatch "${FILESDIR}"/${PN}-3.96-ccc.patch
+
+ # Patch gtk stuff, otherwise eautoreconf dies
+ epatch "${FILESDIR}"/${PN}-3.98-gtk-path.patch
+
+ # Fix for ffmpeg-0.5, bug 265830
+ epatch "${FILESDIR}"/${PN}-3.98.2-ffmpeg-0.5.patch
+
+ # It fails parallel make otherwise when enabling nasm...
+ mkdir "${S}/libmp3lame/i386/.libs" || die
+
+ AT_M4DIR="${S}" eautoreconf
+ epunt_cxx # embedded bug #74498
+}
+
+multilib-native_src_configure_internal() {
+ use sndfile && myconf="--with-fileio=sndfile"
+ # The user sets compiler optimizations... But if you'd like
+ # lame to choose it's own... uncomment one of these (experiMENTAL)
+ # myconf="${myconf} --enable-expopt=full \
+ # myconf="${myconf} --enable-expopt=norm \
+
+ econf \
+ --enable-shared \
+ $(use_enable debug debug norm) \
+ --disable-mp3x \
+ $(use_enable mmx nasm) \
+ $(use_enable mp3rtp) \
+ $(use_enable gtk gtktest) \
+ ${myconf} || die "econf failed"
+}
+
+multilib-native_src_install_internal() {
+ emake DESTDIR="${D}" pkghtmldir="/usr/share/doc/${PF}/html" install || die
+
+ dodoc API ChangeLog HACKING README* STYLEGUIDE TODO USAGE || die
+ dohtml misc/lameGUI.html Dll/LameDLLInterface.htm || die
+
+ dobin "${S}"/misc/mlame || die
+}
+
+pkg_postinst(){
+ if use mp3rtp ; then
+ ewarn "Warning, support for the encode-to-RTP program, 'mp3rtp'"
+ ewarn "is broken as of August 2001."
+ ewarn " "
+ fi
+}