File faac.spec of Package faac

#
# spec file for package faac
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2013 Marguerite Su <marguerite@opensuse.org>
#
# 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.opensuse.org/
#

%define so_name libfaac0

Name:           faac
Version:        1.31
Release:        1699.1.pm.8
Summary:        Frontend for encoding MPEG2/4 AAC
# Original Code was free to use but restricted. Modifications are LGPL-2.1+
License:        SUSE-Freeware and LGPL-2.1+
Url:            https://github.com/knik0/faac
Source0:        %name-%version.tar
Source99:       baselibs.conf
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  libtool
BuildRequires:  gcc-c++
Requires:       %so_name = %version-%release

%description
FAAC is a LC, MAIN and LTP profile, MPEG2 and MPEG-4 AAC encoder, completely
written from scratch.

%package -n %so_name
Summary:        Shared library part of faac

%description -n %so_name
FAAC is a LC, MAIN and LTP profile, MPEG2 and MPEG-4 AAC encoder, completely
written from scratch.
Shared library part of faac

%package devel
Summary:        Header files and static library for the faac library
Requires:       %so_name = %version-%release
Provides:       libfaac-devel = %version-%release

%description devel
FAAC is a LC, MAIN and LTP profile, MPEG2 and MPEG-4 AAC encoder, completely
written from scratch.
Header files and static library for the faac library

%prep
%autosetup -p1

%build
sed -i~ 's@2.71@2.69@' configure.ac
diff -u "$_"~ "$_" && exit 1
bash bootstrap
%configure --enable-shared \
           --disable-static
%make_build

%install
%make_install
find %buildroot -type f -name "*.la" -delete -print

%ldconfig_scriptlets -n %so_name

