From 415856bdd4f48ab4f2732996f0bae58595092bbe Mon Sep 17 00:00:00 2001 From: Parabola Date: Tue, 5 Apr 2011 14:26:38 +0000 Subject: Tue Apr 5 14:26:38 UTC 2011 --- extra/lame/03_lame-ffmpeg.diff | 72 ++++++++++++++++++++++++++++++++++++++++ extra/lame/PKGBUILD | 26 +++++++++++++++ extra/lame/shared-frontend.patch | 23 +++++++++++++ 3 files changed, 121 insertions(+) create mode 100644 extra/lame/03_lame-ffmpeg.diff create mode 100644 extra/lame/PKGBUILD create mode 100644 extra/lame/shared-frontend.patch (limited to 'extra/lame') diff --git a/extra/lame/03_lame-ffmpeg.diff b/extra/lame/03_lame-ffmpeg.diff new file mode 100644 index 000000000..a80393517 --- /dev/null +++ b/extra/lame/03_lame-ffmpeg.diff @@ -0,0 +1,72 @@ +--- lame-3.98.2.orig/libmp3lame/lame.c 2009-07-07 10:52:01.000000000 +0200 ++++ lame-3.98.2/libmp3lame/lame.c 2009-07-07 10:52:03.000000000 +0200 +@@ -1602,6 +1602,13 @@ + /* 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; + + +@@ -1931,6 +1938,10 @@ + 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; + +@@ -1942,7 +1953,9 @@ + 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; +@@ -1951,22 +1964,23 @@ + 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) diff --git a/extra/lame/PKGBUILD b/extra/lame/PKGBUILD new file mode 100644 index 000000000..b66bb7f76 --- /dev/null +++ b/extra/lame/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 80636 2010-05-20 16:06:46Z ibiru $ +# Maintainer: Ionut Biru +# Contributor: Hugo Doria + +pkgname=lame +pkgver=3.98.4 +pkgrel=1 +pkgdesc="An MP3 encoder and graphical frame analyzer" +arch=('i686' 'x86_64') +url="http://lame.sourceforge.net/" +depends=('ncurses') +makedepends=('nasm') +license=('LGPL') +options=('!libtool') +source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz) +md5sums=('8e9866ad6b570c6c95c8cba48060473f') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + ./configure --prefix=/usr \ + --enable-nasm \ + --enable-shared + make || return 1 + make DESTDIR="${pkgdir}" install || return 1 +} diff --git a/extra/lame/shared-frontend.patch b/extra/lame/shared-frontend.patch new file mode 100644 index 000000000..e5ae0a95a --- /dev/null +++ b/extra/lame/shared-frontend.patch @@ -0,0 +1,23 @@ +--- lame-3.96.1.orig/frontend/Makefile.am 2004-01-21 01:41:36.000000000 -0800 ++++ lame-3.96.1/frontend/Makefile.am 2004-10-03 16:39:12.415901779 -0700 +@@ -50,7 +50,7 @@ + endif + + CFLAGS = @CFLAGS@ @GTK_CFLAGS@ @FRONTEND_CFLAGS@ +-LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@ -static ++LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@ + + INCLUDES = -I$(top_srcdir)/libmp3lame -I$(top_srcdir)/include -I$(top_builddir) + +diff -Naur lame-3.96.1.orig/frontend/Makefile.in lame-3.96.1/frontend/Makefile.in +--- lame-3.96.1.orig/frontend/Makefile.in 2004-01-21 05:50:29.000000000 -0800 ++++ lame-3.96.1/frontend/Makefile.in 2004-10-03 16:39:19.711701553 -0700 +@@ -91,7 +91,7 @@ + $(top_builddir)/libmp3lame/libmp3lame.la \ + @FRONTEND_LDADD@ + +-LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@ -static ++LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@ + LIBOBJS = @LIBOBJS@ + LIBS = @LIBS@ + LIBTOOL = @LIBTOOL@ -- cgit v1.2.3-54-g00ecf