From d82ffd35d1b7d5f4b75b305ff30bfd177188e2e7f75b55d9b94845170a2f9b20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Wed, 22 Feb 2017 09:40:08 +0000 Subject: [PATCH] - Add patch for SSE - Add check for invalid input sample rate - Avoid malformed wav causing floating point exception (integer divide by zero) - Fix warning on 64 bit machines. Explicitely set variables as unsigned ints. - Enable functions with SSE instructions to maintain their own properly aligned stack - Fix decision if sample rate ratio is an integer value or not - run autoreconf, set GTK_CFLAGS - Add patch to remove ansi2knr instead of using sed - Redux the conditionals for not building gtk1 anywhere anymore - Fix logical issue in hvogel's fix - Fix the conditional building of gtk1 binaries - Fix pkgconfig(gtk+-2.0) for >= 11.4 - Fix bug reporting link - BuildRequires nasm only in x86-32 (there is no assembly available for other archs) - Stop BuildRequiring flac-devel, it's not used - Remove autoreconf call and related BuildRequires and patches - Remove old compatibility Provides - Run spec-cleaner - Removed all patches (unneeded) - Replace some documentation and let the build system install its own - update to 3.99.5: fixed build on 12.2 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/lame?expand=0&rev=1 --- .gitattributes | 23 ++ .gitignore | 1 + baselibs.conf | 1 + lame-3.99.5.tar.gz | 3 + ...-check-for-invalid-input-sample-rate.patch | 25 +++ lame-ansi2knr2.patch | 43 ++++ lame-bits_per_sample.patch | 17 ++ lame-field-width-fix.patch | 25 +++ lame-force_align_arg_pointer.patch | 52 +++++ lame-gtk1.patch | 21 ++ lame-int_resample_ratio.patch | 29 +++ lame-msse.patch | 17 ++ lame-rpmlintrc | 2 + lame.changes | 200 ++++++++++++++++++ lame.spec | 173 +++++++++++++++ 15 files changed, 632 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 baselibs.conf create mode 100644 lame-3.99.5.tar.gz create mode 100644 lame-Add-check-for-invalid-input-sample-rate.patch create mode 100644 lame-ansi2knr2.patch create mode 100644 lame-bits_per_sample.patch create mode 100644 lame-field-width-fix.patch create mode 100644 lame-force_align_arg_pointer.patch create mode 100644 lame-gtk1.patch create mode 100644 lame-int_resample_ratio.patch create mode 100644 lame-msse.patch create mode 100644 lame-rpmlintrc create mode 100644 lame.changes create mode 100644 lame.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..4a41359 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1 @@ +libmp3lame0 diff --git a/lame-3.99.5.tar.gz b/lame-3.99.5.tar.gz new file mode 100644 index 0000000..76d210c --- /dev/null +++ b/lame-3.99.5.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24346b4158e4af3bd9f2e194bb23eb473c75fb7377011523353196b19b9a23ff +size 1445348 diff --git a/lame-Add-check-for-invalid-input-sample-rate.patch b/lame-Add-check-for-invalid-input-sample-rate.patch new file mode 100644 index 0000000..6cb479e --- /dev/null +++ b/lame-Add-check-for-invalid-input-sample-rate.patch @@ -0,0 +1,25 @@ +From 1ea4eac3e7d57dbad42fb067a32ac1600a0397a0 Mon Sep 17 00:00:00 2001 +From: Maks Naumov +Date: Thu, 22 Jan 2015 16:20:40 +0200 +Subject: [PATCH] Add check for invalid input sample rate + +Signed-off-by: Maks Naumov +--- + libmp3lame/lame.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/libmp3lame/lame.c ++++ b/libmp3lame/lame.c +@@ -822,6 +822,12 @@ lame_init_params(lame_global_flags * gfp + } + #endif + ++ if (gfp->samplerate_in < 0 || gfp->num_channels < 0) { ++ freegfc(gfc); ++ gfp->internal_flags = NULL; ++ return -1; ++ } ++ + cfg->disable_reservoir = gfp->disable_reservoir; + cfg->lowpassfreq = gfp->lowpassfreq; + cfg->highpassfreq = gfp->highpassfreq; diff --git a/lame-ansi2knr2.patch b/lame-ansi2knr2.patch new file mode 100644 index 0000000..e7d18a2 --- /dev/null +++ b/lame-ansi2knr2.patch @@ -0,0 +1,43 @@ +Description: Patch out remaining ansi2knr. +Author: Dimitri John Ledkov +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755111 +--- a/configure.in ++++ b/configure.in +@@ -78,7 +78,6 @@ + fi + + dnl more automake stuff +-AM_C_PROTOTYPES + + AC_CHECK_HEADER(dmalloc.h) + if test "${ac_cv_header_dmalloc_h}" = "yes"; then +--- a/doc/man/Makefile.am ++++ b/doc/man/Makefile.am +@@ -1,6 +1,6 @@ + ## $Id: Makefile.am,v 1.1 2000/10/22 11:39:44 aleidinger Exp $ + +-AUTOMAKE_OPTIONS = foreign ansi2knr ++AUTOMAKE_OPTIONS = foreign + + man_MANS = lame.1 + EXTRA_DIST = ${man_MANS} +--- a/libmp3lame/i386/Makefile.am ++++ b/libmp3lame/i386/Makefile.am +@@ -1,6 +1,6 @@ + ## $Id: Makefile.am,v 1.26 2011/04/04 09:42:34 aleidinger Exp $ + +-AUTOMAKE_OPTIONS = foreign $(top_srcdir)/ansi2knr ++AUTOMAKE_OPTIONS = foreign + + DEFS = @DEFS@ @CONFIG_DEFS@ + +--- a/doc/html/Makefile.am ++++ b/doc/html/Makefile.am +@@ -1,6 +1,6 @@ + ## $Id: Makefile.am,v 1.7 2010/09/30 20:58:40 jaz001 Exp $ + +-AUTOMAKE_OPTIONS = foreign ansi2knr ++AUTOMAKE_OPTIONS = foreign + + docdir = $(datadir)/doc + pkgdocdir = $(docdir)/$(PACKAGE) diff --git a/lame-bits_per_sample.patch b/lame-bits_per_sample.patch new file mode 100644 index 0000000..5bb4a90 --- /dev/null +++ b/lame-bits_per_sample.patch @@ -0,0 +1,17 @@ +Description: Avoid malformed wav causing floating point exception (integer divide by zero) +Author: Fabian Greffrath +Bug-Debian: https://bugs.debian.org/777159 + +--- a/frontend/get_audio.c ++++ b/frontend/get_audio.c +@@ -1448,6 +1448,10 @@ parse_wave_header(lame_global_flags * gf + else { + (void) lame_set_in_samplerate(gfp, global_reader.input_samplerate); + } ++ /* avoid division by zero */ ++ if (bits_per_sample < 1) ++ return -1; ++ + global. pcmbitwidth = bits_per_sample; + global. pcm_is_unsigned_8bit = 1; + global. pcm_is_ieee_float = (format_tag == WAVE_FORMAT_IEEE_FLOAT ? 1 : 0); diff --git a/lame-field-width-fix.patch b/lame-field-width-fix.patch new file mode 100644 index 0000000..b2d2061 --- /dev/null +++ b/lame-field-width-fix.patch @@ -0,0 +1,25 @@ +Description: Fix warning on 64 bit machines. Explicitely set variables as + unsigned ints. +Origin: http://git.debian.org/?p=pkg-multimedia/lame.git;a=blob;f=debian/patches/07-field-width-fix.patch +Forwarded: commit:1.282 +Applied-Upstream: commit:1.282 + +--- a/frontend/parse.c ++++ b/frontend/parse.c +@@ -372,11 +372,11 @@ + const char *b = get_lame_os_bitness(); + const char *v = get_lame_version(); + const char *u = get_lame_url(); +- const size_t lenb = strlen(b); +- const size_t lenv = strlen(v); +- const size_t lenu = strlen(u); +- const size_t lw = 80; /* line width of terminal in characters */ +- const size_t sw = 16; /* static width of text */ ++ const unsigned int lenb = strlen(b); ++ const unsigned int lenv = strlen(v); ++ const unsigned int lenu = strlen(u); ++ const unsigned int lw = 80; /* line width of terminal in characters */ ++ const unsigned int sw = 16; /* static width of text */ + + if (lw >= lenb + lenv + lenu + sw || lw < lenu + 2) + /* text fits in 80 chars per line, or line even too small for url */ diff --git a/lame-force_align_arg_pointer.patch b/lame-force_align_arg_pointer.patch new file mode 100644 index 0000000..d2c94aa --- /dev/null +++ b/lame-force_align_arg_pointer.patch @@ -0,0 +1,52 @@ +Author: Fabian Greffrath +Subject: Enable functions with SSE instructions to maintain their own properly aligned stack + Operands in SSE instructions must be aligned on 16-byte boundaries. In the + init_xrpow_core_sse() function these operands are variables on the stack. + However, when the code is called from the ocaml bindings, the stack is + allocated by ocaml which does not adhere to the 16-byte boundary rule and thus + causes the code to crash with a general protection error. + What is needed is a means enable functions calling SSE instructions to + maintain their own properly aligned stack. The "force_align_arg_pointer" + attribute does exactly this, see + . +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=786438 +Forwarded: https://sourceforge.net/p/lame/bugs/449/ +Last-Update: 2015-06-10 + +--- a/libmp3lame/vector/xmm_quantize_sub.c ++++ b/libmp3lame/vector/xmm_quantize_sub.c +@@ -51,8 +51,14 @@ static const FLOAT costab[TRI_SIZE * 2] + }; + + ++/* make sure functions with SSE instructions maintain their own properly aligned stack */ ++#if defined (__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2))) ++#define SSE_FUNCTION __attribute__((force_align_arg_pointer)) ++#else ++#define SSE_FUNCTION ++#endif + +-void ++SSE_FUNCTION void + init_xrpow_core_sse(gr_info * const cod_info, FLOAT xrpow[576], int upper, FLOAT * sum) + { + int i; +@@ -113,7 +119,8 @@ init_xrpow_core_sse(gr_info * const cod_ + } + + +-static void store4(__m128 v, float* f0, float* f1, float* f2, float* f3) ++SSE_FUNCTION static void ++store4(__m128 v, float* f0, float* f1, float* f2, float* f3) + { + vecfloat_union r; + r._m128 = v; +@@ -124,7 +131,7 @@ static void store4(__m128 v, float* f0, + } + + +-void ++SSE_FUNCTION void + fht_SSE2(FLOAT * fz, int n) + { + const FLOAT *tri = costab; diff --git a/lame-gtk1.patch b/lame-gtk1.patch new file mode 100644 index 0000000..48fd5da --- /dev/null +++ b/lame-gtk1.patch @@ -0,0 +1,21 @@ +--- + m4/gtk1.m4 |10758 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + configure.in | 4 + m4/gtk1.m4 |10758 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 10761 insertions(+), 1 deletion(-) + +Index: lame-3.99.5/configure.in +=================================================================== +--- lame-3.99.5.orig/configure.in ++++ lame-3.99.5/configure.in +@@ -393,7 +393,9 @@ CONFIG_MATH_LIB="${USE_LIBM}" + + dnl configure use of features + +-AM_PATH_GTK(1.2.0, HAVE_GTK="yes", HAVE_GTK="no") ++GTK_CFLAGS= ++AC_SUBST(GTK_CFLAGS) ++ + + dnl ElectricFence malloc debugging + AC_MSG_CHECKING(use of ElectricFence malloc debugging) diff --git a/lame-int_resample_ratio.patch b/lame-int_resample_ratio.patch new file mode 100644 index 0000000..7607b14 --- /dev/null +++ b/lame-int_resample_ratio.patch @@ -0,0 +1,29 @@ +Subject: Fix decision if sample rate ratio is an integer value or not + If the sample rate of the input file is sufficiently close to an + integer multiple of the output sample rate, the value of the intratio + variable is calculated incorrectly. This leads to further values + being miscalculated up to the joff variable which is used as an index + to dereference the esv->blackfilt array. This leads top an overflow + and causes a segmentation fault. +Author: Fabian Greffrath +Bug-Debian: https://bugs.debian.org/778529 + +--- a/libmp3lame/util.c ++++ b/libmp3lame/util.c +@@ -26,6 +26,7 @@ + # include + #endif + ++#include + #include "lame.h" + #include "machine.h" + #include "encoder.h" +@@ -544,7 +545,7 @@ fill_buffer_resample(lame_internal_flags + if (bpc > BPC) + bpc = BPC; + +- intratio = (fabs(resample_ratio - floor(.5 + resample_ratio)) < .0001); ++ intratio = (fabs(resample_ratio - floor(.5 + resample_ratio)) < FLT_EPSILON); + fcn = 1.00 / resample_ratio; + if (fcn > 1.00) + fcn = 1.00; diff --git a/lame-msse.patch b/lame-msse.patch new file mode 100644 index 0000000..263538b --- /dev/null +++ b/lame-msse.patch @@ -0,0 +1,17 @@ +Description: Build xmm_quantize_sub.c with -msse +Author: Sebastian Ramacher +Bug: http://sourceforge.net/p/lame/bugs/443/ +Bug-Debian: https://bugs.debian.org/760047 +Forwarded: http://sourceforge.net/p/lame/bugs/443/ +Last-Update: 2014-08-31 + +--- lame-3.99.5+repack1.orig/libmp3lame/vector/Makefile.am ++++ lame-3.99.5+repack1/libmp3lame/vector/Makefile.am +@@ -20,6 +20,7 @@ xmm_sources = xmm_quantize_sub.c + + if WITH_XMM + liblamevectorroutines_la_SOURCES = $(xmm_sources) ++liblamevectorroutines_la_CFLAGS = -msse + endif + + noinst_HEADERS = lame_intrin.h diff --git a/lame-rpmlintrc b/lame-rpmlintrc new file mode 100644 index 0000000..01a2215 --- /dev/null +++ b/lame-rpmlintrc @@ -0,0 +1,2 @@ +addFilter("name-repeated-in-summary") +addFilter("shared-lib-calls-exit") diff --git a/lame.changes b/lame.changes new file mode 100644 index 0000000..c2cb709 --- /dev/null +++ b/lame.changes @@ -0,0 +1,200 @@ +------------------------------------------------------------------- +Sat Jun 20 16:21:57 UTC 2015 - olaf@aepfle.de + +- Add patch for SSE +- Add check for invalid input sample rate +- Avoid malformed wav causing floating point exception (integer divide by zero) +- Fix warning on 64 bit machines. Explicitely set variables as unsigned ints. +- Enable functions with SSE instructions to maintain their own properly aligned stack +- Fix decision if sample rate ratio is an integer value or not +- run autoreconf, set GTK_CFLAGS +- Add patch to remove ansi2knr instead of using sed + +------------------------------------------------------------------- +Tue Feb 3 09:52:08 UTC 2015 - scarabeus@opensuse.org + +- Redux the conditionals for not building gtk1 anywhere anymore + +------------------------------------------------------------------- +Fri Nov 1 08:14:17 UTC 2013 - obs@botter.cc + +- Fix logical issue in hvogel's fix + +------------------------------------------------------------------- +Thu Oct 31 15:30:39 UTC 2013 - hvogel@opensuse.org + +- Fix the conditional building of gtk1 binaries + +------------------------------------------------------------------- +Tue Oct 15 09:36:16 UTC 2013 - obs@botter.cc + +- Fix pkgconfig(gtk+-2.0) for >= 11.4 + +------------------------------------------------------------------- +Thu Jul 19 13:34:07 UTC 2012 - reddwarf@opensuse.org + +- Fix bug reporting link +- BuildRequires nasm only in x86-32 (there is no assembly available + for other archs) +- Stop BuildRequiring flac-devel, it's not used +- Remove autoreconf call and related BuildRequires and patches +- Remove old compatibility Provides +- Run spec-cleaner +- Removed all patches (unneeded) +- Replace some documentation and let the build system install its + own + +------------------------------------------------------------------- +Tue Jul 17 10:47:48 UTC 2012 - pascal.bleser@opensuse.org + +- update to 3.99.5: fixed build on 12.2 + +------------------------------------------------------------------- +Tue Nov 22 06:19:40 UTC 2011 - pascal.bleser@opensuse.org + +- disable sndfile for IO, causes more issues than anything else (warnings and + issues in several applications that use lame) +- lame-tgetstr.patch: fix build on openSUSE > 12.1, tput and friends are now in + libtinfo + +------------------------------------------------------------------- +Mon Mar 7 01:28:48 UTC 2011 - pascal.bleser@opensuse.org + +- add Gentoo patch that fixes reading from stdin +- add rpmlintrc +- split out documentation into subpackage + +------------------------------------------------------------------- +Fri Jun 18 14:30:45 UTC 2010 - lnussel@suse.de + +- disable use of gtk in 11.3, was dropped + +------------------------------------------------------------------- +Sat Mar 27 02:05:44 UTC 2010 - pascal@links2linux.de + +- update to 3.98.4: + * fix for #2973877, a problem regarding the new drain code + +------------------------------------------------------------------- +Sun Feb 28 00:59:08 UTC 2010 - pascal@links2linux.de + +- update to 3.98.3: + * a very important interaction with the FhG decoder was fixed + * the hip audio decoding library is used to perform a better job + when reencoding MP3 files to MP3 files + * bugs were worked around to improve compatibility with ffmpeg + * many fixes were made regarding ID3 tags, including correct + specification of the length of the tracks + +- dropped cvs patch, merged upstream + +------------------------------------------------------------------- +Fri Aug 21 00:00:00 UTC 2009 - Manfred.Tremmel@iiv.de + +- cleanups cvs patch +- removed static library + + +------------------------------------------------------------------- +Sat May 30 00:00:00 UTC 2009 - Manfred.Tremmel@iiv.de + +- patch from cvs to fix buffer problems with ffmpeg + + +------------------------------------------------------------------- +Tue Sep 23 00:00:00 UTC 2008 - guru@unixtech.be + +- added Authors: in description blocks +- use libsndfile for fileio, as it seems to be the prefered default now +- update to 3.98.2: + * adds some quality improvements to the generated audio files + * enables the user to choose fractional variable bitrate qualities + * upgraded support for libsndfile1 (and, in turn, can use many file formats as input, including FLAC files) + * includes many bugfixes, including peripheral tools for user convenience + + +------------------------------------------------------------------- +Sun Jul 13 00:00:00 UTC 2008 - guru@unixtech.be + +- added ldconfig in post and postun +- changed release to 0.pm.1 (instead of 1) +- split off shared library and -devel packages (still Requires by lame for + backwards compatibility, may change later) +- fixed Group: +- added BuildRequires +- added debuginfo support +- revamped spec file + + +------------------------------------------------------------------- +Wed Dec 20 00:00:00 UTC 2006 - henne@links2linux.de + +- update to version 3.97 +- build against libm for k3b + +------------------------------------------------------------------- +Tue Feb 28 00:00:00 UTC 2006 - henne@links2linux.de + +- package missing include dir + +------------------------------------------------------------------- +Sat Nov 27 00:00:00 UTC 2004 - henne@links2linux.de + +- make spec file lib/lib64 clean + +------------------------------------------------------------------- +Sun Oct 17 00:00:00 UTC 2004 - henne@links2linux.de + +- updated to version 3.96.1 + +------------------------------------------------------------------- +Wed May 5 00:00:00 UTC 2004 - henne@links2linux.de + +- updated to version 3.95.1 + +------------------------------------------------------------------- +Sun Sep 28 00:00:00 UTC 2003 - henne@links2linux.de + +- updated to version 3.93.1 + +------------------------------------------------------------------- +Sun Aug 31 00:00:00 UTC 2003 - henne@links2linux.de + +- remove buildarch + +------------------------------------------------------------------- +Sun Mar 23 00:00:00 UTC 2003 - henne@links2linux.de + +- compiled for 8.2 + +------------------------------------------------------------------- +Sun Sep 15 00:00:00 UTC 2002 - henne@links2linux.de + +- updated version to 3.92 + +------------------------------------------------------------------- +Mon Jan 28 00:00:00 UTC 2002 - waldemar@links2linux.de + +- new release + +------------------------------------------------------------------- +Tue May 15 00:00:00 UTC 2001 - waldemar@links2linux.de + +- new beta + +------------------------------------------------------------------- +Tue Jan 23 00:00:00 UTC 2001 - waldemar@links2linux.de + +- added mlame, script for multiple encoding with lame + +------------------------------------------------------------------- +Thu Jan 11 00:00:00 UTC 2001 - waldemar@links2linux.de + +- compiled without ogg/vorbis support, because to buggy + +------------------------------------------------------------------- +Wed Jan 3 00:00:00 UTC 2001 - waldemar@links2linux.de + +- first release + + diff --git a/lame.spec b/lame.spec new file mode 100644 index 0000000..55f978b --- /dev/null +++ b/lame.spec @@ -0,0 +1,173 @@ +# +# spec file for package lame +# +# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 Pascal Bleser +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.links2linux.org/ +# + + +%define soname 0 +Name: lame +Version: 3.99.5 +Release: 0 +Summary: LAME Ain't an MP3 Encoder +License: LGPL-2.0+ +Group: Productivity/Multimedia/Sound/Editors and Convertors +Url: http://lame.sourceforge.net/ +Source: http://prdownloads.sourceforge.net/lame/lame-%{version}.tar.gz +Source99: lame-rpmlintrc +Patch1: lame-gtk1.patch +Patch10: lame-Add-check-for-invalid-input-sample-rate.patch +Patch11: lame-ansi2knr2.patch +Patch12: lame-bits_per_sample.patch +Patch13: lame-field-width-fix.patch +Patch14: lame-force_align_arg_pointer.patch +Patch15: lame-int_resample_ratio.patch +Patch16: lame-msse.patch +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +BuildRequires: ncurses-devel +BuildRequires: pkgconfig +Requires: libmp3lame%{soname} >= %{version} +BuildRoot: %{_tmppath}/%{name}-%{version}-build +%ifarch %ix86 +BuildRequires: nasm +%endif +BuildRequires: pkgconfig(gtk+-2.0) + +%description +LAME is an educational tool to be used for learning about MP3 encoding. +The goal of the LAME project is to use the open source model to improve the +psycho acoustics, noise shaping and speed of MP3. +Another goal of the LAME project is to use these improvements for the basis of +a patent free audio compression codec for the GNU project. + +%package doc +Summary: LAME Ain't an MP3 Encoder (Documentation) +Group: Productivity/Multimedia/Sound/Editors and Convertors +Requires: %{name} = %{version} + +%description doc +LAME is an educational tool to be used for learning about MP3 encoding. +The goal of the LAME project is to use the open source model to improve the +psycho acoustics, noise shaping and speed of MP3. +Another goal of the LAME project is to use these improvements for the basis of +a patent free audio compression codec for the GNU project. + +%package -n libmp3lame%{soname} +Summary: LAME Ain't an MP3 Encoder +Group: System/Libraries + +%description -n libmp3lame%{soname} +LAME is an educational tool to be used for learning about MP3 encoding. +The goal of the LAME project is to use the open source model to improve the +psycho acoustics, noise shaping and speed of MP3. +Another goal of the LAME project is to use these improvements for the basis of +a patent free audio compression codec for the GNU project. + +%package -n libmp3lame-devel +Summary: LAME Ain't an MP3 Encoder +Group: Development/Libraries/C and C++ +Requires: libmp3lame%{soname} = %{version} + +%description -n libmp3lame-devel +LAME is an educational tool to be used for learning about MP3 encoding. +The goal of the LAME project is to use the open source model to improve the +psycho acoustics, noise shaping and speed of MP3. +Another goal of the LAME project is to use these improvements for the basis of +a patent free audio compression codec for the GNU project. + +%package -n lame-mp3rtp +Summary: MP3 Encoder for RTP Streaming +Group: Productivity/Multimedia/Sound/Editors and Convertors +Requires: libmp3lame%{soname} >= %{version} + +%description -n lame-mp3rtp +LAME is an educational tool to be used for learning about MP3 encoding. +The goal of the LAME project is to use the open source model to improve the +psycho acoustics, noise shaping and speed of MP3. +Another goal of the LAME project is to use these improvements for the basis of +a patent free audio compression codec for the GNU project. + +This package includes "mp3rtp", an MP3 encoder with RTP streaming of the output. + + +%prep +%setup -q +find -name Makefile.in -print -delete +%patch1 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 +%patch15 -p1 +%patch16 -p1 +sed -i -e '/define sp/s/+/ + /g' libmp3lame/i386/nasm.h + +%build +autoreconf -fi +LIBS="-lm" \ +CFLAGS="%{optflags}" \ +%configure \ + --enable-nasm \ + --enable-decoder \ + --disable-debug \ + --enable-mp3rtp \ + --with-fileio=lame \ + --enable-dynamic-frontends \ + --disable-rpath \ + --disable-static + +make %{?_smp_mflags} pkgdocdir=%{_defaultdocdir}/%{name}/ + +%install +make install pkgdocdir=%{_defaultdocdir}/%{name}/ DESTDIR=%{buildroot} +rm -f %{buildroot}%{_libdir}/libmp3lame.la + +for f in ChangeLog README TODO USAGE; do + install -m0644 "$f" "%{buildroot}%{_defaultdocdir}/%{name}/" +done + +%post -n libmp3lame%{soname} -p /sbin/ldconfig + +%postun -n libmp3lame%{soname} -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%{_bindir}/lame +%{_mandir}/man1/lame.1* + +%files doc +%defattr(-,root,root) +%{_defaultdocdir}/%{name} + +%files -n libmp3lame%{soname} +%defattr(0644,root,root,0755) +%doc COPYING LICENSE +%{_libdir}/libmp3lame.so.%{soname} +%{_libdir}/libmp3lame.so.%{soname}.* + +%files -n libmp3lame-devel +%defattr(-,root,root) +%doc API HACKING STYLEGUIDE +%{_includedir}/lame/ +%{_libdir}/libmp3lame.so + +%files -n lame-mp3rtp +%defattr(-,root,root) +%{_bindir}/mp3rtp + +%changelog