%files
%doc AUTHORS ChangeLog README
%license COPYING
%_bindir/*
%_mandir/man1/faac.1%{ext_man}

%files -n %so_name
%_libdir/*.so.*

%files devel
%_libdir/*.so
%_libdir/pkgconfig/*.pc
%_includedir/*

%changelog
* Fri Feb 28 2025 olaf@aepfle.de
- Update version to 1.31
  See included ChangeLog for details
* Thu Feb 13 2020 Hillwood Yang <hillwood@opensuse.org>
- Update version to 1.30
  * Fix Joint Stereo coding, drop faac-fix-broken-joint-stereo.patch
  * Code cleanup and compilation fixes
  * Fix endianness conversion functions
  * Fix compilation with GCC < 4.6
  * Fix compilation on big endian systems
  * Fix division by zero errors
  * Fix compilation with GCC <= 4.7.3
  * Change pointer type for proper arithmetics
  * Fix logic error in compiler detection
  * Revert back to some more generic SSE2 code
  * Fix a memory leak
  * Fix some cppcheck warnings in the Cfaac code
  * Check index ranges before dereferencing book arrays (CVE-2018-19886)
  * Clean up stdint.h header inclusions
  * Consistently use stdint.h types
  * Update Visual Studio 2017 projects
  * Add stdint.h header inclusions
  * Port over ac2ver tool from faad2 to generate PACKAGE_VERSION
  * when compiling with Visual Studio
  * Memory allocations redefined
* Sat Dec 30 2017 zaitor@opensuse.org
- Add faac-fix-broken-joint-stereo.patch: The recent introduction
  PNS in FAAC 1.29.9 broke Joint Stereo coding
  (jointmode == JOINT_MS). Patch from upstream git.
* Sun Nov 26 2017 zaitor@opensuse.org
- Update to version 1.29.9.2:
  * initial version of PNS coding
  * Intensity Stereo coding
  * more speed improvements
  * finer bandwidth/cutoff setting (doesn't work with PNS)
  * fixed more bugs
  * rewritten mid/side coding
  * fixed bug in blockswitch
- Changes from version 1.29.8:
  * changed default mode to ABR 64kbps/channel
  * implemented short windows grouping
  * new huffman coder
  * SSE quantizer
  * modified functioning of ABR mode (-b option)
  * improved autotools support
  * allowed even higher bitrates, including ADTS
  * framebuffer size bug fixed
  * removed broken object types: Main and LTP
  * some mp4 atoms fixed for better compalibility
  * stdin seek bug fixed
- Drop faac-1.28-strict-aliasing-punning.patch: No longer needed.
- Drop faac-1.29.7.8-disable-sse2.patch: Fix upstream in a
  different way, arm now builds.
- Following the above, drop autoconf, automake and libtool
  BuildRequires and no longer pass autoreconf, we do not carry any
  patches touching the build system anymore.
* Mon Oct  9 2017 hillwood@opensuse.org
- Add faac-1.29.7.8-disable-sse2.patch
  * Fix build for ARM.
* Mon Oct  9 2017 hillwood@opensuse.org
- Update to 1.29.7.8.
  * SSE quantizer
  * modified functioning of ABR mode (-b option)
  * improved autotools support
  * allowed even higher bitrates, including ADTS
  * framebuffer size bug fixed
  * removed broken object types: Main and LTP
  * some mp4 atoms fixed for better compalibility
  * stdin seek bug fixed
  * quantizer tweaked to better support high bitrates
  * allow higher quality for mp4 files (-q 5000 max)
  * removed mid frequency boost (it turned out useless)
  * cutoff frequency adjusted to fully utilize upper band
  * --help-long option removed, it was just an alias for -H
  * -b option bug fixed
  * quality related bug fixed
  * updated manpage
  * check if output file exists; --overwrite option added
  * help/usage options reorganized
  * block switching is now tuned to match quality/bitrate
  * give more quality to lower frequancies (less to highs)
  * quantizer updated again
    1.29.4:
  * rewritten quantizer: faster, diffrerent quality, different bitrates
  * ftyp atom: set brands like itunes does, shoud be more compatible
    with picky tools
  * new option(--tag) to add named tags (iTunes '----')
  * faster and better short/long window type switch
  * Don't build DRM(Digital Radio Mondiale) by default.
    Use ./configure --enable-drm to build DRM version.
  * fixed bugs
  * rounding in QuantizeReflectionCoeffs (tns.c)
  * use +60 value for scalefactor.
  * use clipped diff instead of original value (huffman.c)
    1.29.3:
  * MP4 tag options improved
  * fixed MP4 'meta' atom bug
  * new option to set verbosity (-v0 to silence output)
  1.29.2:
  * new mp4 output code
  1.29:
  * various patches applied and bugs fixed
* Fri Feb 24 2017 scarabeus@opensuse.org
- Disable mp4v2 it is used by the cli frontend only and it ain't
  really good idea to use that anyway given better faac implementation
  in ffmpeg
* Sat Oct  5 2013 crrodriguez@opensuse.org
- faac-visibility.patch: hide library private symbols
  from the exported symbol table, this is done just re-using
  the win32 equivalent functionality.
* Wed Jul 31 2013 i@margueirte.su
- build against external mp4v2.
  * bundled mpeg4ip's mp4v2 is too old to compile with glibc 2.10+.
* Tue Jan 24 2012 reddwarf@opensuse.org
- run spec-cleaner
- add autoconf, automake and libtool BuildRequires.
* Fri Mar  4 2011 reddwarf@opensuse.org
- Remove bogus faad build/runtime dependencies
- Remove bogus mp4v2 and C++ devel dependencies
- Remove .la files
* Wed Mar  3 2010 Manfred.Tremmel@iiv.de
- added baselibs file
* Sat Aug 22 2009 Manfred.Tremmel@iiv.de
- cleanups where rpmlint wasn't so happy
* Tue Feb 10 2009 Manfred.Tremmel@iiv.de
- version 1.28
* Sat Jul  5 2008 Manfred.Tremmel@iiv.de
- version 1.26
* Sun Mar  2 2008 Manfred.Tremmel@iiv.de
- splittetd into separate packages
* Mon Oct  2 2006 Manfred.Tremmel@iiv.de
- enabled mp4 support
* Mon Aug 14 2006 Manfred.Tremmel@iiv.de
- version 1.25
* Sun Apr  9 2006 Manfred.Tremmel@iiv.de
- rebuild with separate libmp4v2 (no longer part of faad2)
* Fri Jan  7 2005 rainer@links2linux.de
- first version for faac
openSUSE Build Service is sponsored by